Added support for image snapshots

Change-Id: I860458c8191736b567e8be11f7e3cc18effbde27
This commit is contained in:
Lakshmi N Sampath 2014-05-09 15:01:39 -07:00
parent 5225e16a82
commit 36b47bdb69
2 changed files with 18 additions and 11 deletions

View File

@ -23,7 +23,7 @@ class GlanceResourceDriver(base.BaseDriver):
def __init__(self): def __init__(self):
self.resource = glance.GlanceResourceDriver() self.resource = glance.GlanceResourceDriver()
self.resource_types = ["OS::Glance::Image"] self.resource_types = ["OS::Glance::Image", "OS::Glance::Snapshot"]
def get_resource_types(self): def get_resource_types(self):
"""Returns the resource types supported by the implementing driver """Returns the resource types supported by the implementing driver

View File

@ -109,7 +109,7 @@ class GlanceResourceDriver(base.ResourceInterface):
image_properties[tag_name] = utils.TAG_IDENTIFIER image_properties[tag_name] = utils.TAG_IDENTIFIER
image = glance_client.images.get(resource.id) image = glance_client.images.get(resource.id)
image.update(properties=image_properties, purge_props=False) image.update(properties=image_properties, purge_props=True)
def find_resources(self, resource_query, auth_token, def find_resources(self, resource_query, auth_token,
endpoint_id=None, **kwargs): endpoint_id=None, **kwargs):
@ -121,17 +121,24 @@ class GlanceResourceDriver(base.ResourceInterface):
:returns list of resources :returns list of resources
""" """
resource_list = dict() resource_list = dict()
#TODO(Lakshmi): Filter based on resource type for snapshot etc
if resource_query: if resource_query:
for resource_type in resource_query.resource_types: glance_client = self.__get_glance_client(
glance_client = self.__get_glance_client( endpoint_id,
endpoint_id, auth_token
auth_token )
) images = glance_client.images.list()
images = glance_client.images.list() for image in list(images):
for image in list(images): #Filter based on requested resource types
glance_image_properties = image.properties
image_type = "OS::Glance::Image"
if "image_type" in glance_image_properties.keys():
image_type = glance_image_properties['image_type']
if image_type and image_type.lower() == "snapshot":
image_type = "OS::Glance::Snapshot"
if image_type in resource_query.resource_types:
resource = self.transform_image_to_resource( resource = self.transform_image_to_resource(
resource_type, image_type,
image image
) )
resource_list[resource.id] = resource resource_list[resource.id] = resource