diff options
author | Scott Moser <smoser@ubuntu.com> | 2013-08-05 06:58:54 +0100 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2013-08-05 06:58:54 +0100 |
commit | 65e49111bcea78342289c671376eba85410ea781 (patch) | |
tree | 64555168d9767f63074729cdbe9d34e5ae37eb01 /cloudinit/util.py | |
parent | 696bcc1f0acc67646872cd6ce1b90375ca0ae068 (diff) | |
parent | 219191673b5491fab683ca5ff1befe845c81f6cf (diff) | |
download | vyos-cloud-init-65e49111bcea78342289c671376eba85410ea781.tar.gz vyos-cloud-init-65e49111bcea78342289c671376eba85410ea781.zip |
merge from trunk
Diffstat (limited to 'cloudinit/util.py')
-rw-r--r-- | cloudinit/util.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cloudinit/util.py b/cloudinit/util.py index 8542fe27..4a74ba57 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -1770,3 +1770,38 @@ def which(program): return exe_file return None + + +def log_time(logfunc, msg, func, args=None, kwargs=None, get_uptime=False): + if args is None: + args = [] + if kwargs is None: + kwargs = {} + + start = time.time() + + ustart = None + if get_uptime: + try: + ustart = float(uptime()) + except ValueError: + pass + + try: + ret = func(*args, **kwargs) + finally: + delta = time.time() - start + if ustart is not None: + try: + udelta = float(uptime()) - ustart + except ValueError: + udelta = "N/A" + + tmsg = " took %0.3f seconds" % delta + if get_uptime: + tmsg += "(%0.2f)" % udelta + try: + logfunc(msg + tmsg) + except: + pass + return ret |