summaryrefslogtreecommitdiffstats
path: root/nova/utils.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-06-18 17:02:19 +0000
committerGerrit Code Review <review@openstack.org>2012-06-18 17:02:19 +0000
commit5bfa8a70e8b11f68deb101c872eace27d7a3b1b4 (patch)
tree9c298941f50a7b080518efc53016ec89426496a3 /nova/utils.py
parent60ea96b288d9d8f29d772dce3763fda466c73040 (diff)
parent9ff3121bd90133fb3b37c0e10407b5f7ade26b90 (diff)
downloadnova-5bfa8a70e8b11f68deb101c872eace27d7a3b1b4.tar.gz
nova-5bfa8a70e8b11f68deb101c872eace27d7a3b1b4.tar.xz
nova-5bfa8a70e8b11f68deb101c872eace27d7a3b1b4.zip
Merge "Replaces functions in utils.py with openstack/common/timeutils.py"
Diffstat (limited to 'nova/utils.py')
-rw-r--r--nova/utils.py85
1 files changed, 3 insertions, 82 deletions
diff --git a/nova/utils.py b/nova/utils.py
index 8bd71359f..3a74e1b98 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -46,7 +46,6 @@ from eventlet import event
from eventlet.green import subprocess
from eventlet import greenthread
from eventlet import semaphore
-import iso8601
import lockfile
import netaddr
@@ -56,11 +55,10 @@ from nova import log as logging
from nova.openstack.common import cfg
from nova.openstack.common import excutils
from nova.openstack.common import importutils
+from nova.openstack.common import timeutils
LOG = logging.getLogger(__name__)
-ISO_TIME_FORMAT = "%Y-%m-%dT%H:%M:%S"
-PERFECT_TIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%f"
FLAGS = flags.FLAGS
FLAGS.register_opt(
@@ -331,7 +329,7 @@ def last_completed_audit_period(unit=None):
unit, offset = unit.split("@", 1)
offset = int(offset)
- rightnow = utcnow()
+ rightnow = timeutils.utcnow()
if unit not in ('month', 'day', 'year', 'hour'):
raise ValueError('Time period must be hour, day, month or year')
if unit == 'month':
@@ -446,83 +444,6 @@ def get_my_linklocal(interface):
raise exception.NovaException(msg)
-def utcnow():
- """Overridable version of utils.utcnow."""
- if utcnow.override_time:
- return utcnow.override_time
- return datetime.datetime.utcnow()
-
-
-utcnow.override_time = None
-
-
-def is_older_than(before, seconds):
- """Return True if before is older than seconds."""
- return utcnow() - before > datetime.timedelta(seconds=seconds)
-
-
-def utcnow_ts():
- """Timestamp version of our utcnow function."""
- return time.mktime(utcnow().timetuple())
-
-
-def set_time_override(override_time=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 strtime(at=None, fmt=PERFECT_TIME_FORMAT):
- """Returns formatted utcnow."""
- if not at:
- at = utcnow()
- return at.strftime(fmt)
-
-
-def parse_strtime(timestr, fmt=PERFECT_TIME_FORMAT):
- """Turn a formatted time back into a datetime."""
- return datetime.datetime.strptime(timestr, fmt)
-
-
-def isotime(at=None):
- """Stringify time in ISO 8601 format"""
- if not at:
- at = utcnow()
- str = at.strftime(ISO_TIME_FORMAT)
- tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
- str += ('Z' if tz == 'UTC' else tz)
- return str
-
-
-def parse_isotime(timestr):
- """Turn an iso formatted time back into a datetime."""
- try:
- return iso8601.parse_date(timestr)
- except (iso8601.ParseError, TypeError) as e:
- raise ValueError(e.message)
-
-
-def normalize_time(timestamp):
- """Normalize time in arbitrary timezone to UTC"""
- offset = timestamp.utcoffset()
- return timestamp.replace(tzinfo=None) - offset if offset else timestamp
-
-
def parse_mailmap(mailmap='.mailmap'):
mapping = {}
if os.path.exists(mailmap):
@@ -1241,7 +1162,7 @@ def service_is_up(service):
"""Check whether a service is up based on last heartbeat."""
last_heartbeat = service['updated_at'] or service['created_at']
# Timestamps in DB are UTC.
- elapsed = total_seconds(utcnow() - last_heartbeat)
+ elapsed = total_seconds(timeutils.utcnow() - last_heartbeat)
return abs(elapsed) <= FLAGS.service_down_time