diff options
| author | root <root@ubuntu> | 2010-12-15 11:23:33 -0800 |
|---|---|---|
| committer | root <root@ubuntu> | 2010-12-15 11:23:33 -0800 |
| commit | dd4ee43cc2042299ed7a56b4690999fa1df120a1 (patch) | |
| tree | a168cb90ee2131532a4b9ff8b8b232f20660a2ee /nova/utils.py | |
| parent | b0279030127b7fe8df21db12a8727ea623ca46e2 (diff) | |
| download | nova-dd4ee43cc2042299ed7a56b4690999fa1df120a1.tar.gz nova-dd4ee43cc2042299ed7a56b4690999fa1df120a1.tar.xz nova-dd4ee43cc2042299ed7a56b4690999fa1df120a1.zip | |
clean up tests and add overriden time method to utils
Diffstat (limited to 'nova/utils.py')
| -rw-r--r-- | nova/utils.py | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/nova/utils.py b/nova/utils.py index 142584df8..048a9d974 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -21,7 +21,6 @@ System-level utilities and helper functions. """ import datetime -import functools import inspect import logging import os @@ -29,6 +28,7 @@ import random import subprocess import socket import sys +import time from xml.sax import saxutils from twisted.internet.threads import deferToThread @@ -165,13 +165,51 @@ def get_my_ip(): return "127.0.0.1" +def utcnow(): + """Overridable version of datetime.datetime.utcnow.""" + if utcnow.override_time: + return utcnow.override_time + return datetime.datetime.utcnow() + + +utcnow.override_time = None + + +def utcnow_ts(): + """Timestamp version of our utcnow function.""" + return time.mktime(utcnow().timetuple()) + + +def set_time_override(override_time=datetime.datetime.utcnow()): + """Override utils.utcnow to return a constant time.""" + utcnow.override_time = override_time + + +def advance_time_delta(timedelta): + """Advance overriden time using a datetime.timedelta.""" + assert(not utcnow.override_time is None) + utcnow.override_time += timedelta + + +def advance_time_seconds(seconds): + """Advance overriden time by seconds.""" + advance_time_delta(datetime.timedelta(0, seconds)) + + +def clear_time_override(): + """Remove the overridden time.""" + utcnow.override_time = None + + def isotime(at=None): + """Returns iso formatted utcnow.""" if not at: - at = datetime.datetime.utcnow() + at = utcnow() return at.strftime(TIME_FORMAT) def parse_isotime(timestr): + """Turn an iso formatted time back into a datetime""" return datetime.datetime.strptime(timestr, TIME_FORMAT) |
