diff options
author | Steven Pisarski <s.pisarski@cablelabs.com> | 2017-08-01 13:34:25 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-08-01 13:34:26 +0000 |
commit | c0ac1fe4ef0aec4cb681748e3a55da5806fa4145 (patch) | |
tree | a31f4ca53dfd6a031d1cf7158b51ab0f236b9339 /snaps/openstack/utils | |
parent | f9a9c6eb7e11ba70e39b5b05b4dbba743bf3fd02 (diff) | |
parent | bcdbc29725b15141ce19bdb76242a30a39911777 (diff) |
Merge "Added image_settings parameter to get_image()."
Diffstat (limited to 'snaps/openstack/utils')
-rw-r--r-- | snaps/openstack/utils/glance_utils.py | 30 | ||||
-rw-r--r-- | snaps/openstack/utils/nova_utils.py | 2 | ||||
-rw-r--r-- | snaps/openstack/utils/tests/glance_utils_tests.py | 10 |
3 files changed, 26 insertions, 16 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): diff --git a/snaps/openstack/utils/nova_utils.py b/snaps/openstack/utils/nova_utils.py index b148bc5..a0c028a 100644 --- a/snaps/openstack/utils/nova_utils.py +++ b/snaps/openstack/utils/nova_utils.py @@ -83,7 +83,7 @@ def create_server(nova, neutron, glance, instance_settings, image_settings, raise NovaException( 'Flavor not found with name - %s', instance_settings.flavor) - image = glance_utils.get_image(glance, image_settings.name) + image = glance_utils.get_image(glance, image_settings=image_settings) if image: args = {'name': instance_settings.name, 'flavor': flavor, diff --git a/snaps/openstack/utils/tests/glance_utils_tests.py b/snaps/openstack/utils/tests/glance_utils_tests.py index 85b59ab..e61b795 100644 --- a/snaps/openstack/utils/tests/glance_utils_tests.py +++ b/snaps/openstack/utils/tests/glance_utils_tests.py @@ -40,7 +40,7 @@ class GlanceSmokeTests(OSComponentTestCase): Tests to ensure that the proper credentials can connect. """ glance = glance_utils.glance_client(self.os_creds) - image = glance_utils.get_image(glance, 'foo') + image = glance_utils.get_image(glance, image_name='foo') self.assertIsNone(image) def test_glance_connect_fail(self): @@ -53,7 +53,7 @@ class GlanceSmokeTests(OSComponentTestCase): glance = glance_utils.glance_client(OSCreds( username='user', password='pass', auth_url='url', project_name='project')) - glance_utils.get_image(glance, 'foo') + glance_utils.get_image(glance, image_name='foo') class GlanceUtilsTests(OSComponentTestCase): @@ -104,7 +104,8 @@ class GlanceUtilsTests(OSComponentTestCase): self.assertEqual(self.image_name, self.image.name) - image = glance_utils.get_image(self.glance, os_image_settings.name) + image = glance_utils.get_image(self.glance, + image_settings=os_image_settings) self.assertIsNotNone(image) validation_utils.objects_equivalent(self.image, image) @@ -132,6 +133,7 @@ class GlanceUtilsTests(OSComponentTestCase): self.assertIsNotNone(self.image) self.assertEqual(self.image_name, self.image.name) - image = glance_utils.get_image(self.glance, file_image_settings.name) + image = glance_utils.get_image( + self.glance, image_settings=file_image_settings) self.assertIsNotNone(image) validation_utils.objects_equivalent(self.image, image) |