Skip to content

Latest commit

 

History

History
820 lines (608 loc) · 28.1 KB

File metadata and controls

820 lines (608 loc) · 28.1 KB

Changelog

[unreleased]

Added

  • The Identity (Keystone) service is now implemented on top of the unified openstacksdk instead of python-keystoneclient. It is reachable as the clients.keystone attribute and exposes version-agnostic methods that work across Keystone v2 and v3.
  • Authentication is now performed once, in the users context, and the resulting token is cached and reused across all iterations of a workload (for both the regular users and the admin) instead of re-authenticating every time. A reused token is proactively refreshed just before it expires, so the refresh request never lands inside a measured action.
  • Neutron FWaaS v2 firewall rule scenarios:
    • NeutronFWaaS.create_and_list_firewall_rules
    • NeutronFWaaS.create_and_delete_firewall_rules
    • NeutronFWaaS.create_and_update_firewall_rules
  • Neutron FWaaS v2 firewall policy scenarios:
    • NeutronFWaaS.create_and_list_firewall_policies
    • NeutronFWaaS.create_and_delete_firewall_policies
    • NeutronFWaaS.create_and_update_firewall_policies
    • NeutronFWaaS.create_policy_add_and_remove_rules
  • Neutron FWaaS v2 firewall group scenarios:
    • NeutronFWaaS.create_and_list_firewall_groups
    • NeutronFWaaS.create_and_delete_firewall_groups
    • NeutronFWaaS.create_and_update_firewall_groups
  • Dedicated non-voting CI job rally-task-fwaas that enables neutron-fwaas and runs the new FWaaS scenarios.

Changed

  • Bump minimal required version to Rally 5.1.1. Switch docker image to use it.
  • The OpenStack client and service utilities have been restructured into a dedicated rally_openstack.common.clients package (base, keystone, ...), splitting the previously monolithic osclients module. This is the foundation for gradually moving every service off its per-project python-*client onto openstacksdk.
  • OpenStackCredential is now a typed dataclass instead of a plain dict. Dict-style access (credential["auth_url"]) is kept for backward compatibility.
  • All resource type plugins are ported to the latest interface of Rally 5.1.1 and annotate the specification they accept. As a result rally plugin show for resource types and scenarios documents every key of the specification, and a task is checked against it before the workload starts.
  • The size / volume_size arguments of the Cinder and Nova scenarios now document their range form: either an integer (GB) or an object with exactly the required min and max keys. A range carrying anything else (a typo such as {"min": 1, "maximum": 5}, or only one of the two keys) is now rejected by the task validation instead of failing mid-workload.
  • Numeric arguments declare their bounds, so a nonsensical value is reported by the task validation instead of failing (or silently doing nothing) in the middle of a workload: sizes are at least 1 GB, sleeps and image minimums are non-negative, and counts are at least 1.
  • GlanceImages.create_and_deactivate_image now pre-processes its image_location with the path_or_url resource type, like every other Glance scenario does.
  • The arguments that accept a fixed set of values are declared with a real enumeration instead of the enum validator: the Glance container_format / disk_format / import_method and the BGP VPN bgpvpn_type. The accepted values are published in rally plugin show and the plugin reference rather than only spelled out in prose, and a wrong value is reported per argument.

Deprecated

  • The identity.Identity service layer, together with the keystone_v2 / keystone_v3 service implementations, is deprecated in favour of the clients.keystone client. Using it now emits a warning.
  • Accessing the raw python-keystoneclient via clients.keystone(...) is deprecated. It stays the default for backward compatibility but emits a warning; use the clients.keystone attribute (or clients.keystone(legacy=False)) for the openstacksdk-backed client.
  • OpenStackCredential.clients() is deprecated and emits a warning. A credential is plain data that crosses the process boundary, while a client container holds live sessions and connections, so the two should not be reachable through each other. Build the container explicitly instead: osclients.Clients(credential).

Fixed

  • Proactive token refresh for the clients built by a scenario never actually worked; it does now, so long-running workloads no longer risk a reused token expiring in the middle of a measured action.
  • The certification task (tasks/openstack/task.yaml) passed an empty image_location to the Glance scenarios when glance_image_location was set to an empty string (as task_arguments.yaml does) instead of falling back to the default image url.
  • NovaServers.boot_server_and_attach_interface crashed with a TypeError when its optional boot_server_args argument was omitted.
  • CinderVolumes.create_nested_snapshots_and_attach_volume accepted only the {"min": ..., "max": ...} form of size — an integer, which every other volume scenario accepts, raised a TypeError.

[4.1.0] - 2026-07-23

Changed

Fixed

  • Support for specifying Cinder API microversions, added in Rally OpenStack 3.0.0, never actually worked. The failure slipped through because CI silently ignored it (a Rally framework bug, fixed in the first Rally release after 5.0.1). The unified BlockStorage service layer had two problems:

    • it selected the implementation without accounting for the requested microversion;
    • it created the cinderclient without passing the requested microversion.

    Both are now fixed, so scenarios that request a Cinder microversion work as expected.

  • CinderMixin.extend_volume now treats the in-use state, along with available, as a successful result. in-use is valid when the volume is attached to a server while being extended (an online extend, supported since Cinder microversion 3.42). This fixes the logic of the NovaServers.boot_server_attach_created_volume_and_extend scenario, which previously timed out waiting for the attached volume to become available.

    Launchpad-bug #2084795

  • Automatic update of Docker Hub description for Rally-OpenStack images

[4.0.0] - 2026-07-09

Added

  • CI jobs for checking compatibility with python 3.12, 3.13 and 3.14
  • New GlanceImages.import_and_delete_image scenario that exercises the Glance v2 interoperable image import workflow (glance-direct and web-download), including multistore deployments via the stores and all_stores parameters.
  • Support for create_volume_kwargs and boot_server_kwargs in more scenarios that boot a server from a volume.
  • force_delete argument for the CinderVolumes.create_and_attach_volume scenario.
  • Base support for mypy static type checking.

Removed

  • Support for Python 3.8 and Python 3.9 is dropped
  • Removed all support for the retired Murano project
  • Removed all support for the retired Sahara project
  • Removed all support for the retired Senlin project
  • Removed all support for the retired Monasca project

Changed

  • Packaging metadata is moved to pyproject.toml (PEP 621), while pbr is kept as the build backend
  • Zaqar scenarios now use messaging v2 API, instead of deprecated v1 API.
  • Bump minimal required version to Rally 5.0.0. Switch docker image to use it.
  • All task samples are ported to Task format V2
  • Tempest verifier configures the OVN agent instead of the removed OVN Metadata agent.
  • Manila now defaults to the shared-file-system service type (v2 API).

Fixed

  • Fix restoring quotas bug while rally cleanup
  • Don't load compute resources in tempest verifier if nova is not enabled
  • Fix cleanup when neutron is not available
  • Fix tempest config failure when nova is not available
  • Fix neutron cleanup order to delete routers before networks
  • Fix live migration host check race under concurrent load
  • Select a public network accessible by all tenants when RBAC is enabled

[3.0.0] - 2024-05-23

Added

  • Support for specifying microversions for Cinder service.
  • Support Python 3.11
  • nova_servers_list_page_size configuration option to limit the size of pages during listing Nova Servers

Removed

Support of Python 3.6 and Python 3.7

Changed

Bump docker image to use Rally 4.1.0

Fixed

  • Manila scenarios can not use "share_networks" context

    Launchpad-bug #2040486

  • confirm argument of NovaServers.resize_server scenario cannot be passed any longer due to more strict validation from python-novaclient library.

  • Neutron ports cleanup does not use API filtering by project_id which causes redundant load to the cloud.

  • Nova server cleanup fails to list resources due to wrong marker.

  • Heat template validation when multi users.

Deprecated

Deprecate plugins of the following projects as they are marked as retired by OpenStack governance.

[2.3.0] - 2023-08-01

Deprecated

This is the last release with support of Python 3.6 and Python 3.7

Changed

  • Bump min required version of Rally to 3.4.0.
  • Switch docker image to rally 3.4.0 base.

Removed

  • Nova API doesn't include listing agents for a long time, so no need to provide NovaAgents.list_agents scenario any more.

Fixed

  • Two cinder scenarios CinderVolumeTypes.create_and_update_volume_type and CinderVolumeTypes.create_volume_type_add_and_list_type_access were incompatible with Cinder API v3

[2.2.0] - 2021-10-25

Changed

  • Switch docker image to rally 3.3.0 base.
  • Update upper-constraints file

Removed

Ceilometer service was splitted into Gnocchi, Aodh, Panko long time ago. We kept ceilometer api plugins for backward compatibility, but it is time to go forward (ceilometerclient was deprecated and is not compatible with modern python libraries).

Fixed

Compatibility with Tempest >= 27

[2.1.0] - 2020-11-03

Added

  • openstack.pre_newton_neutron config option can be configured via environment spec.

    {
         "openstack": {
             "api_info": {
                 "neutron": {"pre_newton": true}
             },
             "auth_url": "http://example.net:5000/v3/",
             "region_name": "RegionOne",
             "endpoint_type": "public",
             "admin": {
                 "username": "admin",
                 "password": "myadminpass",
                 "user_domain_name": "admin",
                 "project_name": "admin",
                 "project_domain_name": "admin"
             },
             "https_insecure": false,
             "https_cacert": "",
         }
    }

    Reminder: Based on this option, Rally will use or not some external fields that can help to identify own resources during cleanup.

Changed

  • Location of rally-openstack code with docs and samples inside the docker image changed from /rally/xrally_opentstack to /rally/xrally_openstack (there was a typo in work openstack)
  • network@openstack context does not require admin credentials anymore and work with regular users as well

Fixed

  • Some neutron scenarios accepted name parameter for create or update actions on various entities. The value of the parameter was always ignored, but anyway it gave wrong assumption.

  • [verification component] Make config parser case sensitivity in TempestContext and TempestConfigfileManager.

    Launchpad-bug #1881456

Removed

  • Remove deprecated api version 1 for designate

[2.0.0] - 2020-05-08

Added

  • The rally_openstack.task.context.OpenStackContext class which provides helpers for all OpenStack context.
  • Declare Python 3.8 support
  • ManilaShares.create_share_and_access_from_vm scenario which allows to check share access from within a VM.
  • Regular automated builds for docker image
  • VMTasks.check_designate_dns_resolving scenario which tests resolving hostname from within a VM using existing designate DNS.

Changed

  • xrally-openstack docker image is switched to use xrally/xrally docker image as a base user that brings use python 3.6 and ubuntu bionic.
  • Bump min supported Rally framework version to 3.1.0 (rally>=3.1.0)
  • Extend network@openstack context to save information about created subnets and existing_network@openstack context with listing subnets.

Deprecated

  • a huge project restructure had happened. Old paths are deprecated now.

    rally_openstack.cfg -> rally_openstack.common.cfg

    rally_openstack.cleanup -> rally_openstack.task.cleanup

    rally_openstack.consts -> rally_openstack.common.consts

    rally_openstack.contexts -> rally_openstack.task.contexts

    rally_openstack.credential -> rally_openstack.common.credential

    rally_openstack.embedcharts -> rally_openstack.task.ui.charts

    rally_openstack.exceptions -> rally_openstack.common.exceptions

    rally_openstack.hook -> rally_openstack.task.hooks

    rally_openstack.osclients -> rally_openstack.common.osclients

    rally_openstack.platforms -> rally_openstack.environment.platforms

    rally_openstack.scenario -> rally_openstack.task.scenario

    rally_openstack.scenarios -> rally_openstack.task.scenarios

    rally_openstack.service -> rally_openstack.common.service

    rally_openstack.services -> rally_openstack.common.services

    rally_openstack.types -> rally_openstack.task.types

    rally_openstack.validators -> rally_openstack.common.validators

    rally_openstack.wrappers -> rally_openstack.common.wrappers

Removed

  • Support for Python < 3.6
  • required_clients validator was deprecated since Rally 0.10.0 (at the time when OpenStack plugins were part of Rally framework).
  • api_info argument of OSClient plugins since it was merged into credentials object long time ago.
  • The keyword arguments for GlanceImages.create_image_and_boot_instances scenario. They were deprecated since Rally 0.8.0 (at the time when OpenStack plugins were part of Rally framework). Use boot_server_kwargs for additional parameters when booting servers.
  • server_kwargs alias for boot_server_kwargs of NovaKeypair.boot_and_delete_server_with_keypair scenario was deprecated since Rally 0.3.2 (at the time when OpenStack plugins were part of Rally framework).
  • api_versions argument of cleanup manager.

[1.7.0] - 2019-12-25

Added

  • An ability to specify Primary and Alternate reference flavor disk sized.
  • Support to upload an image from a https server

Fixed

[1.6.0] - 2019-11-29

Please note that Python 2.7 will reach the end of its life on January 1st, 2020. A future version of Rally will drop support for Python 2.7, it will happen soon. Also, the same will happen with support of Python 3.4 and Python 3.5

Added

Scenarios:

  • NeutronNetworks.create_and_bind_ports
  • BarbicanOrders.list
  • BarbicanOrders.create_key_and_delete
  • BarbicanOrders.create_certificate_and_delete
  • BarbicanOrders.create_asymmetric_and_delete

Removed

  • Removed the former multiattach support dropped in Cinder Train (5.0.0)
  • Removed the former sort_key and sort_dir support at listing cinder volumes.

Changed

  • Improved logging message for the number of used threads while creating keystone users and projects/tenants at users@openstack context.
  • Updated upper-constraints
  • Improved check for existing rules at allow_ssh context.

Fixed

  • Handling of errors while cleaning up octavia resources

  • Missing project_id key for several Octavia API calls

    Launchpad-bug #1833235

[1.5.0] - 2019-05-29

Added

  • libpq-dev dependency to docker image for supporting external PostgreSQL backend
  • Extend configuration of identity section for tempest with endpoint type
  • A new option user_password is added to users context for specifying certain password for new users.

Changed

  • Default Cinder service type is switched to block-storage as it is new unversioned endpoint. api_versions@openstack context or api_info property of environment configuration should be used for selecting another service type.
  • Rally 1.5.1 is used by default. Minimum required version is not changed.
  • Default source of tempest is switched from git.openstack.org to git.opendev.org due to recent infrastructure changes.

Fixed

  • For performance optimization some calls from python-barbicanclient to Barbican API are lazy. In case of secret representation, until any property is invoked on it, no real call to API is made which affects timings of obtaining the resource and slows down cleanup process.

    Launchpad-bug #1819284

  • Tempest configurator was case sensitive while filtering roles by name.

  • python 3 incompatibility while uploading glance images

    Launchpad-bug #1819274

[1.4.0] - 2019-03-07

Added

  • Added neutron trunk scenarios
  • Added barbican scenarios * [scenario plugin] BarbicanContainers.list * [scenario plugin] BarbicanContainers.create_and_delete * [scenario plugin] BarbicanContainers.create_and_add * [scenario plugin] BarbicanContainers.create_certificate_and_delete * [scenario plugin] BarbicanContainers.create_rsa_and_delete * [scenario plugin] BarbicanSecrets.list * [scenario plugin] BarbicanSecrets.create * [scenario plugin] BarbicanSecrets.create_and_delete * [scenario plugin] BarbicanSecrets.create_and_get * [scenario plugin] BarbicanSecrets.get * [scenario plugin] BarbicanSecrets.create_and_list * [scenario plugin] BarbicanSecrets.create_symmetric_and_delete
  • Added octavia scenarios * [scenario plugin] Octavia.create_and_list_loadbalancers * [scenario plugin] Octavia.create_and_delete_loadbalancers * [scenario plugin] Octavia.create_and_update_loadbalancers * [scenario plugin] Octavia.create_and_stats_loadbalancers * [scenario plugin] Octavia.create_and_show_loadbalancers * [scenario plugin] Octavia.create_and_list_pools * [scenario plugin] Octavia.create_and_delete_pools * [scenario plugin] Octavia.create_and_update_pools * [scenario plugin] Octavia.create_and_show_pools
  • Support for osprofiler config in Devstack plugin.
  • Added property 'floating_ip_enabled' in magnum cluster_templates context.
  • Enhanced neutron trunk port scenario to create multiple trunks
  • Enhanced NeutronSecurityGroup.create_and_list_security_group_rules
  • Added three new trunk port related scenarios * [scenario plugin] NeutronTrunks.boot_server_with_subports * [scenario plugin] NeutronTrunks.boot_server_and_add_subports * [scenario plugin] NeutronTrunks.boot_server_and_batch_add_subports
  • Added neutron scenarios [scenario plugin] NeutronNetworks.associate_and_dissociate_floating_ips

Changed

  • Extend CinderVolumes.list_volumes scenario arguments.

Fixed

  • Ignoring region_name from environment specification while initializing keystone client.
  • Fetching OSProfiler trace-info for some drivers.
  • https_insecure is not passed to manilaclient

[1.3.0] - 2018-10-08

Added

  • Support Python 3.7 environment.
  • New options https_cert and https_key are added to the spec for existing@openstack platform to represent client certificate bundle and key files. Also the support for appropriate system environment variables ( OS_CERT, OS_KEY) is added.
  • existing@openstack plugin now supports a new field api_info for specifying not default API version/service_type to use. The format and purpose is similar to api_versions task context.
  • Added Cinder V3 support and use it as the default version. You could use api_versions context or api_info option of the spec to choose the proper version.
  • The documentation for existing@openstack plugin is extended with information about accepted system environment variables via rally env create --from-sysenv command.

Changed

  • Our requirements are updated as like upper-constraints (the list of suggested tested versions to use)
  • Error messages become more user-friendly in rally env check.
  • Deprecate api_info argument of all clients plugins which inherits from OSClient and deprecate api_version argument of rally_openstack.cleanup.manager.cleanup. API information (not default version/service_type to use) has been included into credentials dictionary.
  • The proper packages are added to docker image to support MySQL and PostgreSQL as DB backends.
  • Rename an action nova.create_image to nova.snapshot_server for better understanding for what is actually done.

Removed

  • Remove deprecated wrappers (rally_openstack.wrappers) and helpers (scenario utils) for Keystone, Cinder, Glance services. The new service model should be used instead (see rally_openstack.services module for more details) while developing custom plugins. All the inner plugins have been using the new code for a long time.
  • Remove deprecated properties insecure, cacert (use https_insecure and https_cacert properties instead) and method list_services (use appropriate method of Clients object) from rally_openstack.credentials.OpenStackCredentials object.
  • Remove deprecated in Rally 0.10.0 NovaImages.list_images scenario.

Fixed

  • Keypairs are now properly cleaned up after the execution of Magnum workloads.

[1.2.0] - 2018-06-25

Rally 1.0.0 has released. This is a major release which doesn't contain in-tree OpenStack plugins. Also, this release extends flexibility of validating required platforms which means that logic of required admin/users for the plugin can be implemented at rally-openstack side and this is done in rally-openstack 1.2.0

Changed

Also, it is sad to mention, but due to OpenStack policies we need to stop duplicating release notes at git tag message. At least for now.

[1.1.0] - 2018-05-11

Added

  • [scenario plugin] GnocchiMetric.list_metric
  • [scenario plugin] GnocchiMetric.create_metric
  • [scenario plugin] GnocchiMetric.create_delete_metric
  • [scenario plugin] GnocchiResource.create_resource
  • [scenario plugin] GnocchiResource.create_delete_resource
  • Introduce __version__, __version_tuple__ at rally_openstack module. As like other python packages each release of rally-openstack package can introduce new things, deprecate or even remove other ones. To simplify integration with other plugins which depends on rally-openstack, the new properties can be used with proper checks.

Changed

  • Docker image ported to publish images from rally-openstack repo instead of using the rally framework repository. Also, the CI is extended to check ability to build Docker image for any of changes.
  • An interface of ResourceType plugins is changed since Rally 0.12. All our plugins are adopted to support it. The port is done in a backward compatible way, so the minimum required version of Rally still is 0.11.0, but we suggest you to use the latest release of Rally.

Removed

  • Calculation of the duration for "nova.bind_actions" action. It shows only duration of initialization Rally inner class and can be easily misunderstood as some kind of "Nova operation". Affects 1 inner scenario "NovaServers.boot_and_bounce_server".

Fixed

  • required_services validator should not check services which are configured via api_versions@openstack context since the proper validation is done at the context itself. The inner check for api_versions@openstack in required_services checked only api_versions@openstack, but api_versions string is also valid name for the context (if there is no other api_versions contexts for other platforms, but the case of name conflict is covered by another check).

[1.0.0] - 2018-03-28

A start of a fork from rally/plugins/openstack module of original OpenStack Rally project

Added

  • [scenario plugin] GnocchiArchivePolicy.list_archive_policy
  • [scenario plugin] GnocchiArchivePolicy.create_archive_policy
  • [scenario plugin] GnocchiArchivePolicy.create_delete_archive_policy
  • [scenario plugin] GnocchiResourceType.list_resource_type
  • [scenario plugin] GnocchiResourceType.create_resource_type
  • [scenario plugin] GnocchiResourceType.create_delete_resource_type
  • [scenario plugin] NeutronSubnets.delete_subnets
  • [ci] New Zuul V3 native jobs
  • Extend existing@openstack platform to support creating a specification based on system environment variables. This feature should be available with Rally>0.11.1

Changed

  • Methods for association and dissociation floating ips were deprecated in novaclient a year ago and latest major release (python-novaclient 10) doesn't include them. These actions should be performed via neutronclient now. It is not as simple as it was via Nova-API and you can find more neutron-related atomic actions in results of workloads.

Removed

  • os-hosts CLIs and python API bindings had been deprecated in python-novaclient 9.0.0 and became removed in 10.0.0 release. This decision affected 2 scenarios NovaHosts.list_hosts and NovaHosts.list_and_get_hosts which become redundant and we cannot leave them (python-novaclient doesn't have proper interfaces any more).

Fixed

  • The support of kubernetes python client (which is used by Magnum plugins) is not limited by 3.0.0 max version. You can use more modern releases of that library.