We are pumped to announce the release of: tempest 16.0.0: OpenStack Integration Testing This release is part of the pike release series. Download the package from: https://pypi.python.org/pypi/tempest For more details, please see below. 16.0.0 ^^^^^^ This release indicates end of support for Mitaka in Tempest. New Features ************ * Add a new client to handle the OAUTH consumers feature from the identity API. * Add missing API call, list all role inference rules, to the roles_client library. This feature enables the possibility of listing all role inference rules in the system. * Add cascade parameter to volumes_client. This option provides the ability to delete a volume and have Cinder handle deletion of snapshots associated with that volume by passing an additional argument to volume delete, "cascade=True". * Define the compute server evacuate client method in the servers_client library. * Add the list auth projects API to the identity client library. This feature enables the possibility to list projects that are available to be scoped to based on the X-Auth-Token provided in the request. * Add versions_client module for image service. This new module provides list_versions() method which shows API versions from Image service. * Add the list security groups by server API to the servers_client library. This feature enables the possibility to list security groups for a server instance. * Add versions_client module for identity service. This new module provides list_versions() method which shows API versions from Identity service. * Add versions_client module for volume service. This new module provides list_versions() method which shows API versions from Volume service. * Interface show_quota_set of compute quotas_client has been extended to include the argument "detail", which allows for detailed quota set information for a project to be retrieved, if set to True. * Add remote_client under tempest.lib. This remote_client under tempest.lib is defined as stable interface, and now this module provides the following essential methods. * exec_command * validate_authentication * ping_host * Adds a new cli option to tempest run, --combine, which is used to indicate you want the subunit stream output combined with the previous run's in the testr repository * Add update encryption type API to the v2 encryption_types_client library. This feature enables the possibility to update an encryption type for an existing volume type. * Add the unmanage volume API service method in v2 volumes_client library. Define v2 volume_manage_client client for the volume service as library interfaces, allowing other projects to use this module as stable libraries without maintenance changes. * volume_manage_client(v2) * Add server tags APIs to the servers_client library. This feature enables the possibility of upating, deleting and checking existence of a tag on a server, as well as updating and deleting all tags on a server. * Define volume transfers service clients as libraries. The following volume transfers service clients are defined as library interface. * transfers_client(v2) Upgrade Notes ************* * The "JSON_ENC" and "TXT_ENC" option in the "_error_checker" section have been added with additional content-type which are defined in RFC7231 but missing in the currnt rest_client.py file. The lack of these additional content-type will cause defcore test to fail for OpenStack public cloud which uses tomcat module in the api gateway. The additions are "application/json;charset=utf-8", "text/html;charset=utf-8",``text/plain;charset=utf-8`` * The default value of rand_name()'s prefix argument is changed to 'tempest' from None to identify resources are created by Tempest. * The volume config option 'api_v1' default is changed to "False" because the volume v1 API has been deprecated since Juno release. * The *call_until_true* of *test* module is removed because it was marked as deprecated and Tempest provides it from *test_utils* as a stable interface instead. Please switch to use *test_utils.call_until_true* if necessary. * Remove Cinder v1 API tests. Cinder v1 API has been deprecated since Juno release, and Juno is not supported by current Tempest. Then Cinder v1 API tests are removed from Tempest. * The deprecated config option 'allow_port_security_disabled' from compute_feature_enabled group has been removed. * Below deprecated config options from compute group have been removed. Corresponding config options already been available in validation group. * "compute.image_ssh_user" (available as "validation.image_ssh_user") * "compute.ssh_user" (available as "validation.image_ssh_user") * "scenario.ssh_user" (available as "validation.image_ssh_user") * "compute.network_for_ssh" (available as "validation.network_for_ssh") * "compute.ping_timeout `` (available as ``validation.ping_timeout") * The deprecated config option 'dvr_extra_resources' from network group has been removed. This option was for extra resources which were provisioned to bind a router to Neutron L3 agent. The extra resources need to be provisioned in Liberty release or older, and are not required since Mitaka release. Current Tempest doesn't support Liberty, so this option has been removed from Tempest. * The deprecated config option 'reseller' from identity_feature_enabled group has been removed. * The deprecated "volume_services" option in the "volume_feature_enabled" section has now been removed. * Tempest now defaults to using Keystone v3 API for the authentication, because Keystone v3 API is CURRENT and the v2 API is deprecated. Deprecation Notes ***************** * The "deactivate_image" configuration switch from the "config" module is deprecated. It was added to support the older-than-kilo releases which we don't support anymore. * The "dvr_extra_resources" configuration switch from the "config" module is deprecated. It was added to support the Liberty Release which we don't support anymore. * Glance v1 APIs are deprecated and v2 are current. Tempest should tests only v2 APIs. Below API version selection config options for glance have been deprecated and will be removed in future. * CONF.image_feature_enabled.api_v2 * CONF.image_feature_enabled.api_v1 * The resources_prefix is marked as deprecated because it is enough to set 'tempest' as the prefix on rand_name() to ideintify resources which are created by Tempest and no projects set this option on OpenStack dev community. * The "skip_unless_attr" decorator in lib/decorators.py has been deprecated, please use the standard "testtools.skipUnless" and "testtools.skipIf" decorators. * The "skip_unless_config" and "skip_if_config" decorators in the "config" module have been deprecated and will be removed in the Queens dev cycle. Use the "testtools.skipUnless" (or a variation of) instead. * Volume v1 API is deprecated and the v3 are CURRENT. Tempest doesn't need to test the v1 API as the default. The volume config option 'api_v1' has been marked as deprecated. * Deprecate the client_parameters argument in *tempest.lib.services.clients.ServiceClients*. The parameter is actually not honoured already - see https://bugs.launchpad.net/tempest/+bug/1680915 * Deprecate volume v2 transfers resource methods from volumes_client(v2) libraries. Same methods are available in new transfers service client: transfers_client(v2) The following methods of volume v2 volumes_clients have been deprecated: * create_volume_transfer (v2.volumes_client) * show_volume_transfer (v2.volumes_client) * list_volume_transfers (v2.volumes_client) * delete_volume_transfer (v2.volumes_client) * accept_volume_transfer (v2.volumes_client) Bug Fixes ********* * Fix below volume v2 service clients to make v2 API call: Bug#1667354 * SchedulerStatsClient * CapabilitiesClient * The 'sahara' config option in the 'service-available' group has been moved to the sahara plugin (openstack/sahara-tests) along with tests and service client during the Ocata timeframe. A 'sahara' config option was left over on Tempest side, and it's removed now. As long as the sahara plugin is installed, this change as no impact on users of sahara tests. Other Notes *********** * OpenStack Releases Supported after this release are **Newton** and **Ocata** The release under current development as of this tag is Pike, meaning that every Tempest commit is also tested against master branch during the Pike cycle. However, this does not necessarily mean that using Tempest as of this tag will work against Pike (or future releases) cloud. Changes in tempest 15.0.0..16.0.0 --------------------------------- 6f05307 Cleanup services decorator 2032257 Stop using self.parameters for compute clients e356f33 Fix and improve ServiceClients docstring examples 5bb0069 Prepare release notes for release 16.0.0 8cc2cba Fix invalid values when setting config options' default value fb35d22 Fix test_volume_list_with_detail_param_marker 3b6d599 Deprecate client_parameters from ServiceClients 1e8d676 Updated from global requirements e1a5083 Make bash shebangs through /usr/bin/env 1b0567c Remove test_baremetal_nodes from tempest cd420fb Add Apache License content in .py files 66b616a Add name param in setup_test_role 98544cf Fix api ref link in TransfersClient b86de88 Format multi-line release notes properly 71c71e9 Beautify assertEmpty and assertNotEmpty 6ea5f8b Fix broken api link and put api link in one line 8f28d1f Fix heading levels in write_tests doc 9e0771f Remove non-existent config options of oslo modules f66799e Remove oslo.i18n entry from config-generator cf769af Skip arbitrary container tests for Ceph 5b346f5 Remove duplicated testcase test_get_private_image 6f52fc5 [DOC] Fix details of tox ad1b862 Remove 'allow_port_security_disabled' option 681dff8 Add size assert for creating volume snapshot 0e3bbdf Delete volume with associated snapshots 59614b4 Separate volume v2 transfers service clients e2325f0 Add Nova version log 8b0213a Remove 'dvr_extra_resources' option 1eaf6d4 Remove 'reseller' config option 61d42c7 Set default value of 'dvr_extra_resources' option to False b4c484e Use min_count to create multi servers 56e7f38 Fix no module unit test for Python3.6 edb2b12 Fix flavor info in server response schema fe96c26 Add additional roles method to v3 roles client. 87b08e8 Move cinder tests into unversioned path - part2 d8386a3 Rename test-removal.rst d3eb1c0 Move Cinder non-admin tests into unversioned path 8c18908 Merge Cinder v3 base test module into general one f62703b Add volume backup container parameter c860912 Fix tox coverage section 9fff020 Move test_volume_manage to unversioned path e8ab5f9 Add tempest test writing guide 2ea48f0 Rename server arg in wait_for_interface_status method 76d80b5 Remove a redundant client variable 12afdb8 Correct the module path for decorators 9b8a367 Reduce the time waiting for server ACTIVE 41e7bd7 Updated from global requirements efe033a Add random name in volume.base.create_backup ccd9d65 Fix API reference links in volume/snapshot/type client 7fd5d4b Move Cinder admin tests into unversioned path e8afb8c Rename Cinder V2 API tests 244cf7c Remove deprecated compute config options for validation-2 97c7419 Glance supports vhdx disk_format 9b66085 Removing py34 from tox 2715d22 Fix API reference links in volume client 9751b3d Correct invalid param in create_volume f52c5a5 Remove unused CONF and LOG f96aefe Remove unnecessary usuage of instance variable 63fe58f Volume force-delete when volume in maintenance state 5129c62 Remove set_mac_address from old remote_client 3bd0d2b Remove remaining usage of cinder v1 API call from Tempest ba37ac4 Volume reset to maintenance mode 159064a Remove unnecessary Cinder v1 code ae36ce8 Nova: Move _Websocket class to a common place 5afcb34 Remove cinder clients api version 1 5cbc00a Remove name checking for api version 1 79ec334 Should be more clear for device name opt 7252ce0 Skip flaky test_create_router_set_gateway_with_fixed_ip 14158c9 Adding server evacuate client e4dc8fb Add skip method for volume test with the glance service 877811f Add note on get_disks about unsupported guests cec4494 Fix race in test_attach_detach_volume f684ed1 Fix multiple create for multiple networks 63cf807 Unskip test_snapshot_list_param_limit_equals_zero 8e2d403 Identity V3-ext Oauth1 Consumers Client d114804 Use Sphinx 1.5 warning-is-error a57530c Remove special_fields definition dde9de4 Ensure compute features enabled in test_images 4adae2f Add "list Cinder API versions" 8ea57c2 Remove explicit install of setuptools e3701dd doc: Remove config for unused builders f4fbf30 Add test case for volume unmanage and manage 5a3ad34 Change API-WG guideline link to specs.o.o 316d564 Add test case for update volume encryption type c9d5800 Fix for test_volume_swap 39d180e Add reno for removing Cinder v1 API tests ee88041 Deprecate the ``deactivate_image`` configuration switch 844180e Add user key data debug script to instance user data 679f8c3 Remove assign_static_ip from old remote_client 126fe98 Remove set_nic_state from old remote_client 7a0811e Deprecate Cinder v1 API option c4fcdbb Remove Cinder v1 tests 96490ea Improve server tag schema d1ef129 Deprecate the dvr_extra_resources config switch. 176e7cb Improve multiple create server tests 5eccdf4 Fix typo in README.rst 86b92ea Updated from global requirements 44a0f39 Make novnc test compatible with RFB3.3 8499c19 Make remote_client reno readable f72343e Add "list Glance API versions" test 4dda94e Remove unnecessary show_floatingip d597b95 Revert "Docs: Add the remote tag to the badge image" 35a694b Use base.create_image_from_server to create server snapshot 74e1df5 Add test case for Keystone API "GET /v3/auth/projects" f37da96 Add test_router_set_gateway_used_ip_returns_409 8c8074c Add test_create_router_set_gateway_with_fixed_ip fe97e0d Cleanup ignored_list for T110 and T111 3f52a4a Add new detail kwarg to show_quota_set to QuotasClient. 37b94a0 Network scenarios: remove some instance variables 382a6f1 Add plugin group names to CONF ef1c1ce Use tempest.lib data_utils - volume 60680a8 Use tempest.lib data_utils - orchestration e887323 Use tempest.lib data_utils - object_storage f50e4df Use tempest.lib data_utils - network 5ba1aa2 Removing sahara from the service available group 58fbcd0 Add Cinder microversion test info in doc cc01c3e Use tempest.lib data_utils - image 7bd2575 Use tempest.lib data_utils - identity 757833a Use tempest.lib data_utils - compute be4fb50 Use tempest.lib data_utils - scenario d25a1a3 Add RemoteClient under tempest.lib da26b16 Add "list versions" test for Keystone 8b23c79 Move plugin client registration to proxy 6a36e3d Add a bit more debugging to the client registry 4e5a69e Remove send_signal, get_pids, mount and umount 0b5a90e Updated from global requirements c080786 Add api tests for create-image f0223c4 Add a negative test for security_group api 126a66d Correct API reference link in compute client(3) 4ffa4c1 Correct API reference link in compute client(2) 8d4134b Correct API reference link in compute client(1) 03e1ad7 Correct API reference link in identity client 6b0b8b7 Deprecate glance APIs version config options b2f3090 Correct API reference link in volume client b6a0f41 Correct API reference link in image client 01ae8db Correct API reference link in servers_client 84aeba6 Remove get_ip_list() cc1264c Add network_mask_bits argument to assign_static_ip() 4e33785 Add dhcp_client argument to renew_lease() 191e1ca Move CONF values into __init__ in RemoteClient d4a1a37 Fix keypair GET response schema 326a6b3 Remove get_ram_size_in_mb, get_number_of_vcpus, etc 8a08211 Drop allowing old test.idempotent_id df33c78 Add call_and_ignore_notfound_exc to Keystone base b838af9 Add a new scenario tox env 4d8ba23 Fix typo of setUpClass a6065a6 Change default of auth_version to v3 baa35a2 Move test_extension and use base for non-admin 49505df make -e full run tempest scenarios serially 7d6e48c Add --combine option to tempest run 89a6cfc Extend compute API admin test for swap volume a60fe38 Update README section on Python3 support 92ade4b Improve error info in assertEmpty and assertNotEmpty 11cf2c5 Deprecate resources_prefix and change rand_name() bcc1208 Add smoke tag to compute version tests 35901c4 test_neutron_resources.py exception handler 1d0cc9c [Fix gate]Update test requirement 7d8f7c5 Correct test_list_servers_filtered_by_ip for bug 1668828" 592148c Improve test_implied_domain_roles 589028a Change rebuild tests to use image_ref d4e041d Close connection after each failed connect attempt b6dfa08 Remove unused variable 95a3281 Remove unused variable and unnecessary instance variable fec7c59 Remove unused client in setup_clients 13a7fec Updated from global requirements 4c3ebb0 Fix remote connectivity checks 939ec1a Removed unused PING_IPV4_COMMAND etc 7531e98 Do not use skip_checks in TestServerAdvancedOps 36f0a97 Use base.attach_volume in test_attach_volume 5e66340 Revert "Add reno for Tempest v15.0.0" d571e03 Remove testing of bdm v1 in boot from volume tests a2ca059 Fix tempest 14.0.0 release notes b668a53 Fix tempest 15.0.0 release notes 29cc1f8 Add unit test to verify output method e6a375e Fix subunit describe calls for py3 6d84d31 Remove volume_feature_enabled.volume_services bd4361d Fix the removal of config.skip_(unless|if)_config decorators a8a4492 keystone roles are case insensitive 3b9e42e Remove unnecessary wait_for_server_status d1db0c7 Add content-type without spaces 1157b4b Use base.create_flavor in test_flavors_access 7c95bef Adds missing server tags APIs to servers client. 703930f Remove unnessessary metadata parameter 5b2b362 Use 'delete_snapshot' method b200555 Update the test removal procedure 49f99e7 Fix volume v2 capabilities/scheduler-stats tests to test v2 APIs 32b2e30 Remove extra "?expanded=" from api link 758b767 Skip test_stamp_pattern until bug 1664793 is fixed 27ca251 Remove deprecated test runner wrappers (.sh files) ec2eefe Use upper-constraints for tox envs f2ba23f Remove call_until_true from test module 7e936b3 Use a valid project_id flavor_access neg tests d827737 Add volume snapshot metadata parameter 96daca7 Remove unnecessary show_server in TestServerAdvancedOps c8e2583 switching to decorators.idempotent_id b195508 Remove unnecessary assert and value assignment 7b93104 Add missing @test.attr(type='negative') for negative tests 4e9c1dc Add reno for Tempest v15.0.0 0bfe8bd Revert "Remove the skip_unless_config and skip_if_config decorators" f7a8c57 Rename reno files of v15.0.0 5fe6239 Revert "Remove wait_for_server from create_image_from_server" c092892 There are some typos in releasenotes 44cdf15 Remove unnecessary int casting 0884488 Add test creating a protected image 9aa23f3 Deprecate the skip_unless_attr decorator. 64e6b44 Scenario manager: remove some useless `_list_*` methods 7eba6ae Fix tests for bug 1656183 0da0375 Add negative tests for snapshot pagination d77d3d1 Remove unnecessary int declaration 3beb6cf Add test for compute API List Security Groups By Server 291a806 Add decorator for negative tests 52d7b0d Add a generic "wait_for_volume_resource_status" function a1f3f85 Add v15.0.0 releasenote 7e0c9b6 Do not use unnecessary instance variable in compute and volume 7a8f29d Change instance variable to local variable in scenario/image/volume 90e2a6d Fix test_novnc for python3 5cc4373 Remove the skip_unless_config and skip_if_config decorators ad3c2d8 Make test_volume_pools A/A compatible e5b62a6 Add admin_servers_client in BaseV2ComputeAdminTest 1ec4c5a Remove unused client in setup_clients 94cb054 Use base.create_flavor in servers test a7fd37a Verify metadata preservation after backup restore 34a6512 Domain specific roles API tests 61e4045 Test live migration back and forth Diffstat (except docs and test files) ------------------------------------- HACKING.rst | 6 +- README.rst | 25 +-- .../12.2.0-clients_module-16f3025f515bf9ec.yaml | 2 +- ...until-true-to-tempest-lib-c9ea70dd6fe9bd15.yaml | 2 +- ...pest-cleanup-nostandalone-39df2aafb2545d35.yaml | 2 +- ...y-v3-clients-as-a-library-d34b4fdf376984ad.yaml | 6 + ...s-to-roles-client-library-edf96408ad9ba82e.yaml | 6 + ...-manage-client-as-library-a76ffdba9d8d01cb.yaml | 8 + ..._security_disabled-option-2d3d87f6bd11d03a.yaml | 8 + ...-feature-enabled.reseller-84800a8232fe217f.yaml | 8 + ...e_enabled.volume_services-dbe024ea067d5ab2.yaml | 8 + ....0.0-jsonschema-validator-2377ba131e12d3c7.yaml | 5 + ...croversion-config-options-eaee6a7d2f8390a8.yaml | 9 + ...validation-config-options-e3d1b89ce074d71c.yaml | 25 +++ ...t-scenario-config-options-414e0c5442e967e9.yaml | 6 + ...ed-network-config-options-f9ce276231578fe6.yaml | 11 + .../notes/16.0.0-mitaka-eol-88ff8355fff81b55.yaml | 13 ++ ...s-to-roles-client-library-178d4a6000dec72d.yaml | 7 + ...rameter-to-volumes-client-ff4f7f12795003a4.yaml | 7 + ...ulate-client-as-a-library-ed76baf25f02c3ca.yaml | 3 + ...ntent-type-without-spaces-b2c9b91b257814f3.yaml | 9 + ...y-v3-clients-as-a-library-d34b4fdf376984ad.yaml | 6 - ...s-to-roles-client-library-edf96408ad9ba82e.yaml | 6 - ...-list-auth-project-client-5905076d914a3943.yaml | 6 + ...-list-glance-api-versions-ec5fc8081fc8a0ae.yaml | 6 + ...to-servers-client-library-088df48f6d81f4be.yaml | 6 + ...ersion-to-identity-client-944cb7396088a575.yaml | 6 + ...-version-to-volume-client-4769dd1bd4ab9c5e.yaml | 6 + ...d-quota-sets-detail-kwarg-74b72183295b3ce7.yaml | 6 + ...-manage-client-as-library-a76ffdba9d8d01cb.yaml | 8 - ...tempest-lib-remote-client-adbeb3f42a36910b.yaml | 11 + ...empest-run-combine-option-e94c1049ba8985d5.yaml | 6 + ...o-encryption-types-client-f3093532a0bcf9a1.yaml | 6 + ...-manage-client-as-library-78ab198a1dc1bd41.yaml | 9 + ...create-server-tags-client-8c0042a77e859af6.yaml | 8 + ..._security_disabled-option-2d3d87f6bd11d03a.yaml | 8 - ...e-deactivate_image-config-7a282c471937bbcb.yaml | 6 + ...vr_extra_resources-config-8c319d6dab7f7e5c.yaml | 7 + ...pi-version-config-options-8370b63aea8e14cf.yaml | 10 + ...-feature-enabled.reseller-84800a8232fe217f.yaml | 8 - ...e-resources-prefix-option-ad490c0a30a0266b.yaml | 10 + ...kip_unless_attr-decorator-450a1ed727494724.yaml | 5 + ...p_unless_config-decorator-64c32d588043ab12.yaml | 5 + ...e_enabled.volume_services-dbe024ea067d5ab2.yaml | 8 - ...ated-cinder-api-v1-option-df7d5a54d93db5cf.yaml | 12 + ...precate_client_parameters-cb8d069e62957f7e.yaml | 6 + ...ce-clients-bugfix-1667354-73d2c3c8fedc08bf.yaml | 7 + .../jsonschema-validator-2377ba131e12d3c7.yaml | 5 - ...e-call_until_true-of-test-de9c13bc8f969921.yaml | 6 + ..._security_disabled-option-d0ffaeb2e7817707.yaml | 5 + ...croversion-config-options-eaee6a7d2f8390a8.yaml | 9 - ...validation-config-options-e3d1b89ce074d71c.yaml | 14 -- ...ion-config-options-part-2-5cd17b6e0e6cb8a3.yaml | 11 + ...vr_extra_resources-option-e8c441c38eab7ddd.yaml | 8 + ...-identity-reseller-option-4411c7e3951f1094.yaml | 4 + ...t-scenario-config-options-414e0c5442e967e9.yaml | 6 - ...ed-network-config-options-f9ce276231578fe6.yaml | 11 - ...-sahara-service-available-44a642aa9c634ab4.yaml | 7 + ...e_enabled.volume_services-c6aa142cc1021297.yaml | 5 + .../use-keystone-v3-api-935860d30ddbb8e9.yaml | 5 + .../volume-transfers-client-e5ed3f5464c0cdc0.yaml | 18 ++ releasenotes/source/conf.py | 2 +- releasenotes/source/index.rst | 1 + releasenotes/source/v15.0.0.rst | 6 + requirements.txt | 10 +- run_tempest.sh | 135 ------------ setup.cfg | 6 +- setup.py | 2 +- tempest/api/compute/admin/test_agents.py | 2 +- tempest/api/compute/admin/test_aggregates.py | 2 +- .../api/compute/admin/test_aggregates_negative.py | 2 +- tempest/api/compute/admin/test_baremetal_nodes.py | 55 ----- tempest/api/compute/admin/test_flavors.py | 4 +- tempest/api/compute/admin/test_flavors_access.py | 40 +--- .../compute/admin/test_flavors_access_negative.py | 85 ++----- .../api/compute/admin/test_flavors_extra_specs.py | 6 +- .../admin/test_flavors_extra_specs_negative.py | 6 +- .../api/compute/admin/test_hypervisor_negative.py | 2 +- tempest/api/compute/admin/test_keypairs_v210.py | 2 +- tempest/api/compute/admin/test_live_migration.py | 46 ++-- tempest/api/compute/admin/test_migrations.py | 12 +- tempest/api/compute/admin/test_quotas.py | 2 +- tempest/api/compute/admin/test_quotas_negative.py | 3 +- tempest/api/compute/admin/test_security_groups.py | 2 +- tempest/api/compute/admin/test_servers.py | 7 +- tempest/api/compute/admin/test_servers_negative.py | 33 +-- tempest/api/compute/admin/test_volume_swap.py | 75 +++++-- tempest/api/compute/admin/test_volumes_negative.py | 13 +- tempest/api/compute/base.py | 43 ++-- .../api/compute/flavors/test_flavors_negative.py | 5 +- .../test_floating_ips_actions_negative.py | 2 +- .../test_list_floating_ips_negative.py | 2 +- tempest/api/compute/images/test_image_metadata.py | 2 +- .../compute/images/test_image_metadata_negative.py | 2 +- tempest/api/compute/images/test_images.py | 42 +++- tempest/api/compute/images/test_images_negative.py | 6 +- .../api/compute/images/test_images_oneserver.py | 19 +- .../images/test_images_oneserver_negative.py | 44 ++-- .../api/compute/images/test_list_image_filters.py | 2 +- .../images/test_list_image_filters_negative.py | 2 +- tempest/api/compute/keypairs/base.py | 2 +- tempest/api/compute/keypairs/test_keypairs.py | 2 +- .../api/compute/keypairs/test_keypairs_negative.py | 2 +- tempest/api/compute/keypairs/test_keypairs_v22.py | 2 +- .../limits/test_absolute_limits_negative.py | 4 +- tempest/api/compute/security_groups/base.py | 2 +- .../security_groups/test_security_group_rules.py | 3 - .../test_security_group_rules_negative.py | 2 +- .../security_groups/test_security_groups.py | 30 ++- .../test_security_groups_negative.py | 2 +- .../api/compute/servers/test_attach_interfaces.py | 1 - tempest/api/compute/servers/test_create_server.py | 24 +- tempest/api/compute/servers/test_delete_server.py | 4 +- tempest/api/compute/servers/test_device_tagging.py | 2 +- .../servers/test_instance_actions_negative.py | 2 +- .../compute/servers/test_list_server_filters.py | 84 +++---- .../compute/servers/test_list_servers_negative.py | 3 +- .../api/compute/servers/test_multiple_create.py | 13 +- tempest/api/compute/servers/test_novnc.py | 175 +++++---------- tempest/api/compute/servers/test_server_actions.py | 4 +- .../api/compute/servers/test_server_addresses.py | 2 +- tempest/api/compute/servers/test_server_group.py | 2 +- .../servers/test_server_metadata_negative.py | 2 +- .../api/compute/servers/test_server_personality.py | 4 +- tempest/api/compute/servers/test_server_rescue.py | 10 +- .../compute/servers/test_server_rescue_negative.py | 2 +- tempest/api/compute/servers/test_server_tags.py | 108 +++++++++ tempest/api/compute/servers/test_servers.py | 2 +- .../api/compute/servers/test_servers_negative.py | 6 +- .../compute/test_live_block_migration_negative.py | 7 +- tempest/api/compute/test_quotas.py | 4 +- tempest/api/compute/test_versions.py | 3 + tempest/api/compute/volumes/test_attach_volume.py | 88 +++----- .../api/compute/volumes/test_volume_snapshots.py | 8 +- tempest/api/compute/volumes/test_volumes_get.py | 5 +- .../api/compute/volumes/test_volumes_negative.py | 2 +- tempest/api/identity/admin/v2/test_endpoints.py | 6 +- tempest/api/identity/admin/v2/test_roles.py | 2 +- .../api/identity/admin/v2/test_roles_negative.py | 2 +- tempest/api/identity/admin/v2/test_services.py | 2 +- .../api/identity/admin/v2/test_tenant_negative.py | 2 +- tempest/api/identity/admin/v2/test_tenants.py | 2 +- tempest/api/identity/admin/v2/test_tokens.py | 7 +- tempest/api/identity/admin/v2/test_users.py | 2 +- .../api/identity/admin/v2/test_users_negative.py | 2 +- tempest/api/identity/admin/v3/test_credentials.py | 2 +- .../identity/admin/v3/test_default_project_id.py | 2 +- tempest/api/identity/admin/v3/test_domains.py | 2 +- .../api/identity/admin/v3/test_domains_negative.py | 2 +- tempest/api/identity/admin/v3/test_endpoints.py | 7 +- .../identity/admin/v3/test_endpoints_negative.py | 6 +- tempest/api/identity/admin/v3/test_groups.py | 2 +- tempest/api/identity/admin/v3/test_inherits.py | 26 +-- .../api/identity/admin/v3/test_list_projects.py | 2 +- tempest/api/identity/admin/v3/test_list_users.py | 2 +- .../api/identity/admin/v3/test_oauth_consumers.py | 91 ++++++++ tempest/api/identity/admin/v3/test_policies.py | 2 +- tempest/api/identity/admin/v3/test_projects.py | 8 +- .../identity/admin/v3/test_projects_negative.py | 2 +- tempest/api/identity/admin/v3/test_regions.py | 2 +- tempest/api/identity/admin/v3/test_roles.py | 122 ++++++++++- tempest/api/identity/admin/v3/test_services.py | 2 +- tempest/api/identity/admin/v3/test_tokens.py | 40 +++- tempest/api/identity/admin/v3/test_trusts.py | 24 +- tempest/api/identity/admin/v3/test_users.py | 7 +- .../api/identity/admin/v3/test_users_negative.py | 2 +- tempest/api/identity/base.py | 34 ++- tempest/api/identity/test_extension.py | 31 --- tempest/api/identity/v2/test_extension.py | 31 +++ tempest/api/identity/v3/test_api_discovery.py | 14 ++ tempest/api/identity/v3/test_users.py | 2 - tempest/api/image/admin/v2/test_images.py | 2 +- tempest/api/image/base.py | 3 +- .../api/image/v1/test_image_members_negative.py | 2 +- tempest/api/image/v1/test_images.py | 14 +- tempest/api/image/v1/test_images_negative.py | 2 +- tempest/api/image/v2/test_images.py | 3 +- tempest/api/image/v2/test_images_member.py | 17 -- .../v2/test_images_metadefs_namespace_objects.py | 2 +- .../test_images_metadefs_namespace_properties.py | 2 +- .../v2/test_images_metadefs_namespace_tags.py | 2 +- .../image/v2/test_images_metadefs_namespaces.py | 2 +- tempest/api/image/v2/test_images_negative.py | 13 ++ tempest/api/image/v2/test_images_tags.py | 2 +- tempest/api/image/v2/test_images_tags_negative.py | 2 +- tempest/api/image/v2/test_versions.py | 30 +++ .../admin/test_external_network_extension.py | 2 +- .../api/network/admin/test_l3_agent_scheduler.py | 37 ---- tempest/api/network/admin/test_negative_quotas.py | 1 + tempest/api/network/admin/test_quotas.py | 2 +- tempest/api/network/admin/test_routers_dvr.py | 2 +- tempest/api/network/base.py | 2 +- tempest/api/network/base_security_groups.py | 2 +- tempest/api/network/test_dhcp_ipv6.py | 2 +- tempest/api/network/test_extra_dhcp_options.py | 2 +- tempest/api/network/test_metering_extensions.py | 2 +- tempest/api/network/test_networks.py | 2 +- tempest/api/network/test_networks_negative.py | 2 +- tempest/api/network/test_ports.py | 2 +- tempest/api/network/test_routers.py | 33 ++- tempest/api/network/test_routers_negative.py | 28 ++- tempest/api/network/test_security_groups.py | 2 +- .../api/network/test_security_groups_negative.py | 10 + tempest/api/network/test_subnetpools_extensions.py | 2 +- tempest/api/object_storage/base.py | 2 +- tempest/api/object_storage/test_account_quotas.py | 2 +- .../api/object_storage/test_account_services.py | 2 +- tempest/api/object_storage/test_container_acl.py | 2 +- .../object_storage/test_container_acl_negative.py | 2 +- .../api/object_storage/test_container_quotas.py | 2 +- .../api/object_storage/test_container_services.py | 2 +- .../test_container_services_negative.py | 2 +- .../api/object_storage/test_container_staticweb.py | 2 +- tempest/api/object_storage/test_container_sync.py | 3 +- tempest/api/object_storage/test_object_formpost.py | 2 +- .../test_object_formpost_negative.py | 3 +- tempest/api/object_storage/test_object_services.py | 2 +- tempest/api/object_storage/test_object_slo.py | 2 +- tempest/api/object_storage/test_object_temp_url.py | 2 +- .../test_object_temp_url_negative.py | 2 +- tempest/api/object_storage/test_object_version.py | 2 +- tempest/api/orchestration/base.py | 9 +- .../api/orchestration/stacks/test_environment.py | 2 +- tempest/api/orchestration/stacks/test_limits.py | 2 +- .../orchestration/stacks/test_neutron_resources.py | 17 +- .../orchestration/stacks/test_non_empty_stack.py | 2 +- .../stacks/test_nova_keypair_resources.py | 2 +- tempest/api/orchestration/stacks/test_soft_conf.py | 2 +- tempest/api/orchestration/stacks/test_stacks.py | 2 +- .../orchestration/stacks/test_swift_resources.py | 2 +- tempest/api/orchestration/stacks/test_templates.py | 2 +- tempest/api/orchestration/stacks/test_volumes.py | 14 +- .../api/volume/admin/test_backends_capabilities.py | 79 +++++++ tempest/api/volume/admin/test_multi_backend.py | 27 +-- tempest/api/volume/admin/test_qos.py | 12 +- tempest/api/volume/admin/test_snapshot_manage.py | 73 +++++++ tempest/api/volume/admin/test_snapshots_actions.py | 12 +- tempest/api/volume/admin/test_user_messages.py | 88 ++++++++ tempest/api/volume/admin/test_volume_hosts.py | 6 +- tempest/api/volume/admin/test_volume_manage.py | 81 +++++++ tempest/api/volume/admin/test_volume_pools.py | 39 ++++ tempest/api/volume/admin/test_volume_quotas.py | 24 +- .../volume/admin/test_volume_quotas_negative.py | 10 +- .../admin/test_volume_retype_with_migration.py | 20 +- tempest/api/volume/admin/test_volume_services.py | 30 +-- .../admin/test_volume_snapshot_quotas_negative.py | 12 +- .../api/volume/admin/test_volume_type_access.py | 92 ++++++++ tempest/api/volume/admin/test_volume_types.py | 87 ++++---- .../volume/admin/test_volume_types_extra_specs.py | 8 +- .../test_volume_types_extra_specs_negative.py | 26 ++- .../api/volume/admin/test_volume_types_negative.py | 15 +- tempest/api/volume/admin/test_volumes_actions.py | 13 +- tempest/api/volume/admin/test_volumes_backup.py | 29 ++- tempest/api/volume/admin/test_volumes_list.py | 66 ++++++ tempest/api/volume/admin/v2/__init__.py | 0 .../volume/admin/v2/test_backends_capabilities.py | 79 ------- .../api/volume/admin/v2/test_snapshot_manage.py | 73 ------- tempest/api/volume/admin/v2/test_volume_pools.py | 42 ---- .../api/volume/admin/v2/test_volume_type_access.py | 92 -------- tempest/api/volume/admin/v2/test_volumes_list.py | 66 ------ tempest/api/volume/admin/v3/__init__.py | 0 tempest/api/volume/admin/v3/test_user_messages.py | 87 -------- tempest/api/volume/base.py | 164 +++++++------- tempest/api/volume/test_availability_zone.py | 10 +- tempest/api/volume/test_extensions.py | 6 +- tempest/api/volume/test_image_metadata.py | 72 ++++++ tempest/api/volume/test_snapshot_metadata.py | 12 +- tempest/api/volume/test_versions.py | 30 +++ tempest/api/volume/test_volume_absolute_limits.py | 8 +- tempest/api/volume/test_volume_delete_cascade.py | 101 +++++++++ tempest/api/volume/test_volume_metadata.py | 10 +- tempest/api/volume/test_volume_transfers.py | 38 ++-- tempest/api/volume/test_volumes_actions.py | 80 ++++--- tempest/api/volume/test_volumes_backup.py | 54 +++-- tempest/api/volume/test_volumes_clone.py | 14 +- tempest/api/volume/test_volumes_clone_negative.py | 10 +- tempest/api/volume/test_volumes_extend.py | 20 +- tempest/api/volume/test_volumes_get.py | 47 ++-- tempest/api/volume/test_volumes_list.py | 175 ++++++++++++++- tempest/api/volume/test_volumes_negative.py | 71 ++---- tempest/api/volume/test_volumes_snapshots.py | 72 +++--- tempest/api/volume/test_volumes_snapshots_list.py | 81 +++++-- .../api/volume/test_volumes_snapshots_negative.py | 28 ++- tempest/api/volume/v2/__init__.py | 0 tempest/api/volume/v2/test_image_metadata.py | 65 ------ tempest/api/volume/v2/test_volumes_list.py | 204 ----------------- .../api/volume/v2/test_volumes_snapshots_list.py | 93 -------- tempest/api/volume/v3/__init__.py | 0 tempest/api/volume/v3/base.py | 65 ------ tempest/clients.py | 20 +- tempest/cmd/config-generator.tempest.conf | 3 - tempest/cmd/run.py | 29 +++ tempest/cmd/subunit_describe_calls.py | 3 +- tempest/common/compute.py | 123 ++++++++++- tempest/common/utils/__init__.py | 4 - tempest/common/utils/linux/remote_client.py | 140 ++---------- tempest/common/validation_resources.py | 2 +- tempest/common/waiters.py | 84 +++---- tempest/config.py | 151 ++++++++----- tempest/exceptions.py | 9 +- tempest/hacking/ignored_list_T110.txt | 3 - tempest/hacking/ignored_list_T111.txt | 1 - .../api_schema/response/compute/v2_1/keypairs.py | 9 +- .../lib/api_schema/response/compute/v2_1/quotas.py | 118 ++++++++++ .../api_schema/response/compute/v2_1/servers.py | 22 +- .../api_schema/response/compute/v2_26/servers.py | 34 +++ tempest/lib/api_schema/response/volume/__init__.py | 0 tempest/lib/api_schema/response/volume/versions.py | 60 +++++ tempest/lib/cmd/check_uuid.py | 13 +- tempest/lib/common/cred_client.py | 3 +- tempest/lib/common/rest_client.py | 24 +- tempest/lib/common/ssh.py | 1 + tempest/lib/common/utils/data_utils.py | 2 +- tempest/lib/common/utils/linux/__init__.py | 0 tempest/lib/common/utils/linux/remote_client.py | 117 ++++++++++ tempest/lib/decorators.py | 2 + tempest/lib/services/clients.py | 43 ++-- tempest/lib/services/compute/agents_client.py | 8 +- tempest/lib/services/compute/aggregates_client.py | 10 +- tempest/lib/services/compute/fixed_ips_client.py | 2 +- tempest/lib/services/compute/flavors_client.py | 25 ++- .../lib/services/compute/floating_ips_client.py | 8 +- tempest/lib/services/compute/hosts_client.py | 9 +- tempest/lib/services/compute/images_client.py | 11 +- tempest/lib/services/compute/interfaces_client.py | 2 +- tempest/lib/services/compute/keypairs_client.py | 8 +- tempest/lib/services/compute/migrations_client.py | 2 +- .../lib/services/compute/quota_classes_client.py | 5 +- tempest/lib/services/compute/quotas_client.py | 25 ++- .../compute/security_group_default_rules_client.py | 2 +- .../compute/security_group_rules_client.py | 2 +- .../lib/services/compute/security_groups_client.py | 10 +- .../lib/services/compute/server_groups_client.py | 2 +- tempest/lib/services/compute/servers_client.py | 225 ++++++++++++++----- tempest/lib/services/compute/services_client.py | 6 +- tempest/lib/services/compute/snapshots_client.py | 8 +- .../lib/services/compute/tenant_usages_client.py | 4 +- tempest/lib/services/compute/versions_client.py | 22 +- tempest/lib/services/compute/volumes_client.py | 9 +- .../lib/services/identity/v2/endpoints_client.py | 2 +- tempest/lib/services/identity/v2/roles_client.py | 14 +- .../lib/services/identity/v2/services_client.py | 4 +- tempest/lib/services/identity/v2/tenants_client.py | 4 +- tempest/lib/services/identity/v2/users_client.py | 6 +- tempest/lib/services/identity/v3/__init__.py | 6 +- .../lib/services/identity/v3/endpoints_client.py | 2 +- tempest/lib/services/identity/v3/groups_client.py | 2 +- .../lib/services/identity/v3/identity_client.py | 7 + .../services/identity/v3/oauth_consumers_client.py | 95 ++++++++ .../lib/services/identity/v3/policies_client.py | 2 +- tempest/lib/services/identity/v3/regions_client.py | 2 +- .../identity/v3/role_assignments_client.py | 2 +- tempest/lib/services/identity/v3/roles_client.py | 12 + .../lib/services/identity/v3/services_client.py | 2 +- .../lib/services/identity/v3/versions_client.py | 38 ++++ tempest/lib/services/image/v1/images_client.py | 4 +- tempest/lib/services/image/v2/__init__.py | 4 +- .../lib/services/image/v2/namespace_tags_client.py | 10 +- .../lib/services/image/v2/resource_types_client.py | 8 +- tempest/lib/services/image/v2/versions_client.py | 38 ++++ tempest/lib/services/network/ports_client.py | 2 +- tempest/lib/services/volume/v2/__init__.py | 5 +- tempest/lib/services/volume/v2/backups_client.py | 4 +- .../lib/services/volume/v2/capabilities_client.py | 7 +- .../services/volume/v2/encryption_types_client.py | 14 ++ tempest/lib/services/volume/v2/qos_client.py | 12 +- tempest/lib/services/volume/v2/quotas_client.py | 2 +- .../services/volume/v2/scheduler_stats_client.py | 6 +- tempest/lib/services/volume/v2/snapshots_client.py | 13 +- tempest/lib/services/volume/v2/transfers_client.py | 80 +++++++ tempest/lib/services/volume/v2/types_client.py | 18 +- .../lib/services/volume/v2/volume_manage_client.py | 37 ++++ tempest/lib/services/volume/v2/volumes_client.py | 121 +++++----- tempest/lib/services/volume/v3/__init__.py | 3 +- tempest/lib/services/volume/v3/versions_client.py | 47 ++++ tempest/scenario/manager.py | 140 +++++------- tempest/scenario/test_aggregates_basic_ops.py | 10 +- tempest/scenario/test_encrypted_cinder_volumes.py | 2 + tempest/scenario/test_minimum_basic.py | 2 +- .../scenario/test_network_advanced_server_ops.py | 8 +- tempest/scenario/test_network_basic_ops.py | 154 +++++++------ tempest/scenario/test_network_v6.py | 70 +++--- tempest/scenario/test_object_storage_basic_ops.py | 1 + tempest/scenario/test_security_groups_basic_ops.py | 95 ++++---- tempest/scenario/test_server_advanced_ops.py | 54 ++--- tempest/scenario/test_shelve_instance.py | 2 + tempest/scenario/test_snapshot_pattern.py | 1 + tempest/scenario/test_stamp_pattern.py | 17 +- tempest/scenario/test_volume_boot_pattern.py | 44 +--- tempest/scenario/test_volume_migrate_attached.py | 6 +- tempest/test.py | 32 ++- tempest/test_discover/plugins.py | 43 +++- .../lib/common/utils/linux/test_remote_client.py | 67 ++++++ .../lib/services/compute/test_quotas_client.py | 24 +- .../lib/services/compute/test_servers_client.py | 159 ++++++++++++++ .../services/identity/v3/test_identity_client.py | 41 ++++ .../identity/v3/test_oauth_consumers_client.py | 160 ++++++++++++++ .../lib/services/identity/v3/test_roles_client.py | 77 ++++++- .../services/identity/v3/test_versions_client.py | 70 ++++++ .../lib/services/image/v2/test_versions_client.py | 94 ++++++++ .../lib/services/volume/v3/test_versions_client.py | 91 ++++++++ test-requirements.txt | 4 +- tools/generate-tempest-plugins-list.sh | 4 +- tools/pretty_tox.sh | 14 -- tools/pretty_tox_serial.sh | 16 -- tools/tox_install.sh | 30 +++ tools/with_venv.sh | 2 +- tox.ini | 26 ++- 432 files changed, 6158 insertions(+), 4131 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index d9a9ebb..14c42b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr>=1.8 # Apache-2.0 +pbr!=2.1.0,>=2.0.0 # Apache-2.0 @@ -12,2 +12,2 @@ oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 -oslo.log>=3.11.0 # Apache-2.0 +oslo.config>=3.22.0 # Apache-2.0 +oslo.log>=3.22.0 # Apache-2.0 @@ -15 +15 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.utils>=3.18.0 # Apache-2.0 +oslo.utils>=3.20.0 # Apache-2.0 @@ -20 +20 @@ python-subunit>=0.0.18 # Apache-2.0/BSD -stevedore>=1.17.1 # Apache-2.0 +stevedore>=1.20.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index f7d63a8..13950bd 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking<0.13,>=0.12.0 # Apache-2.0 +hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 @@ -6 +6 @@ hacking<0.13,>=0.12.0 # Apache-2.0 -sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +sphinx>=1.5.1 # BSD