diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-07-27 10:27:14 -0600 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-07-27 10:27:14 -0600 |
commit | ca276f452540f68c08cb3df9049e9e7876364dac (patch) | |
tree | ce26c5fb721f10402669bf761c4e69317d3f3eca /snaps/openstack/utils/glance_utils.py | |
parent | fdcd5600bade294ae2a2207ef01da92f22f64327 (diff) |
Ensure library and tests close all necessary resources.
The SNAPS-OO library and tests had left open files, ssh, and scp
connections. These have all now been wrapped with try/finally
blocks.
JIRA: SNAPS-152
Change-Id: I43e09978b5c075bd78ff3279c0799556b8758878
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 | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/snaps/openstack/utils/glance_utils.py b/snaps/openstack/utils/glance_utils.py index 49bfe95..ad9c5e5 100644 --- a/snaps/openstack/utils/glance_utils.py +++ b/snaps/openstack/utils/glance_utils.py @@ -124,22 +124,30 @@ def __create_image_v1(glance, image_settings): 'name': image_settings.name, 'disk_format': image_settings.format, 'container_format': 'bare', 'is_public': image_settings.public} - if image_settings.extra_properties: - kwargs['properties'] = image_settings.extra_properties - - if image_settings.url: - kwargs['location'] = image_settings.url - elif image_settings.image_file: - image_file = open(image_settings.image_file, 'rb') - kwargs['data'] = image_file - else: - logger.warn('Unable to create image with name - %s. No file or URL', - image_settings.name) - return None + image_file = None - created_image = glance.images.create(**kwargs) - return Image(name=image_settings.name, image_id=created_image.id, - size=created_image.size, properties=created_image.properties) + try: + if image_settings.extra_properties: + kwargs['properties'] = image_settings.extra_properties + + if image_settings.url: + kwargs['location'] = image_settings.url + elif image_settings.image_file: + image_file = open(image_settings.image_file, 'rb') + kwargs['data'] = image_file + else: + logger.warn( + 'Unable to create image with name - %s. No file or URL', + image_settings.name) + return None + + created_image = glance.images.create(**kwargs) + return Image(name=image_settings.name, image_id=created_image.id, + size=created_image.size, + properties=created_image.properties) + finally: + if image_file: + image_file.close() def __create_image_v2(glance, image_settings): |