[release-announce] tempest 26.1.0 (wallaby)

no-reply at openstack.org no-reply at openstack.org
Wed Mar 10 09:47:01 UTC 2021


We are pumped to announce the release of:

tempest 26.1.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.

26.1.0
^^^^^^


Prelude
*******

This is an intermediate release during the Wallaby development cycle
to make new functionality available to plugins and other consumers.

The integrated horizon dashboard test is now moved from tempest-
horizon plugin into Tempest. You do not need to install tempest-
horizon to run the horizon test which can be run using Tempest itself.

Support for RBAC new system scope is added in Tempest.


New Features
************

* The following tempest clients for keystone v3 OS_FEDERATION API
  were implemented in this release

  * identity_providers

  * protocols

  * mappings

  * service_providers

* Add project alternate admin, member and reader role for dynamic
  credentials.

* Added methods to the identity v3 roles client to support:

  * PUT /v3/system/users/{user}/roles/{role}

  * GET /v3/system/users/{user}/roles

  * GET /v3/system/users/{user}/roles/{role}

  * DELETE /v3/system/users/{user}/roles/{role}

  * PUT /v3/system/groups/{group}/roles/{role}

  * GET /v3/system/groups/{group}/roles

  * GET /v3/system/groups/{group}/roles/{role}

  * DELETE /v3/system/groups/{group}/roles/{role}

* Added public interface create_loginable_secgroup_rule(). Since
  this interface is meant to be used by tempest plugins, It doesn't
  neccessarily require to be private api.

* Added public interface create_security_group_rule(). Since this
  interface is meant to be used by tempest plugins, It doesn't
  neccessarily require to be private api.

* Added public interface log_console_output(). It used to be a
  private method with name _log_console_output(). Since this interface
  is meant to be used by tempest plugins, It doesn't neccessarily
  require to be private api.

* Keystone provides the new scoped token called "system" which can
  be used to query the system scoped API operation. Projects are
  moving towards the policy with new scope types, Keystone, Nova
  already provide the new policy for RBAC checks. Tempest has added
  the support to query the system scoped token from keystone to test
  the new policy. As next step, we will be moving all the Tempest
  tests on the project's new policy.

* Dynamic credentials now support the scope type for specific roles
  too along with "admin", "member", "reader" role. Test can specify
  the scope in the prefix of "cls.credentials" name. If "system" is
  prefix in "cls.credentials" name then creds will be created with
  scope as "system". If "domain" is prefix in "cls.credentials" name
  then creds will be created with scope as "domain" otherwise default
  "project" scope will be used. For Example:

     credentials = [['my_role', 'role1'], # this will be old style and project scoped
                    ['project_my_role', 'role1'], # this will be project scoped
                    ['domain_my_role', 'role1'], # this will be domain scoped
                    ['system_my_role', 'role1']] # this will be system scoped

  And below is how test can access the credential manager of
  respective credentials type:

     cls.os_my_role.any_client
     cls.os_project_my_role.any_client
     cls.os_domain_my_role.any_client
     cls.os_system_my_role.any_client

  For backward compatibility, we set the credentials manager class
  attribute in old style form too which is prefix with "os_roles_*",
  example "cls.os_roles_my_role" but we recommend to use the new style
  attribute as shown above.

* Adds new personas that can be used to test service policies for
  all default scopes (project, domain, and system) and roles (reader,
  member, and admin). Both dynamic credentials and pre-provisioned
  credentials are supported.


Known Issues
************

* Scope support for specific role is not yet added for pre-
  provisioned credentials.


Upgrade Notes
*************

* In this release tempest/manager.py is removed after more than 4
  years of deprecation.

* The "tempest.lib.common.utils.data_utils.random_bytes()" helper
  function will no longer allow a "size" of more than 1MiB. Tests
  generally do not need to generate and use large payloads for feature
  verification and it is easy to lose track of and duplicate large
  buffers. The sum total of such errors can become problematic in
  paralllelized and constrained CI environments.

* Deprecated config options to select the Volume API version have
  been removed. Use "CONF.volume.catalog_type" to run volume tests
  under v3 or v2 APIs.

  * "CONF.volume-feature-enabled.api_v2"

  * "CONF.volume-feature-enabled.api_v3"


Deprecation Notes
*****************

* In this release the following tempest arguments are deprecated and
  replaced by new ones which are functionally equivalent:

     * --black-regex is replaced by --exclude-regex

     * --blacklist-file is replaced by --exclude-list

     * --whitelist-file is replaced by --include-list

  For now Tempest supports both (new and old ones) in order to make
  the transition for all consumers smoother. However, that's just a
  temporary case and the old options will be removed soon.


Bug Fixes
*********

* [bug 1613819 (https://bugs.launchpad.net/tempest/+bug/1613819)]
  admin_domain_name and default_credentials_domain_name parameters
  under [auth] now affect a domain used for creating test users just
  as they affect it for projects. Previously a domain with an id set
  to "default" had to be present in order for test user creation to
  succeed with Keystone v3.

* Fixes the bug# 1917168
  (https://bugs.launchpad.net/tempest/+bug/1917168)

Changes in tempest stein-last..26.1.0
-------------------------------------

b8169f5a3 Add release notes for an Wallaby intermediate release.
2d0da049d Support scope in dynamic cred for specific roles
ef13f406b Update dynamic creds to properly handle types during creation
24762611f Add bandwidth inventory to the subnodes in tempest-multinode-full-py3
f7d53297b Update subunit_describe_calls about new ports
795ef25b7 Implementation of create_subnet() varies in manila-tempest-plugin
420586c8b Add alt project persona in dynamic credential
c37410fc1 Make _get_network_by_name() non-private
19b70a385 [part1] Remove six
4c3bf8f80 Remove usage of six
3bdafd897 Make _create_network() non-private
8c3dac1ab Remove usage of six
0fa206951 Remove usage of six
f97c5cc1e Add log for all assigned roles for dynamic cred users
99d6e0098 Remove usage of six
fd4dcf98c Make _cleanup_volume_type non-private
46d540d33 Add option to support volume_type in volume creation
f4bd554b9 change ipv6 public network cidr on tempest-slow job
0ead75349 Enable swift in tempest-full-py3
a17cca4e7 Allow kwargs in create_volume_snapshot
8a8c85ddf Fix run-tempest black/exclude var setting
1a727de10 Modify the port fake data according to api reference
35eaed986 add unittest for trust client operation interface in identity part
daf445a64 Optimize the check pipeline runtime
05bc7f17b Enable devstack parallel installation in tempest-full-parallel job
9e8729bc4 Implemetation of tempest client for keystone v3 OS_FEDERATION API
5b36c3689 Fix race condition for image test
7b98ea525 Fix --exlude typo in tox.ini
32e055780 Add release note and fix some TODO from system scope support
861c78f2f Disable file injection tests until bug/1882421
f5aef7bec Create default network for server advance scenario tests
ef8e054b6 Make import wait check for store status
f5e277c80 Add wait_for_resource_deletion for swift api clients
cfd0a1526 Refactor skip_because decorator
945f5a1ce Make _create_security_group_rule non-private
cb95bba84 Make _create_loginable_secgroup_rule non-private
1b0cddc90 Make _log_console_output non-private
bd2acbfbc Allow use custom uppper constraints in stable/stein
bfce1f219 Change Review merge policy from two +2 to single +2 requirement
6fb55c8fc Add config option for enforce_scope
249b30e0e test_live_migration: Rename test_iscsi_volume
7f3942522 Fix system & domain scoped admin dynamic credential
8b90b26cc Test for changing QoS policy with min bw of bound port
1ce92bf34 Make create_user domain-aware for V3CredsClient
26186cf96 test_encrypted_cinder_volumes: Do not create an image for this test
eb3c7e37b Move horizon test from tempest-horizon to tempest
a28849ff7 Fix project/domain scope in dynamic_creds
743d4953f Remove tempest/manager.py after 4 year deprecation
dc84423b7 Inclusive jargon
e7a513b46 Drop base grenade job for nova
e044dada3 Test glance reserved properties
460084288 1912117: Fix the IP URL for metadata service in fixed network scenario
8663655af Make random_bytes() enforce sane size limits
8dfefcebe Fix memory explosion in multi-store image tests
a811f44b5 Delete wrong argument from creating HTTP connection
8464cefbf Use CONF.identity.disable_ssl_certificate_validation in object_client
19213304d Add release note for new role client methods
cbac9379a Add default RBAC personas to pre-provisioned creds
06374e2df Add default RBAC personas to dynamic credentials
5dbaaed88 Add client methods and tests for system grants
cd0bbbdad Add system scope for admin auth
57d56fade Remove deprecated test.idempotent_id decorator
449287d45 Remove deprecated config options for volume API selection
983e1ceb4 Update microversion doc for compute microversion 2.3
9c8744172 Pass custom args to create_port through create_server
f8625f0de Remove stable/stein testing jobs
5423c5309 scenario: Use wait_for_volume_attachment_remove_from_server in nova_volume_detach
77f2291c8 Add release notes page for version 26.0.0
be8ba2c27 Use proper kwargs in rebuild_server
5ffc28f19 add unitest for api of resource providers inventories
cb4aff1a2 Revert "Use victoria stable constraint in tox to release 26.0.0"
4ad346e64 Also calculate external subnets when check cidr whether in use
4a14005dc Allow kwargs in create/restore_backup
23b57fdde Remove slow tag from test_minbw test
0090a1048 Allow kwargs in _get_router


Diffstat (except docs and test files)
-------------------------------------

REVIEWING.rst                                      |  13 +-
... => tempest-non-active-plugins-registry.header} |   4 +-
etc/{whitelist.yaml => allow-list.yaml}            |   0
etc/rbac-persona-accounts.yaml.sample              | 108 ++++++
...N-APIs-as-tempest-clients-fe9e10a0fe5f09d4.yaml |  10 +
.../notes/Inclusive-jargon-17621346744f0cf4.yaml   |  13 +
.../notes/Remove-manager-2e0b0af48f01294a.yaml     |   5 +
...alt-project-dynamic-creds-1a3bc543e65d9433.yaml |   4 +
...tity-roles-system-methods-519dc144231993a3.yaml |  13 +
...e_loginable_secgroup_rule-73722fd4b4eb12d0.yaml |   6 +
...reate_security_group_rule-16d58a8f0f0ff262.yaml |   6 +
...ermediate-wallaby-release-55a0b31b1dee7b23.yaml |   4 +
.../notes/log_console_output-dae6b8740b5a5821.yaml |   8 +
...aware-for-v3-creds-client-5054f58e715adc0c.yaml |   9 +
...ge-tempest-horizon-plugin-39d555339ab8c7ce.yaml |   6 +
.../random-bytes-size-limit-ee94a8c6534fe916.yaml  |   9 +
...ted-volume-config-options-4b7ea93b88e5b982.yaml |   9 +
...upport-for-rbac-new-scope-6ec8164ce1e7288c.yaml |  13 +
...n-get-roles-dynamic-creds-90bfab163c1c289a.yaml |  36 ++
.../notes/system-scope-44244cc955a7825f.yaml       |   7 +
releasenotes/source/index.rst                      |   1 +
releasenotes/source/v26.0.0.rst                    |   5 +
roles/run-tempest/README.rst                       |  15 +-
roles/run-tempest/defaults/main.yaml               |   1 -
roles/run-tempest/tasks/main.yaml                  |  43 ++-
.../compute/admin/test_instance_usage_audit_log.py |   3 +-
.../test_instance_usage_audit_log_negative.py      |   3 +-
tempest/api/compute/admin/test_live_migration.py   |   9 +-
tempest/api/compute/admin/test_volume.py           |   4 +-
.../api/compute/flavors/test_flavors_negative.py   |   5 +-
tempest/api/compute/images/test_image_metadata.py  |   4 +-
.../images/test_images_oneserver_negative.py       |  38 ++-
.../api/compute/images/test_list_image_filters.py  |   4 +-
.../api/compute/servers/test_attach_interfaces.py  |   5 +-
tempest/api/compute/servers/test_novnc.py          |   8 +-
tempest/api/compute/servers/test_server_actions.py |   3 +-
tempest/api/identity/admin/v3/test_roles.py        |  37 +++
tempest/api/identity/admin/v3/test_tokens.py       |   8 +-
tempest/api/image/base.py                          |   4 +-
tempest/api/image/v1/test_images.py                |   8 +-
tempest/api/image/v2/admin/test_images.py          |   4 +-
tempest/api/image/v2/test_images.py                |  19 +-
tempest/api/image/v2/test_images_negative.py       |  42 +++
tempest/api/network/test_ports.py                  |   7 +-
tempest/api/object_storage/base.py                 |  12 +-
.../api/object_storage/test_account_services.py    |   2 +-
tempest/api/object_storage/test_container_sync.py  |   2 +-
tempest/api/object_storage/test_object_formpost.py |   3 +-
.../test_object_formpost_negative.py               |   3 +-
tempest/api/object_storage/test_object_temp_url.py |   3 +-
.../test_object_temp_url_negative.py               |   3 +-
tempest/api/volume/base.py                         |  24 +-
tempest/api/volume/test_volumes_list.py            |   2 +-
tempest/api/volume/test_volumes_negative.py        |   4 +-
tempest/clients.py                                 | 158 +++++----
tempest/cmd/cleanup_service.py                     |   3 +-
tempest/cmd/init.py                                |   4 +-
tempest/cmd/run.py                                 | 116 +++++--
tempest/cmd/subunit_describe_calls.py              |  24 +-
tempest/cmd/verify_tempest_config.py               |  14 -
tempest/common/compute.py                          |   3 +-
tempest/common/credentials_factory.py              |   6 +-
tempest/common/utils/__init__.py                   |   1 +
tempest/common/waiters.py                          |  16 +-
tempest/config.py                                  | 106 ++++--
tempest/lib/auth.py                                |  26 +-
tempest/lib/cmd/check_uuid.py                      |   2 +-
tempest/lib/common/cred_client.py                  |  90 ++++-
tempest/lib/common/cred_provider.py                |  54 ++-
tempest/lib/common/dynamic_creds.py                | 205 +++++++++---
tempest/lib/common/jsonschema_validator.py         |   3 +-
tempest/lib/common/preprov_creds.py                | 138 +++++++-
tempest/lib/common/rest_client.py                  |  16 +-
tempest/lib/common/ssh.py                          |   3 +-
tempest/lib/common/utils/data_utils.py             |   2 +
tempest/lib/decorators.py                          |  16 +-
tempest/lib/exceptions.py                          |   4 +
tempest/lib/services/clients.py                    |  10 +-
tempest/lib/services/compute/agents_client.py      |   3 +-
.../lib/services/compute/baremetal_nodes_client.py |   3 +-
tempest/lib/services/compute/flavors_client.py     |   3 +-
.../services/compute/floating_ip_pools_client.py   |   3 +-
.../lib/services/compute/floating_ips_client.py    |   3 +-
tempest/lib/services/compute/hosts_client.py       |   3 +-
tempest/lib/services/compute/images_client.py      |   3 +-
tempest/lib/services/compute/keypairs_client.py    |   3 +-
tempest/lib/services/compute/migrations_client.py  |   3 +-
tempest/lib/services/compute/quotas_client.py      |   3 +-
.../lib/services/compute/security_groups_client.py |   3 +-
tempest/lib/services/compute/servers_client.py     |   2 +-
tempest/lib/services/compute/services_client.py    |   3 +-
tempest/lib/services/compute/snapshots_client.py   |   3 +-
.../lib/services/compute/tenant_usages_client.py   |   3 +-
tempest/lib/services/compute/volumes_client.py     |   3 +-
.../lib/services/identity/v2/identity_client.py    |   3 +-
tempest/lib/services/identity/v2/roles_client.py   |   3 +-
.../lib/services/identity/v2/services_client.py    |   3 +-
tempest/lib/services/identity/v2/tenants_client.py |   3 +-
tempest/lib/services/identity/v2/users_client.py   |   3 +-
.../services/identity/v3/access_rules_client.py    |   3 +-
.../identity/v3/application_credentials_client.py  |   3 +-
.../lib/services/identity/v3/credentials_client.py |   3 +-
tempest/lib/services/identity/v3/domains_client.py |   3 +-
.../lib/services/identity/v3/endpoints_client.py   |   3 +-
tempest/lib/services/identity/v3/groups_client.py  |   3 +-
.../identity/v3/identity_providers_client.py       |  92 +++++
.../lib/services/identity/v3/mappings_client.py    |  90 +++++
.../lib/services/identity/v3/oauth_token_client.py |   8 +-
.../lib/services/identity/v3/projects_client.py    |   3 +-
.../lib/services/identity/v3/protocols_client.py   |  96 ++++++
tempest/lib/services/identity/v3/regions_client.py |   3 +-
.../identity/v3/role_assignments_client.py         |   3 +-
tempest/lib/services/identity/v3/roles_client.py   |  58 +++-
.../identity/v3/service_providers_client.py        |  92 +++++
.../lib/services/identity/v3/services_client.py    |   3 +-
tempest/lib/services/identity/v3/token_client.py   |   6 +-
tempest/lib/services/identity/v3/trusts_client.py  |   3 +-
tempest/lib/services/identity/v3/users_client.py   |   3 +-
tempest/lib/services/image/v1/images_client.py     |   2 +-
tempest/lib/services/image/v2/images_client.py     |   2 +-
.../services/image/v2/namespace_objects_client.py  |   3 +-
.../lib/services/image/v2/namespace_tags_client.py |   3 +-
tempest/lib/services/network/base.py               |   3 +-
.../lib/services/object_storage/account_client.py  |   2 +-
.../services/object_storage/container_client.py    |  10 +-
.../lib/services/object_storage/object_client.py   |  43 ++-
tempest/lib/services/placement/placement_client.py |   3 +-
.../placement/resource_providers_client.py         |  29 +-
tempest/lib/services/volume/v1/hosts_client.py     |   3 +-
tempest/lib/services/volume/v1/quotas_client.py    |   3 +-
tempest/lib/services/volume/v1/services_client.py  |   3 +-
tempest/lib/services/volume/v1/snapshots_client.py |   3 +-
tempest/lib/services/volume/v1/types_client.py     |   3 +-
tempest/lib/services/volume/v1/volumes_client.py   |   3 +-
tempest/lib/services/volume/v3/backups_client.py   |   3 +-
.../services/volume/v3/group_snapshots_client.py   |   3 +-
.../lib/services/volume/v3/group_types_client.py   |   3 +-
tempest/lib/services/volume/v3/groups_client.py    |   3 +-
tempest/lib/services/volume/v3/hosts_client.py     |   3 +-
tempest/lib/services/volume/v3/quotas_client.py    |   3 +-
tempest/lib/services/volume/v3/services_client.py  |   3 +-
tempest/lib/services/volume/v3/snapshots_client.py |   3 +-
tempest/lib/services/volume/v3/transfers_client.py |   3 +-
tempest/lib/services/volume/v3/types_client.py     |   3 +-
tempest/lib/services/volume/v3/versions_client.py  |   2 +-
tempest/lib/services/volume/v3/volumes_client.py   |   3 +-
tempest/manager.py                                 |  62 ----
tempest/scenario/manager.py                        | 266 +++++++++------
tempest/scenario/test_dashboard_basic_ops.py       | 141 ++++++++
tempest/scenario/test_encrypted_cinder_volumes.py  |   6 +-
.../scenario/test_minbw_allocation_placement.py    | 245 ++++++++++++--
tempest/scenario/test_network_basic_ops.py         |   2 +-
tempest/scenario/test_network_v6.py                |   6 +-
tempest/scenario/test_security_groups_basic_ops.py |  16 +-
tempest/scenario/test_server_advanced_ops.py       |   2 +-
tempest/scenario/test_server_basic_ops.py          |   5 +-
.../orchestration/json/orchestration_client.py     |   2 +-
tempest/test.py                                    |  32 +-
tempest/test_discover/plugins.py                   |   4 +-
.../identity/v3/test_identity_providers_client.py  | 142 ++++++++
.../services/identity/v3/test_mappings_client.py   | 183 ++++++++++
.../services/identity/v3/test_protocols_client.py  | 140 ++++++++
.../lib/services/identity/v3/test_roles_client.py  |  73 ++++
.../identity/v3/test_service_providers_client.py   | 157 +++++++++
.../lib/services/identity/v3/test_trusts_client.py |  66 ++++
.../lib/services/image/v2/test_images_client.py    |   4 +-
.../lib/services/network/test_ports_client.py      |  87 ++++-
.../services/object_storage/test_object_client.py  |   9 +-
.../placement/test_resource_providers_client.py    |  63 ++++
tools/check_logs.py                                |  49 +--
tools/generate-tempest-plugins-list.py             |  19 +-
tools/generate-tempest-plugins-list.sh             |  12 +-
...mpest-integrated-gate-compute-exclude-list.txt} |   6 -
...st-integrated-gate-networking-exclude-list.txt} |   0
...ntegrated-gate-object-storage-exclude-list.txt} |   0
...est-integrated-gate-placement-exclude-list.txt} |   0
.../tempest-integrated-gate-storage-blacklist.txt  |  15 +-
...empest-integrated-gate-storage-exclude-list.txt |  14 +
tools/tempest-plugin-sanity.sh                     |   6 +-
tox.ini                                            |  58 ++--
zuul.d/integrated-gate.yaml                        | 107 ++++--
zuul.d/project.yaml                                |  14 -
zuul.d/stable-jobs.yaml                            |   6 -
zuul.d/tempest-specific.yaml                       |   2 +
208 files changed, 4273 insertions(+), 1046 deletions(-)







More information about the Release-announce mailing list