Merge "[2025.2]Update integrated template for grenade-skip-level-always job"
diff --git a/releasenotes/notes/change-default-disk-format-0d5230cbb19e3d44.yaml b/releasenotes/notes/change-default-disk-format-0d5230cbb19e3d44.yaml
new file mode 100644
index 0000000..57c5319
--- /dev/null
+++ b/releasenotes/notes/change-default-disk-format-0d5230cbb19e3d44.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+ - |
+ The default value for ``[volume] disk_format``, which specifies the
+ disk format of the image in a copy a volume to image operation,
+ is changed from ``raw`` to ``[raw, qcow2]`` for which the type of
+ the config option also needed to change from ``string`` type to
+ ``list`` type i.e. it accepts multiple values now.
diff --git a/tempest/api/volume/test_volumes_actions.py b/tempest/api/volume/test_volumes_actions.py
index 8cf44be..8b2bc69 100644
--- a/tempest/api/volume/test_volumes_actions.py
+++ b/tempest/api/volume/test_volumes_actions.py
@@ -109,29 +109,37 @@
# it is shared with the other tests. After it is uploaded in Glance,
# there is no way to delete it from Cinder, so we delete it from Glance
# using the Glance images_client and from Cinder via tearDownClass.
- image_name = data_utils.rand_name(self.__class__.__name__ + '-Image',
- prefix=CONF.resource_name_prefix)
- body = self.volumes_client.upload_volume(
- self.volume['id'], image_name=image_name,
- disk_format=CONF.volume.disk_format)['os-volume_upload_image']
- image_id = body["image_id"]
- self.addCleanup(test_utils.call_and_ignore_notfound_exc,
- self.images_client.delete_image,
- image_id)
- waiters.wait_for_image_status(self.images_client, image_id, 'active')
- # This is required for the optimized upload volume path.
- # New location APIs are async so we need to wait for the location
- # import task to complete.
- # This should work with old location API since we don't fail if there
- # are no tasks for the image
- waiters.wait_for_image_tasks_status(self.images_client,
- image_id, 'success')
- waiters.wait_for_volume_resource_status(self.volumes_client,
- self.volume['id'], 'available')
+ # NOTE: This looks really strange to loop through the disk formats
+ # but similar implementation is done in test_volume_bootable test.
+ # Also there is no trace of ddt usage in tempest so this looks like
+ # the only way.
+ for disk_format in CONF.volume.disk_format:
+ image_name = data_utils.rand_name(
+ self.__class__.__name__ + '-Image',
+ prefix=CONF.resource_name_prefix)
+ body = self.volumes_client.upload_volume(
+ self.volume['id'], image_name=image_name,
+ disk_format=disk_format)['os-volume_upload_image']
+ image_id = body["image_id"]
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.images_client.delete_image,
+ image_id)
+ waiters.wait_for_image_status(self.images_client, image_id,
+ 'active')
+ # This is required for the optimized upload volume path.
+ # New location APIs are async so we need to wait for the location
+ # import task to complete.
+ # This should work with old location API since we don't fail if
+ # there are no tasks for the image
+ waiters.wait_for_image_tasks_status(self.images_client,
+ image_id, 'success')
+ waiters.wait_for_volume_resource_status(self.volumes_client,
+ self.volume['id'],
+ 'available')
- image_info = self.images_client.show_image(image_id)
- self.assertEqual(image_name, image_info['name'])
- self.assertEqual(CONF.volume.disk_format, image_info['disk_format'])
+ image_info = self.images_client.show_image(image_id)
+ self.assertEqual(image_name, image_info['name'])
+ self.assertEqual(disk_format, image_info['disk_format'])
@decorators.idempotent_id('92c4ef64-51b2-40c0-9f7e-4749fbaaba33')
def test_reserve_unreserve_volume(self):
diff --git a/tempest/config.py b/tempest/config.py
index cbfa7b5..9c288ff 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -1025,9 +1025,9 @@
cfg.StrOpt('vendor_name',
default='Open Source',
help='Backend vendor to target when creating volume types'),
- cfg.StrOpt('disk_format',
- default='raw',
- help='Disk format to use when copying a volume to image'),
+ cfg.ListOpt('disk_format',
+ default=['raw', 'qcow2'],
+ help='Disk format to use when copying a volume to image'),
cfg.IntOpt('volume_size',
default=1,
help='Default size in GB for volumes created by volumes tests'),
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 2f21c2d..bd21e73 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -45,7 +45,7 @@
# if things are working in latest and oldest it will work in between
# stable branches also. If anything is breaking we will be catching
# those in respective stable branch gate.
- - tempest-full-2024-2:
+ - tempest-full-2025-1:
irrelevant-files: *tempest-irrelevant-files
- tempest-full-2023-2:
irrelevant-files: *tempest-irrelevant-files
@@ -201,12 +201,15 @@
irrelevant-files: *tempest-irrelevant-files
periodic-stable:
jobs:
+ - tempest-full-2025-1
- tempest-full-2024-2
- tempest-full-2024-1
- tempest-full-2023-2
+ - tempest-slow-2025-1
- tempest-slow-2024-2
- tempest-slow-2024-1
- tempest-slow-2023-2
+ - tempest-full-2025-1-extra-tests
- tempest-full-2024-2-extra-tests
- tempest-full-2024-1-extra-tests
- tempest-full-2023-2-extra-tests
diff --git a/zuul.d/stable-jobs.yaml b/zuul.d/stable-jobs.yaml
index 5785ec6..6409ae3 100644
--- a/zuul.d/stable-jobs.yaml
+++ b/zuul.d/stable-jobs.yaml
@@ -1,5 +1,11 @@
# NOTE(gmann): This file includes all stable release jobs definition.
- job:
+ name: tempest-full-2025-1
+ parent: tempest-full-py3
+ nodeset: openstack-single-node-noble
+ override-checkout: stable/2025.1
+
+- job:
name: tempest-full-2024-2
parent: tempest-full-py3
nodeset: openstack-single-node-jammy
@@ -18,6 +24,12 @@
override-checkout: stable/2023.2
- job:
+ name: tempest-full-2025-1-extra-tests
+ parent: tempest-extra-tests
+ nodeset: openstack-single-node-noble
+ override-checkout: stable/2025.1
+
+- job:
name: tempest-full-2024-2-extra-tests
parent: tempest-extra-tests
nodeset: openstack-single-node-jammy
@@ -36,6 +48,12 @@
override-checkout: stable/2023.2
- job:
+ name: tempest-slow-2025-1
+ parent: tempest-slow-py3
+ nodeset: openstack-two-node-noble
+ override-checkout: stable/2025.1
+
+- job:
name: tempest-slow-2024-2
parent: tempest-slow-py3
nodeset: openstack-two-node-jammy