diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-07-31 10:36:57 -0600 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-07-31 10:36:57 -0600 |
commit | bcdbc29725b15141ce19bdb76242a30a39911777 (patch) | |
tree | 6e57d043b7030cdf043406e201eba8610454956f /snaps/openstack/utils/glance_utils.py | |
parent | b003647b70545008405294c4268e62fa87c18574 (diff) |
Added image_settings parameter to get_image().
With the ImageSettings object, was able to add logic to
filter on the image format field in addition to the name.
JIRA: SNAPS-157
Change-Id: I6fc51a9d4d03dc9971005ee738e6592d8ed70485
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/utils/glance_utils.py')
-rw-r--r-- | snaps/openstack/utils/glance_utils.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/snaps/openstack/utils/glance_utils.py b/snaps/openstack/utils/glance_utils.py index ad9c5e5..2606e32 100644 --- a/snaps/openstack/utils/glance_utils.py +++ b/snaps/openstack/utils/glance_utils.py @@ -44,26 +44,34 @@ def glance_client(os_creds): region_name=os_creds.region_name) -def get_image(glance, image_name=None): +def get_image(glance, image_name=None, image_settings=None): """ Returns an OpenStack image object for a given name :param glance: the Glance client :param image_name: the image name to lookup + :param image_settings: the image settings used for lookups :return: the image object or None """ - images = glance.images.list() + img_filter = dict() + if image_settings: + if image_settings.exists: + img_filter = {'name': image_settings.name} + else: + img_filter = {'name': image_settings.name, + 'disk_format': image_settings.format} + elif image_name: + img_filter = {'name': image_name} + + images = glance.images.list(**{'filters': img_filter}) for image in images: if glance.version == VERSION_1: - if image.name == image_name: - image = glance.images.get(image.id) - return Image(name=image.name, image_id=image.id, - size=image.size, properties=image.properties) + image = glance.images.get(image.id) + return Image(name=image.name, image_id=image.id, + size=image.size, properties=image.properties) elif glance.version == VERSION_2: - if image['name'] == image_name: - return Image( - name=image['name'], image_id=image['id'], - size=image['size'], properties=image.get('properties')) - return None + return Image( + name=image['name'], image_id=image['id'], + size=image['size'], properties=image.get('properties')) def get_image_by_id(glance, image_id): |