diff options
| author | Mark Washenberger <mark.washenberger@rackspace.com> | 2011-03-17 12:30:32 -0400 |
|---|---|---|
| committer | Mark Washenberger <mark.washenberger@rackspace.com> | 2011-03-17 12:30:32 -0400 |
| commit | b135bc23cca1494049dd9978cb18b52f2b4d99c7 (patch) | |
| tree | b223b7322f7a1de0a513cb53661f82bfe0b92d50 | |
| parent | e79eaca86c4073cc8bc6c59be83d0f1bf5e2cea4 (diff) | |
refactor to simpler implementation
| -rw-r--r-- | nova/image/glance.py | 27 |
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. |
