summaryrefslogtreecommitdiff
path: root/cloudinit/util.py
diff options
context:
space:
mode:
authorBen Howard <ben.howard@canonical.com>2013-08-20 09:58:30 -0600
committerBen Howard <ben.howard@canonical.com>2013-08-20 09:58:30 -0600
commit89d58c94d59c62dddea3f77b7a805c1afa2ca955 (patch)
tree6b7cd86a373706730f0ec11f06517fc2a003f7c9 /cloudinit/util.py
parente683ab2baa3e67614edcd409122bd1aec99737e0 (diff)
parentb2ee0966793f3a9c7d8e92ce1c13b9583a9a76e7 (diff)
downloadvyos-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.py35
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