We are jazzed to announce the release of: tempest 27.0.0: OpenStack Integration Testing This release is part of the wallaby release series. The source is available from: https://opendev.org/openstack/tempest Download the package from: https://pypi.org/project/tempest Please report issues through: https://bugs.launchpad.net/tempest/+bugs For more details, please see below. 27.0.0 ^^^^^^ Prelude ******* Tempest.scenario.manager is now a stable interface for Tempest plugins. This release is to tag Tempest for OpenStack Wallaby release. This release marks the start of Wallaby release support in Tempest. After this release, Tempest will support below OpenStack Releases: * Wallaby * Victoria * Ussuri * Train Current development of Tempest is for OpenStack Xena development cycle. Every Tempest commit is also tested against master during the Xena cycle. However, this does not necessarily mean that using Tempest as of this tag will work against a Xena (or future release) cloud. To be on safe side, use this tag to test the OpenStack Wallaby release. New Features ************ * In this release, we made tempest/scenario/manager.py a stable interface ready to be consumed by all tempest plugins. The effort was tracked in the following etherpad [1], and the related review can be listed via [2]: * [1] https://etherpad.opendev.org/p/tempest-scenario-manager * [2] https://review.opendev.org/#/q/topic:bp/tempest-scenario- manager-stable(status:open+OR+status:merged) Some time ago, tempest/scenario/manager.py got copied to most of the plugins and therefore, it diverged - every plugin's copy had slight differences. In this release, we pushed changes to unify the manager's methods and improved their APIs in order to have them easier consumable: * we added implementations of methods that were often used in plugins' manager.py however were not implemented in our manager * we improved APIs by f.e. adding a kwargs argument so that the consumers are more in control of the data that are passed to tempest clients * we modified logic of a few methods so that it complies with the plugins' manager versions in order to prepare for a situation when the plugins can reuse Tempest manager as much as possible rather than keeping their own copy * we made methods consistent w.r.t. names and parameters * we split the lengthy methods to have more readable code * previously private methods which had a potential to be reused were made public so that it's clear they are expected to be used in tempest plugins * missing docstrings have been added * Add a new client to handle requests to create and delete assisted volume snapshots. * Adds a method to images_client to get tasks relevant to a given image. Also adds has_version() method to image versions_client to probe for availability of a given API version. Upgrade Notes ************* * img_dir scenario option has been deprecated and it's being removed. Starting Tempest 25.0.0 release, CONF.scenario.img_file needs a full path for the image. Until this release, old behavior was maintained and kept working however a user needs to specify the full path in CONF.scenario.img_file config option from now on. * The old deprecated "data-ultis" from "tempest.common.utils" has been removed. If you are still using this, use the stable version of "data-utils" from new location "tempest.lib.common.utils". Other Notes *********** * A new "[compute-feature-enabled]ide_bus" config option has been introduced to indicate if the environment supports attaching disks to an instance using an "IDE" bus. This currently defaults to "True" but should be set to "False" when using the libvirt OpenStack Nova virt driver *and* the "q35" machine type as support for this bus is no longer provided. Changes in tempest 26.1.0..27.0.0 --------------------------------- 03ac65a80 Add releasenote to tag the Tempest for Wallaby release 9c01c91c2 Add 26.1.0 releasenote page e7bd446c4 Use stable constraint in tox to release new tag for Wallaby 0b5a8a25b Add a reno for scenario manager effort c2ca52dce Add tempest.scenario.manager as stable interface for plugins e9ed6092e Add delete_on_termination for compute API v2.79 - os-volume_attachments 1072f5043 Move flavor client in cls.setup_compute_client() 071d154be Rename create_networks to correct name as per its functionality 6428139de Move floating IP operation from nova-network to neutron bbc9dd34f Remove nova-network from scenario tests ac1aaf662 Add client for assisted volume snapshots API. 987e79713 Update oslo.utils minimal version a298fdf7a setup.cfg: Replace dashes with underscores a32c763c8 Uncap PrettyTable 672eee1d3 Add documentation on the usage of keystone's scope & roles 10e5e194a Make image metadef tests admin-only c76e186d8 Skip failing test test_fix_argument_yes 11a3e06c5 Fix test_verify_tempest_config unit tests 7bde7bf53 Add image task validation 238be5042 Create tmd dir with specific prefix in check-uuid unit tests 56a446d53 compute: Add [compute-feature-enabled]ide_bus flag 8552ac7d4 Negative test for web-download import 0ac97de16 Pass region to the alternate image client 73555df4d Make _get_router() non-private 086020946 Make _create_empty_security_group() non-private d4bc9a8b6 Test glance distributed import a446d703c Make _get_server_port_id_and_ip4() non-private 582c170b2 Make _create_security_group() non-private 56860ccae Replace md5 with oslo version ef0e2912e Finally remove the old data-utils 62d11d847 Use configured upper-constraints for non-master Tempest run 4fa1534f2 Switch to new rolevar for run-temepst role 008950efa Remove deprecated scenario img_dir option ed2e3b5a5 Remove the unused _api_version variable from volume tests Diffstat (except docs and test files) ------------------------------------- ...d-scenario.img_dir-option-da626e6153181e16.yaml | 8 + ...tabilize-scenario-manager-adf36d21b08e31a4.yaml | 31 ++ ...ed-volume-snapshot-client-737f5cb35d58c1b6.yaml | 4 + ...d-compute-feature-ide-bus-b63802502c378083.yaml | 10 + ...nt-add-versions-and-tasks-ac289dbfe1c899cc.yaml | 6 + .../remove-old-data-utils-e0966f882f7fe23a.yaml | 6 + .../tempest-wallaby-release-0f2cea5ccf63485e.yaml | 17 + releasenotes/source/index.rst | 1 + releasenotes/source/v26.1.0.rst | 5 + requirements.txt | 4 +- roles/run-tempest/defaults/main.yaml | 3 + roles/run-tempest/tasks/main.yaml | 11 + setup.cfg | 9 +- tempest/api/compute/base.py | 2 + tempest/api/compute/servers/test_server_rescue.py | 14 +- tempest/api/image/base.py | 12 +- .../test_images_metadefs_namespace_objects.py | 2 +- .../test_images_metadefs_namespace_properties.py | 2 +- .../test_images_metadefs_namespace_tags.py | 2 +- .../{ => admin}/test_images_metadefs_namespaces.py | 2 +- .../test_images_metadefs_resource_types.py | 2 +- tempest/api/image/v2/test_images.py | 93 +++- tempest/api/image/v2/test_images_negative.py | 62 +++ tempest/api/network/test_floating_ips.py | 2 +- tempest/api/object_storage/test_object_services.py | 20 +- tempest/api/object_storage/test_object_slo.py | 9 +- tempest/api/volume/admin/test_group_snapshots.py | 2 - tempest/api/volume/admin/test_group_type_specs.py | 1 - tempest/api/volume/admin/test_group_types.py | 1 - tempest/api/volume/admin/test_groups.py | 3 - tempest/api/volume/admin/test_user_messages.py | 1 - tempest/api/volume/base.py | 1 - tempest/api/volume/test_versions.py | 2 - tempest/api/volume/test_volumes_backup.py | 1 - tempest/api/volume/test_volumes_extend.py | 1 - tempest/api/volume/test_volumes_get.py | 1 - tempest/clients.py | 10 + tempest/common/utils/__init__.py | 20 - tempest/config.py | 19 +- .../api_schema/response/compute/v2_79/__init__.py | 0 .../api_schema/response/compute/v2_79/servers.py | 67 +++ tempest/lib/common/preprov_creds.py | 4 +- tempest/lib/services/compute/__init__.py | 9 +- .../compute/assisted_volume_snapshots_client.py | 63 +++ tempest/lib/services/compute/servers_client.py | 4 +- tempest/lib/services/image/v2/images_client.py | 8 + tempest/lib/services/image/v2/versions_client.py | 10 + tempest/scenario/manager.py | 602 +++++++++------------ .../scenario/test_minbw_allocation_placement.py | 2 +- tempest/scenario/test_minimum_basic.py | 18 +- .../scenario/test_network_advanced_server_ops.py | 4 +- tempest/scenario/test_network_basic_ops.py | 7 +- tempest/scenario/test_network_v6.py | 4 +- tempest/scenario/test_security_groups_basic_ops.py | 8 +- tempest/scenario/test_server_basic_ops.py | 6 +- tempest/scenario/test_shelve_instance.py | 2 +- tempest/scenario/test_snapshot_pattern.py | 2 +- tempest/scenario/test_stamp_pattern.py | 2 +- tempest/scenario/test_volume_backup_restore.py | 10 +- tempest/scenario/test_volume_boot_pattern.py | 2 +- tempest/scenario/test_volume_migrate_attached.py | 4 +- .../test_assisted_volume_snapshots_client.py | 53 ++ .../lib/services/image/v2/test_images_client.py | 46 ++ .../lib/services/image/v2/test_versions_client.py | 12 + tox.ini | 10 +- zuul.d/integrated-gate.yaml | 2 +- 74 files changed, 1212 insertions(+), 508 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index abc0bceda..eae542782 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15 +15 @@ oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 -oslo.utils>=3.33.0 # Apache-2.0 +oslo.utils>=4.7.0 # Apache-2.0 @@ -21 +21 @@ stevedore>=1.20.0 # Apache-2.0 -PrettyTable<0.8,>=0.7.1 # BSD +PrettyTable>=0.7.1 # BSD