diff options
author | 2017-07-24 15:03:23 +0000 | |
---|---|---|
committer | 2017-07-24 15:03:23 +0000 | |
commit | 8e9920d2e8bd4a3d404b4589312cdc9510708a37 (patch) | |
tree | a7a0e941124255e904e34751e698b4515c95d4d0 | |
parent | c1b8dbb0a4c9a7baa4f370955dc6c6f00bbb67a9 (diff) | |
parent | 663cc3617e45f6967db4af2c0a4a27e9256923f1 (diff) |
Merge "Refactor glance_utils.py v1 image creation."
-rw-r--r-- | snaps/openstack/tests/create_image_tests.py | 9 | ||||
-rw-r--r-- | snaps/openstack/utils/glance_utils.py | 37 |
2 files changed, 21 insertions, 25 deletions
diff --git a/snaps/openstack/tests/create_image_tests.py b/snaps/openstack/tests/create_image_tests.py index d538fef..6c9b175 100644 --- a/snaps/openstack/tests/create_image_tests.py +++ b/snaps/openstack/tests/create_image_tests.py @@ -12,6 +12,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from glanceclient.exc import HTTPBadRequest try: from urllib.request import URLError @@ -514,8 +515,14 @@ class CreateImageNegativeTests(OSIntegrationTestCase): img_format=os_image_settings.format, url="http://foo.bar")) - with self.assertRaises(URLError): + try: self.image_creator.create() + except HTTPBadRequest: + pass + except URLError: + pass + except Exception as e: + self.fail('Invalid Exception ' + str(e)) def test_bad_image_file(self): """ diff --git a/snaps/openstack/utils/glance_utils.py b/snaps/openstack/utils/glance_utils.py index 1010757..090846c 100644 --- a/snaps/openstack/utils/glance_utils.py +++ b/snaps/openstack/utils/glance_utils.py @@ -106,35 +106,24 @@ def __create_image_v1(glance, image_settings): :return: the OpenStack image object :raise exceptions from the Glance client or IOError when opening a file """ - created_image = None + kwargs = { + '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 - # TODO/REFACTOR - replace each call with one including kwargs if image_settings.url: - if image_settings.extra_properties: - created_image = glance.images.create( - name=image_settings.name, disk_format=image_settings.format, - container_format="bare", location=image_settings.url, - properties=image_settings.extra_properties, - is_public=image_settings.public) - else: - created_image = glance.images.create( - name=image_settings.name, disk_format=image_settings.format, - container_format="bare", location=image_settings.url, - is_public=image_settings.public) + kwargs['location'] = image_settings.url elif image_settings.image_file: image_file = open(image_settings.image_file, 'rb') - if image_settings.extra_properties: - created_image = glance.images.create( - name=image_settings.name, disk_format=image_settings.format, - container_format="bare", data=image_file, - properties=image_settings.extra_properties, - is_public=image_settings.public) - else: - created_image = glance.images.create( - name=image_settings.name, disk_format=image_settings.format, - container_format="bare", data=image_file, - is_public=image_settings.public) + 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) |