Add container and disk format parameters
Add the following parameters about glance images.
They are utilized in
tempest.api.image.v2.test_images.BasicOperationsImagesTest and
tempest.api.image.v2.test_images.ListImagesTest.
container_formats:
A list of image's container formats that users can specify.
disk_formats:
A list of image's disk formats that users can specify.
DocImpact
Change-Id: I8153cc8a75d52de8f39260675739174a2ea3b4e4
Partial-Bug: #1483177
diff --git a/tempest/api/image/v2/test_images.py b/tempest/api/image/v2/test_images.py
index a336507..bacf211 100644
--- a/tempest/api/image/v2/test_images.py
+++ b/tempest/api/image/v2/test_images.py
@@ -18,10 +18,15 @@
from six import moves
+from oslo_log import log as logging
from tempest.api.image import base
from tempest.common.utils import data_utils
+from tempest import config
from tempest import test
+CONF = config.CONF
+LOG = logging.getLogger(__name__)
+
class BasicOperationsImagesTest(base.BaseV2ImageTest):
"""
@@ -39,9 +44,11 @@
uuid = '00000000-1111-2222-3333-444455556666'
image_name = data_utils.rand_name('image')
+ container_format = CONF.image.container_formats[0]
+ disk_format = CONF.image.disk_formats[0]
body = self.create_image(name=image_name,
- container_format='bare',
- disk_format='raw',
+ container_format=container_format,
+ disk_format=disk_format,
visibility='private',
ramdisk_id=uuid)
self.assertIn('id', body)
@@ -77,9 +84,11 @@
# Create image
image_name = data_utils.rand_name('image')
+ container_format = CONF.image.container_formats[0]
+ disk_format = CONF.image.disk_formats[0]
body = self.client.create_image(name=image_name,
- container_format='bare',
- disk_format='raw',
+ container_format=container_format,
+ disk_format=disk_format,
visibility='private')
image_id = body['id']
@@ -99,9 +108,11 @@
# Create image
image_name = data_utils.rand_name('image')
+ container_format = CONF.image.container_formats[0]
+ disk_format = CONF.image.disk_formats[0]
body = self.client.create_image(name=image_name,
- container_format='bare',
- disk_format='iso',
+ container_format=container_format,
+ disk_format=disk_format,
visibility='private')
self.addCleanup(self.client.delete_image, body['id'])
self.assertEqual('queued', body['status'])
@@ -133,13 +144,17 @@
super(ListImagesTest, cls).resource_setup()
# We add a few images here to test the listing functionality of
# the images API
- cls._create_standard_image('bare', 'raw')
- cls._create_standard_image('bare', 'raw')
- cls._create_standard_image('ami', 'raw')
- # Add some more for listing
- cls._create_standard_image('ami', 'ami')
- cls._create_standard_image('ari', 'ari')
- cls._create_standard_image('aki', 'aki')
+ container_fmts = CONF.image.container_formats
+ disk_fmts = CONF.image.disk_formats
+ all_pairs = [(container_fmt, disk_fmt)
+ for container_fmt in container_fmts
+ for disk_fmt in disk_fmts]
+
+ for (container_fmt, disk_fmt) in all_pairs[:6]:
+ LOG.debug("Creating a image"
+ "(Container format: %s, Disk format: %s).",
+ container_fmt, disk_fmt)
+ cls._create_standard_image(container_fmt, disk_fmt)
@classmethod
def _create_standard_image(cls, container_format, disk_format):
@@ -201,7 +216,7 @@
@test.idempotent_id('cf1b9a48-8340-480e-af7b-fe7e17690876')
def test_list_images_param_size(self):
# Test to get all images by size
- image_id = self.created_images[1]
+ image_id = self.created_images[0]
# Get image metadata
image = self.client.show_image(image_id)
@@ -211,7 +226,7 @@
@test.idempotent_id('4ad8c157-971a-4ba8-aa84-ed61154b1e7f')
def test_list_images_param_min_max_size(self):
# Test to get all images with size between 2000 to 3000
- image_id = self.created_images[1]
+ image_id = self.created_images[0]
# Get image metadata
image = self.client.show_image(image_id)
@@ -234,7 +249,7 @@
@test.idempotent_id('e914a891-3cc8-4b40-ad32-e0a39ffbddbb')
def test_list_images_param_limit(self):
# Test to get images by limit
- params = {"limit": 2}
+ params = {"limit": 1}
images_list = self.client.list_images(params=params)['images']
self.assertEqual(len(images_list), params['limit'],
diff --git a/tempest/config.py b/tempest/config.py
index eb49fed..e3d71c1 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -459,7 +459,16 @@
cfg.IntOpt('build_interval',
default=1,
help="Time in seconds between image operation status "
- "checks.")
+ "checks."),
+ cfg.ListOpt('container_formats',
+ default=['ami', 'ari', 'aki', 'bare', 'ovf', 'ova'],
+ help="A list of image's container formats "
+ "users can specify."),
+ cfg.ListOpt('disk_formats',
+ default=['ami', 'ari', 'aki', 'vhd', 'vmdk', 'raw', 'qcow2',
+ 'vdi', 'iso'],
+ help="A list of image's disk formats "
+ "users can specify.")
]
image_feature_group = cfg.OptGroup(name='image-feature-enabled',