From ca276f452540f68c08cb3df9049e9e7876364dac Mon Sep 17 00:00:00 2001 From: spisarski Date: Thu, 27 Jul 2017 10:27:14 -0600 Subject: 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 --- snaps/openstack/utils/glance_utils.py | 38 +++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'snaps/openstack/utils/glance_utils.py') 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): -- cgit 1.2.3-korg