summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Pisarski <s.pisarski@cablelabs.com>2017-07-24 15:03:23 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-07-24 15:03:23 +0000
commit8e9920d2e8bd4a3d404b4589312cdc9510708a37 (patch)
treea7a0e941124255e904e34751e698b4515c95d4d0
parentc1b8dbb0a4c9a7baa4f370955dc6c6f00bbb67a9 (diff)
parent663cc3617e45f6967db4af2c0a4a27e9256923f1 (diff)
Merge "Refactor glance_utils.py v1 image creation."
-rw-r--r--snaps/openstack/tests/create_image_tests.py9
-rw-r--r--snaps/openstack/utils/glance_utils.py37
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)