summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorDevin Carlen <devin.carlen@gmail.com>2011-02-14 10:56:10 +0000
committerTarmac <>2011-02-14 10:56:10 +0000
commitef7768154324bbddb56d2c7d7a9d2e354b7d60cf (patch)
tree307c9007730364d705a587ce07fc50cbd9b0cc39 /nova/api
parent821dcea02bd962244353bd154fc9148c2c192012 (diff)
parent27139d33ec027bae4b247c1651bfe635a32f5ebf (diff)
downloadnova-ef7768154324bbddb56d2c7d7a9d2e354b7d60cf.tar.gz
nova-ef7768154324bbddb56d2c7d7a9d2e354b7d60cf.tar.xz
nova-ef7768154324bbddb56d2c7d7a9d2e354b7d60cf.zip
Modified S3ImageService to return the format defined in BaseService to allow EC2 API's DescribeImages to work against Glance.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 5d387d45d..16a3a4521 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -841,11 +841,26 @@ class CloudController(object):
self.compute_api.update(context, instance_id=instance_id, **kwargs)
return True
+ def _format_image(self, context, image):
+ """Convert from format defined by BaseImageService to S3 format."""
+ i = {}
+ i['imageId'] = image.get('id')
+ i['kernelId'] = image.get('kernel_id')
+ i['ramdiskId'] = image.get('ramdisk_id')
+ i['imageOwnerId'] = image.get('owner_id')
+ i['imageLocation'] = image.get('location')
+ i['imageState'] = image.get('status')
+ i['type'] = image.get('type')
+ i['isPublic'] = image.get('is_public')
+ i['architecture'] = image.get('architecture')
+ return i
+
def describe_images(self, context, image_id=None, **kwargs):
- # Note: image_id is a list!
+ # NOTE: image_id is a list!
images = self.image_service.index(context)
if image_id:
- images = filter(lambda x: x['imageId'] in image_id, images)
+ images = filter(lambda x: x['id'] in image_id, images)
+ images = [self._format_image(context, i) for i in images]
return {'imagesSet': images}
def deregister_image(self, context, image_id, **kwargs):