Merge "Allow glance support for GPT images"
diff --git a/tempest/api/image/v2/test_images_formats.py b/tempest/api/image/v2/test_images_formats.py
index f0dec90..520a215 100644
--- a/tempest/api/image/v2/test_images_formats.py
+++ b/tempest/api/image/v2/test_images_formats.py
@@ -90,14 +90,18 @@
@decorators.idempotent_id('a245fcbe-63ce-4dc1-a1d0-c16d76d9e6df')
def test_accept_usable_formats(self):
if self.imgdef['usable']:
- if self.imgdef['format'] in CONF.image.disk_formats:
- # These are expected to work
+ try:
self._test_image(self.imgdef)
- else:
- # If this is not configured to be supported, we should get
- # a BadRequest from glance
- self.assertRaises(lib_exc.BadRequest,
- self._test_image, self.imgdef)
+ except lib_exc.BadRequest:
+ format = self.imgdef['format']
+ if format == 'gpt' and format not in CONF.image.disk_formats:
+ # If we don't have gpt defined, we don't expect this to
+ # work because glance has not been updated for GPT
+ # FIXME(danms): Remove this once glance support for GPT is
+ # landed on master
+ self.skipTest('GPT not configured and glance is too '
+ 'old to support it')
+ raise
else:
self.skipTest(
'Glance does not currently reject unusable images on upload')
@@ -134,15 +138,23 @@
# the import even starts until glance has it in its API
# schema as a valid value. Other formats expected to fail
# do so during import and return to queued state.
- if self.imgdef['format'] not in CONF.image.disk_formats:
- self.assertRaises(lib_exc.BadRequest,
- self._test_image,
- self.imgdef, asimport=True)
- else:
+ try:
image = self._test_image(self.imgdef, asimport=True)
waiters.wait_for_image_status(self.client, image['id'],
- 'queued')
+ ['queued', 'active'])
self.client.delete_image(image['id'])
+ except lib_exc.BadRequest:
+ format = self.imgdef['format']
+ if format == 'gpt' and format not in CONF.image.disk_formats:
+ # If we don't have gpt defined, we don't expect this to
+ # work because glance has not been updated for GPT
+ # FIXME(danms): Remove this once glance support for GPT is
+ # landed on master
+ self.skipTest('GPT not configured and glance is too '
+ 'old to support it')
+ elif format in CONF.image.disk_formats:
+ # This is in our config so it's supposed to work, fail
+ raise
if self.imgdef['format'] == 'iso':
# NOTE(danms): Glance has a special case to not convert ISO images