summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorZhongyue Luo <lzyeval@gmail.com>2012-06-06 10:32:49 +0800
committerZhongyue Luo <lzyeval@gmail.com>2012-06-16 07:17:01 +0800
commit9ff3121bd90133fb3b37c0e10407b5f7ade26b90 (patch)
tree9c3d48c0b49f89374813c23dc49bc7ded34ed414 /nova/api
parentfb9abcc83935b01746aeba0db4c431fe72b921fc (diff)
downloadnova-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__.py5
-rw-r--r--nova/api/ec2/cloud.py3
-rw-r--r--nova/api/openstack/compute/contrib/cloudpipe.py3
-rw-r--r--nova/api/openstack/compute/contrib/simple_tenant_usage.py20
-rw-r--r--nova/api/openstack/compute/servers.py3
-rw-r--r--nova/api/openstack/compute/versions.py6
-rw-r--r--nova/api/openstack/compute/views/limits.py4
-rw-r--r--nova/api/openstack/compute/views/servers.py8
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"],
}