diff options
| author | Zhongyue Luo <lzyeval@gmail.com> | 2012-06-06 10:32:49 +0800 |
|---|---|---|
| committer | Zhongyue Luo <lzyeval@gmail.com> | 2012-06-16 07:17:01 +0800 |
| commit | 9ff3121bd90133fb3b37c0e10407b5f7ade26b90 (patch) | |
| tree | 9c3d48c0b49f89374813c23dc49bc7ded34ed414 /nova/api | |
| parent | fb9abcc83935b01746aeba0db4c431fe72b921fc (diff) | |
| download | nova-9ff3121bd90133fb3b37c0e10407b5f7ade26b90.tar.gz nova-9ff3121bd90133fb3b37c0e10407b5f7ade26b90.tar.xz nova-9ff3121bd90133fb3b37c0e10407b5f7ade26b90.zip | |
Replaces functions in utils.py with openstack/common/timeutils.py
Fixes bug #1008628
1. Edit openstack-common.conf and import nova/openstack/common/timeutils.py
2. Move time related functions from utils.py to timeutils.py
3. Replace following functions in utils.py with timeutils.py
- isotime
- parse_isotime
- strtime
- parse_strtime
- normalize_time
- is_older_than
- utcnow_ts
- utcnow
- set_time_override
- advance_time_delta
- advance_time_seconds
- clear_time_override
4. Remove datetime related functions and datetime related unittests
Change-Id: I9a92be286fb071b6237dd39495d88dae106e2ce0
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/__init__.py | 5 | ||||
| -rw-r--r-- | nova/api/ec2/cloud.py | 3 | ||||
| -rw-r--r-- | nova/api/openstack/compute/contrib/cloudpipe.py | 3 | ||||
| -rw-r--r-- | nova/api/openstack/compute/contrib/simple_tenant_usage.py | 20 | ||||
| -rw-r--r-- | nova/api/openstack/compute/servers.py | 3 | ||||
| -rw-r--r-- | nova/api/openstack/compute/versions.py | 6 | ||||
| -rw-r--r-- | nova/api/openstack/compute/views/limits.py | 4 | ||||
| -rw-r--r-- | nova/api/openstack/compute/views/servers.py | 8 |
8 files changed, 28 insertions, 24 deletions
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py index c9dbd36f8..edde3a9e4 100644 --- a/nova/api/ec2/__init__.py +++ b/nova/api/ec2/__init__.py @@ -38,6 +38,7 @@ from nova import log as logging from nova.openstack.common import cfg from nova.openstack.common import importutils from nova.openstack.common import jsonutils +from nova.openstack.common import timeutils from nova import utils from nova import wsgi @@ -106,7 +107,7 @@ class RequestLogging(wsgi.Middleware): @webob.dec.wsgify(RequestClass=wsgi.Request) def __call__(self, req): - start = utils.utcnow() + start = timeutils.utcnow() rv = req.get_response(self.application) self.log_request_completion(rv, req, start) return rv @@ -120,7 +121,7 @@ class RequestLogging(wsgi.Middleware): controller = None action = None ctxt = request.environ.get('nova.context', None) - delta = utils.utcnow() - start + delta = timeutils.utcnow() - start seconds = delta.seconds microseconds = delta.microseconds LOG.info( diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 037a84783..33c8f5af7 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -40,6 +40,7 @@ from nova.image import s3 from nova import log as logging from nova import network from nova.openstack.common import excutils +from nova.openstack.common import timeutils from nova import quota from nova import utils from nova import volume @@ -666,7 +667,7 @@ class CloudController(object): instance_id = ec2utils.ec2_id_to_id(ec2_id) instance = self.compute_api.get(context, instance_id) output = self.compute_api.get_console_output(context, instance) - now = utils.utcnow() + now = timeutils.utcnow() return {"InstanceId": ec2_id, "Timestamp": now, "output": base64.b64encode(output)} diff --git a/nova/api/openstack/compute/contrib/cloudpipe.py b/nova/api/openstack/compute/contrib/cloudpipe.py index 1d4c63da0..321123d76 100644 --- a/nova/api/openstack/compute/contrib/cloudpipe.py +++ b/nova/api/openstack/compute/contrib/cloudpipe.py @@ -29,6 +29,7 @@ from nova import exception from nova import flags from nova import log as logging from nova import network +from nova.openstack.common import timeutils from nova import utils @@ -90,7 +91,7 @@ class CloudpipeController(object): rv['state'] = 'pending' return rv rv['instance_id'] = instance['uuid'] - rv['created_at'] = utils.isotime(instance['created_at']) + rv['created_at'] = timeutils.isotime(instance['created_at']) nw_info = compute_utils.get_nw_info_for_instance(instance) if not nw_info: return rv diff --git a/nova/api/openstack/compute/contrib/simple_tenant_usage.py b/nova/api/openstack/compute/contrib/simple_tenant_usage.py index 5f8765de5..0179ea75b 100644 --- a/nova/api/openstack/compute/contrib/simple_tenant_usage.py +++ b/nova/api/openstack/compute/contrib/simple_tenant_usage.py @@ -24,7 +24,7 @@ from nova.api.openstack import xmlutil from nova.compute import api from nova import exception from nova import flags -from nova import utils +from nova.openstack.common import timeutils FLAGS = flags.FLAGS @@ -73,13 +73,13 @@ class SimpleTenantUsageController(object): terminated_at = instance['terminated_at'] if terminated_at is not None: if not isinstance(terminated_at, datetime.datetime): - terminated_at = utils.parse_strtime(terminated_at, - "%Y-%m-%d %H:%M:%S.%f") + terminated_at = timeutils.parse_strtime(terminated_at, + "%Y-%m-%d %H:%M:%S.%f") if launched_at is not None: if not isinstance(launched_at, datetime.datetime): - launched_at = utils.parse_strtime(launched_at, - "%Y-%m-%d %H:%M:%S.%f") + launched_at = timeutils.parse_strtime(launched_at, + "%Y-%m-%d %H:%M:%S.%f") if terminated_at and terminated_at < period_start: return 0 @@ -152,7 +152,7 @@ class SimpleTenantUsageController(object): else: info['state'] = instance['vm_state'] - now = utils.utcnow() + now = timeutils.utcnow() if info['state'] == 'terminated': delta = info['ended_at'] - info['started_at'] @@ -188,16 +188,16 @@ class SimpleTenantUsageController(object): def _parse_datetime(self, dtstr): if not dtstr: - return utils.utcnow() + return timeutils.utcnow() elif isinstance(dtstr, datetime.datetime): return dtstr try: - return utils.parse_strtime(dtstr, "%Y-%m-%dT%H:%M:%S") + return timeutils.parse_strtime(dtstr, "%Y-%m-%dT%H:%M:%S") except Exception: try: - return utils.parse_strtime(dtstr, "%Y-%m-%dT%H:%M:%S.%f") + return timeutils.parse_strtime(dtstr, "%Y-%m-%dT%H:%M:%S.%f") except Exception: - return utils.parse_strtime(dtstr, "%Y-%m-%d %H:%M:%S.%f") + return timeutils.parse_strtime(dtstr, "%Y-%m-%d %H:%M:%S.%f") def _get_datetime_range(self, req): qs = req.environ.get('QUERY_STRING', '') diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index a92d9b6bb..f0b1c355c 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -32,6 +32,7 @@ from nova.compute import instance_types from nova import exception from nova import flags from nova import log as logging +from nova.openstack.common import timeutils from nova.rpc import common as rpc_common from nova import utils @@ -426,7 +427,7 @@ class Controller(wsgi.Controller): if 'changes-since' in search_opts: try: - parsed = utils.parse_isotime(search_opts['changes-since']) + parsed = timeutils.parse_isotime(search_opts['changes-since']) except ValueError: msg = _('Invalid changes-since value') raise exc.HTTPBadRequest(explanation=msg) diff --git a/nova/api/openstack/compute/versions.py b/nova/api/openstack/compute/versions.py index f190dca03..76e37cf41 100644 --- a/nova/api/openstack/compute/versions.py +++ b/nova/api/openstack/compute/versions.py @@ -20,7 +20,7 @@ from lxml import etree from nova.api.openstack.compute.views import versions as views_versions from nova.api.openstack import wsgi from nova.api.openstack import xmlutil -from nova import utils +from nova.openstack.common import timeutils LINKS = { @@ -124,8 +124,8 @@ class AtomSerializer(wsgi.XMLDictSerializer): def _get_most_recent_update(self, versions): recent = None for version in versions: - updated = utils.parse_strtime(version['updated'], - '%Y-%m-%dT%H:%M:%SZ') + updated = timeutils.parse_strtime(version['updated'], + '%Y-%m-%dT%H:%M:%SZ') if not recent: recent = updated elif updated > recent: diff --git a/nova/api/openstack/compute/views/limits.py b/nova/api/openstack/compute/views/limits.py index d21ae98a5..1c3590984 100644 --- a/nova/api/openstack/compute/views/limits.py +++ b/nova/api/openstack/compute/views/limits.py @@ -17,7 +17,7 @@ import datetime -from nova import utils +from nova.openstack.common import timeutils class ViewBuilder(object): @@ -92,5 +92,5 @@ class ViewBuilder(object): "value": rate_limit["value"], "remaining": int(rate_limit["remaining"]), "unit": rate_limit["unit"], - "next-available": utils.isotime(at=next_avail), + "next-available": timeutils.isotime(at=next_avail), } diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py index 1564231c1..f14773e98 100644 --- a/nova/api/openstack/compute/views/servers.py +++ b/nova/api/openstack/compute/views/servers.py @@ -23,7 +23,7 @@ from nova.api.openstack.compute.views import addresses as views_addresses from nova.api.openstack.compute.views import flavors as views_flavors from nova.api.openstack.compute.views import images as views_images from nova import log as logging -from nova import utils +from nova.openstack.common import timeutils LOG = logging.getLogger(__name__) @@ -99,8 +99,8 @@ class ViewBuilder(common.ViewBuilder): "hostId": self._get_host_id(instance) or "", "image": self._get_image(request, instance), "flavor": self._get_flavor(request, instance), - "created": utils.isotime(instance["created_at"]), - "updated": utils.isotime(instance["updated_at"]), + "created": timeutils.isotime(instance["created_at"]), + "updated": timeutils.isotime(instance["updated_at"]), "addresses": self._get_addresses(request, instance), "accessIPv4": instance.get("access_ip_v4") or "", "accessIPv6": instance.get("access_ip_v6") or "", @@ -199,7 +199,7 @@ class ViewBuilder(common.ViewBuilder): fault_dict = { "code": fault["code"], - "created": utils.isotime(fault["created_at"]), + "created": timeutils.isotime(fault["created_at"]), "message": fault["message"], } |
