summaryrefslogtreecommitdiff
path: root/cloudinit/util.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2013-08-05 06:58:54 +0100
committerScott Moser <smoser@ubuntu.com>2013-08-05 06:58:54 +0100
commit65e49111bcea78342289c671376eba85410ea781 (patch)
tree64555168d9767f63074729cdbe9d34e5ae37eb01 /cloudinit/util.py
parent696bcc1f0acc67646872cd6ce1b90375ca0ae068 (diff)
parent219191673b5491fab683ca5ff1befe845c81f6cf (diff)
downloadvyos-cloud-init-65e49111bcea78342289c671376eba85410ea781.tar.gz
vyos-cloud-init-65e49111bcea78342289c671376eba85410ea781.zip
merge from trunk
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