summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-03-17 12:30:32 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-03-17 12:30:32 -0400
commitb135bc23cca1494049dd9978cb18b52f2b4d99c7 (patch)
treeb223b7322f7a1de0a513cb53661f82bfe0b92d50
parente79eaca86c4073cc8bc6c59be83d0f1bf5e2cea4 (diff)
refactor to simpler implementation
-rw-r--r--nova/image/glance.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/nova/image/glance.py b/nova/image/glance.py
index d0c191ea1..188b6e588 100644
--- a/nova/image/glance.py
+++ b/nova/image/glance.py
@@ -62,22 +62,25 @@ class GlanceImageService(service.BaseImageService):
"""
try:
image = self.client.get_image_meta(image_id)
- if 'created_at' in image:
- image['created_at'] = \
- dt.datetime.strptime(image['created_at'],
- "%Y-%m-%dT%H:%M:%S.%f")
- if 'updated_at' in image:
- image['updated_at'] = \
- dt.datetime.strptime(image['updated_at'],
- "%Y-%m-%dT%H:%M:%S.%f")
- if 'deleted_at' in image and image['deleted_at'] is not None:
- image['deleted_at'] = \
- dt.datetime.strptime(image['deleted_at'],
- "%Y-%m-%dT%H:%M:%S.%f")
except glance_exception.NotFound:
raise exception.NotFound
+ return self._convert_timestamps_to_datetimes(image)
+
+ def _convert_timestamps_to_datetimes(self, image):
+ """
+ Returns image with known timestamp fields converted to datetime objects
+ """
+ for attr in ['created_at', 'updated_at', 'deleted_at']:
+ if attr in image and image[attr] is not None:
+ image[attr] = self._parse_glance_iso8601_timestamp(image[attr])
return image
+ def _parse_glance_iso8601_timestamp(self, timestamp):
+ """
+ Parse a subset of iso8601 timestamps into datetime objects
+ """
+ return dt.datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%f")
+
def show_by_name(self, context, name):
"""
Returns a dict containing image data for the given name.