diff options
author | Ben Howard <ben.howard@canonical.com> | 2013-08-20 09:58:30 -0600 |
---|---|---|
committer | Ben Howard <ben.howard@canonical.com> | 2013-08-20 09:58:30 -0600 |
commit | 89d58c94d59c62dddea3f77b7a805c1afa2ca955 (patch) | |
tree | 6b7cd86a373706730f0ec11f06517fc2a003f7c9 /cloudinit/util.py | |
parent | e683ab2baa3e67614edcd409122bd1aec99737e0 (diff) | |
parent | b2ee0966793f3a9c7d8e92ce1c13b9583a9a76e7 (diff) | |
download | vyos-cloud-init-89d58c94d59c62dddea3f77b7a805c1afa2ca955.tar.gz vyos-cloud-init-89d58c94d59c62dddea3f77b7a805c1afa2ca955.zip |
Updated merge proposal with current tree
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 |