v20.0.0 Release Notes

20.0.0 Release Notes



This release is to tag the Tempest for OpenStack Stein release. This release marks the start of Stein release support in Tempest and the end of support for Ocata in Tempest. After this release, Tempest will support below OpenStack Releases:

  • Stein

  • Rocky

  • Queens

  • Pike

Current development of Tempest is for OpenStack Train development cycle. Every Tempest commit is also tested against master during the Train cycle. However, this does not necessarily mean that using Tempest as of this tag will work against a Train (or future release) cloud. To be on safe side, use this tag to test the OpenStack Stein release.

New Features

  • Add basic read-only Placement client to Tempest to make possible the testing of the placement based bandwidth allocation feature. The following API calls are available for tempest from now:

    • GET /allocation_candidates

    • GET /allocations/{consumer_uuid}

    Add new config group placement, with the config options:

    • endpoint_type to use for communication with placement service.

    • catalog_type of the placement service.

    • region as the placement region name to use.

    • min_microversion and max_microversion as the range between placement API requests are sent.

  • Add a new config setting immutable_user_source in the [identity-feature-enabled] group that defaults to false. This setting, combined with the usage of the @testtools.skipIf() decorator, will allow tests that require user creation, deletion, or modification to skip instead of failing in environments that are LDAP-backed. In such environments, the user source is read-only, so this feature flag is needed to allow such tests to gracefully skip without having to blacklist them.

  • Add support of OSProfiler library for profiling and distributed tracing of OpenStack. A new config option key in section profiler is added, the option sets the secret key used to enable profiling in OpenStack services. The value needs to correspond to the one specified in [profiler]/hmac_keys option of OpenStack services.

  • A new parameter follow_redirects has been added to the class RestClient, which is passed through to ClosingHttp or ClosingProxyHttp respectively. The default value is True which corresponds to the previous behaviour of following up to five redirections before returning a response. Setting follow_redirects = False allows to disable this behaviour, so that any redirect that is received is directly returned to the caller. This allows tests to verify that an API is responding with a redirect.

  • The tempest.lib.decorators.attr decorator now supports a condition kwarg which can be used to conditionally apply the attr to the test function if the condition evaluates to True.

  • Add show_version function to the NetworkVersionsClient client. This allows the possibility of getting details for Networking API.

Upgrade Notes

  • Changed the default value of ‘api_v1’ config option in the ‘image-feature-enabled’ group to False from True, because glance v1 APIs are deprecated. Please set True explicitly on the option if still testing glance v1 APIs.

  • The tempest-full, tempest-full-py3 and tempest-slow zuul v3 job configurations now set ENABLE_VOLUME_MULTIATTACH: true in the devstack_localrc variables section. If you have a plugin job configuration that inherits from one of these jobs and the backend cinder volume driver or nova compute driver do not support volume multiattach then you should override and set this variable to ENABLE_VOLUME_MULTIATTACH: false in your job configuration.

  • Below config option was deprecated for removal since juno release. It’s time to remove it as all supported stable branches and Tempest plugins are good to handle it.

    • [volume_feature_enabled].api_v1

    Also Tempest removes the below corresponding service clients alias from client.py which were being set based on above removed config option.

    • self.backups_client

    • self.encryption_types_client

    • self.snapshots_client

    • self.volume_availability_zone_client

    • self.volume_hosts_client

    • self.volume_limits_client

    • self.volume_qos_client

    • self.volume_quotas_client

    • self.volume_services_client

    • self.volume_types_client

    • self.volumes_client

    • self.volumes_extension_client

  • tempest.lib.common.utils.misc.find_test_caller was deprecated during Kilo release cycle in favor of tempest.lib.common.utils.test_utils.find_test_caller. The deprecated version of find_test_caller is removed.

  • CONF.validation.run_validation default enabled. This option required to be set true in order to run api tests stability when the guest cooperation required. For example when the guest needs react on Volume/Interface detach. The ssh test makes sure the VM is alive and ready when the detach needs to happen. The option was enabled on the gate for a long time.

Deprecation Notes

  • The scheduler_available_filters option is being deprecated in favor of scheduler_enabled_filters. The new name is more indicative of what the option means. scheduler_enabled_filters’s default value is set to the default value of Nova’s enabled_filters. scheduler_available_filters’s default was all. There was confusion around this value. Sometimes it was understood to mean the default Nova filters are enabled, other times it was understood to mean all filters are enabled. While all is still allowed for scheduler_enabled_filters for backwards compatibility, it is strongly recommended to provide an explicit list of filters that matches what’s configured in nova.conf.

Bug Fixes

  • [bug 1616892] Tempest now allows tests to verify that an API responds with a redirect.

  • Fixed bug #1791007. tempest workspace register and tempest workspace rename CLI will error if None or empty string is passed in –name arguments. Earlier both CLI used to accept the None or empty string as name which was confusing.

  • Fixed bug #1799883. tempest workspace register and tempest workspace move CLI will now validate the value of the --path CLI argument and raise an exception if it is None or empty string. Earlier both CLI actions were accepting None or empty path which was confusing.

  • Fixed bug #1808473. tempest run CLI will error if a non-exist config file is input to parameter –config-file. Earlier non-exist config value was silently getting ignored and the default config file was used instead which used to give false behavior to the user on using the passed config file.

  • Patch https://review.opendev.org/#/c/499575/ introduced support creating Neutron port with certain capabilities. Currently capabilities list interpreted as string this change fix it.

    tempest.conf [network] port_profile = capabilities:[switchdev]

    result: {‘capabilities’:’[switchdev]’}

    expected: {‘capabilities’: [‘switchdev’]}