We are delighted to announce the release of: cinder 18.0.0: OpenStack Block Storage This release is part of the wallaby release series. The source is available from: https://opendev.org/openstack/cinder Download the package from: https://tarballs.openstack.org/cinder/ Please report issues through: https://bugs.launchpad.net/cinder/+bugs For more details, please see below. 18.0.0 ^^^^^^ Prelude ******* Welcome to the Wallaby release of the OpenStack Block Storage service (cinder). With this release, the Block Storage API version 3 has reached microversion **3.64**. New Features ************ * The cinder-manage command now includes a new "quota" category with two possible actions "check" and "sync" to help administrators manage out of sync quotas on long running deployments. Known Issues ************ * **Anomalies with encrypted volumes** For the most part, users are happy with the cinder feature Volume encryption supported by the key manager (https://docs.openstack.org/cinder/wallaby/configuration/block- storage/volume-encryption.html). There are, however, some edge cases that have revealed bugs that you and your users should be aware of. First, some background. The Block Storage API supports the creation of volumes in gibibyte (GiB) units. When a volume of a non- encrypted volume type of size *n* is created, the volume contains *n* GiB of usable space. When a volume of an encrypted type is requested, however, the volume contains less than *n* GiB of usable space because the encryption metadata that must be stored within that volume in order for the volume to be usable consumes an amount of the otherwise usable space. Although the encryption metadata consumes less than 1% of the volume, suppose that a user wants to retype a volume of a non- encrypted type to an encrypted type of the same size. If the non- encrypted volume is "full", we are in the position of trying to fit 101% of its capacity into the encrypted volume, which is not possible under the current laws of physics, and the retype should fail (see Known Issues (https://docs.openstack.org/cinder/wallaby/configuration/block- storage/volume-encryption.html) for volume encryption in the cinder documentation). (Note that whether a volume should be considered "full", even if it doesn't contain exactly *n* GiB of data for an *n* GiB volume, can depend upon the storage backend technology used.) A similar situation can arise when a user creates a volume of an encrypted volume type from an image in Glance. If the image happens to be sized very close to the gibibyte boundary given by the requested volume size, the operation may fail if the image data plus the encryption metadata exceeds the requested volume size. So far, the behavior isn't anomalous; it's basically what you'd expect once you are aware that the encryption metadata must be stored in the volume and that it consumes some space. We recently became aware of the following anomalies, however, when using the current RBD driver with a Ceph storage backend. * When creating an encrypted volume from an image in Glance that was created from a non-encrypted volume uploaded as an image, or an image that just happens to be sized very close to the gibibyte boundary given by the requested volume size, the space consumed by the encryption header may not leave sufficient space for the data contained in the image. In this case, the data is silently truncated to fit within the requested volume size. * Similarly, when creating an encrypted volume from a snapshot of an encrypted volume, if the amount of data in the original volume at the time the snapshot was created is very close to the gibibyte boundary given by the volume's size, it is possible for the data in the new volume to be silently truncated. Not to put too fine a point on it, silent truncation is worse than failure, and the Cinder team will be addressing these issues in the next release. Additionally (as if that isn't bad enough!), we suspect that the above anomalies will also occur when using volume encryption with NFS-based storage backends, though this has not yet been reported or confirmed. Upgrade Notes ************* * New configuration options have been added to enable mTLS between cinder and glance: use "glance_certfile" and "glance_keyfile" in the "[DEFAULT]" section of the cinder configuration file. Bug Fixes ********* * PowerStore driver Bug #1920729 (https://bugs.launchpad.net/cinder/+bug/1920729): Fix iSCSI targets not being returned from the REST API call if targets are used for multiple purposes (iSCSI target, Replication target, etc.). * Bug #1913054 (https://bugs.launchpad.net/cinder/+bug/1913054): Fix for creating a clone of an encrypted volume for drivers that require additional information to attach. * Bug #1917574 (https://bugs.launchpad.net/cinder/+bug/1917574): Fixed issue when cinderclient requests to show volume by name for non- admin users would result in the volume not being found for microversions 3.31 or later. * LVM driver bug #1901783 (https://bugs.launchpad.net/cinder/+bug/1901783): Fix unexpected delete volume failure due to unexpected exit code 139 on "lvs" command call. * Bug #1917797 (https://bugs.launchpad.net/cinder/+bug/1917797): Fix Cinder's communication with the Glance API to correctly load mTLS certificates from config ("glance_certfile" and "glance_keyfile" in the "[DEFAULT]" section). * Bug #1877164 (https://bugs.launchpad.net/cinder/+bug/1877164): Fix retyping volume with snapshots leaves the snapshots with the old type, making the quotas wrong inmediately for snapshots, and breaking them even more after those snapshots are deleted. * Bug #1919161 (https://bugs.launchpad.net/cinder/+bug/1919161): Fix automatic quota refresh to correctly account for temporary volumes. During some cinder operations, such as create a backup from a snapshot, temporary volumes are created and are not counted towards quota usage, but the sync mechanism was counting them, thus incorrectly updating volume usage. * Bug #1697906 (https://bugs.launchpad.net/cinder/+bug/1697906): Fix "until_refresh" configuration changes not taking effect in a timely fashion or at all. * Bug #1484343 (https://bugs.launchpad.net/cinder/+bug/1484343): Fix creation of duplicated quota usage entries in DB. Other Notes *********** * This note applies to deployments that are using the cinder configuration option "volume_copy_bps_limit" in its non-default value (the default is 0). The cinder-volume service currently depends on Linux Kernel Control Groups (cgroups) version 1 (https://www.kernel.org/doc/html/latest /admin-guide/cgroup-v1/cgroups.html) to control i/o throttling during some volume-copy and image-convert operations. At the time of this release, some Linux distributions may have changed to using cgroups v2 (https://www.kernel.org/doc/html/latest/admin- guide/cgroup-v2.html) by default. Thus, you may need to take explicit steps to ensure that **cgroups v1** is enabled on any OpenStack nodes running the cinder-volume service. This may entail setting specific Linux kernel parameters for these nodes. Consult your Linux distribution's documentation for details. For more information: * The cinder options associated with throttling are "volume_copy_blkio_cgroup_name" and "volume_copy_bps_limit". They are described in the sample cinder configuration file (https://docs.openstack.org/cinder/wallaby/configuration/block- storage/samples/cinder.conf.html) for the Wallaby release. * For an example of distribution-specific information about cgroups, see OpenStack and cgroups v1 (https://www.debian.org/releases/bullseye/amd64/release-notes/ch- information.en.html#openstack-cgroups) in the Debian 11 ("bullseye") release notes. Changes in cinder 17.0.0.0rc1..18.0.0 ------------------------------------- 4eb95de87 Add known issue note about encrypted volumes 4ceb0f14a Add releasenote for glance mTLS fix f87090b86 Add release note about cgroups v1 36cfe7813 Fix: show volume by name for non-admins b4f1ff89a Quota: Fix multiple race conditions d12003c81 Prevent quota and reservations to go into negative d4fcefb94 Update cinder manage quota commands 95fcb50a4 Fix quota usage duplicate entries 1b702ec11 Remove nested quota leftovers 6f2e7a543 Quota: Fix until_refresh config changes c8cc7979c Remove unused quota python classes 26919f3f8 LVM: Fix delete volume error due to lvs failure 59d08ca2a Add quota utils to cinder-manage 460095744 Change snapshots type with volume retype a9a9e5400 Cinder - Creating clone of encrypted volume fails 0c9512f94 Use os-brick 4.3.1 ebc12b940 Add prelude for Wallaby release notes 87a933846 Fix automatic quota sync for temporary volumes 80adbda09 Fix PowerStore iSCSI targets filtering 9623f83e0 Update TOX_CONSTRAINTS_FILE for stable/wallaby 5a0d07391 Update .gitreview for stable/wallaby b14cb5e13 Use os-brick 4.3.0 1fba4a9e9 NetApp ONTAP: Fix FlexGroup replication 3f33542ab Imported Translations from Zanata b406e6d35 Support mTLS when calling the glance API bb444d4a4 Follow up NetApp ONTAP FlexGroup feature d6895f9d2 Backup manager: Synchronously call remove_export 77127e7d4 Bug fix for revert to snapshot feature d501d1a88 JovianDSS: add certs and snapshot restore 5be622681 Update code layout and missing Zadara features 14032d0a1 doc: Remove cryptsetup reference for compute setup bb8771436 Add explanations on safe delete bea458663 Fix volume OVO create method 9607e2e6e Remove unnecessary save call 779b0249f Fix old attach method e55043ff0 Fix automatic quota sync for migrating volumes 6f1531ab1 [SVF]: Volume name is not validated for host 7576313b9 Changed whitelist to allowlist in tox fd77dfa22 [SVF]:Storwize hyperswap volume is not deleting. 09124fa68 Resolve SADeprecationWarning for joinedload_all 5ad7fe926 Always constraint dependencies in tox 0d06d497c Add support for consistency groups in the Nimble Storage driver 81e5a9290 NFS: Fix for groups and cloning f89d1b7b8 Dropping explicit unicode literal 6ff5591fc Add virtualenv requirement to tox.ini 0cb7322ac NetApp ONTAP: Implement FlexGroup pool 0e8807388 Add support for RBD fast-diff feature for backups stored in Ceph 8da91b74d API validation: Use cinder_host for services checks ace174821 Support format info in fs type drivers ec1bb005b PowerMax Driver - Release notes for 761643 and 767172 ae00a173b Add Consistency Groups support in PowerStore driver f328341ed Add OpenStack volume replication v2.1 support in PowerStore driver 8687925ce API validation: Add cinder_host type to support ipv6 in manage 886c5b4c8 [SVF] Set volume IOPS based on volume size 79b2a4f46 Add QoS Suport for Pure Storage 24c9065df Imported Translations from Zanata 7d9dc8dec NetApp ONTAP: Add support for dynamic Adaptive QoS policy group creation fb358e45f NetApp ONTAP: Add support for QoS minimums specs 4489ca332 PowerMax Driver - Initiator group contents check b2f696361 PowerMax Driver - Allowing for all types of boolean in extra specs cb02f9dfe PowerMax Driver - Offline r1 promotion fixes 8bb3f55db api-ref: Don't list HTTP 500 for backup create 2f5885e4b [SVF]: Fixed host and group failback issues bb219d6b9 Pure Storage: check volumename length does not exceed maximum 17a25eafc [DS8K]: Support revert to snapshot 234f3358c [Pure] Add missing FC host personality support 9f0be9994 Tests: Don't assert notifier not called cead51cea [Storwize] Provide IOPS based storage offering 6fc8086df doc: add specs repo maintenance tasks 881f72569 PowerMax Driver - Extend replicated volume 5e5ae0764 Hitachi: Trace REST API input/output logs 281dd75d3 PowerMax Driver - Fix pylint errors in test_common and provision d57a40680 PowerMax Driver - U4P Failover SerialNumber KeyError fix 3343ca773 Hitachi: Use get_volume_stats in the base driver 2c99acd1f Fix in api-ref 41101463a [Pure] Fix failing consistency group tempest tests ee84dd780 Resolve SAWarning SQLAlchemy warning 868646d28 Fix CI_WIKI_NAME entries dc938a405 Use TOX_CONSTRAINTS_FILE d99322ede Drop policy check failures to DEBUG 40d93a611 Fusionstorage Cinder Driver Support OceanStor 100D Storage.(dsware) ca11345dc image_utils: Use QEMU_IMG_FORCE_SHARE_VERSION constant 01c9aba1f [SVF] Update volume replication properties 9b418e76a smbfs: set VHD UUID using volume UUID 11185189b TOYOU: Abandon the target parameter and Report SAN driver options f8e569864 Simplify composite check strings for project personas 0c87d14f5 Make sure we pass context objects directly to policy enforcement 118da903b Properly handle InvalidScope exceptions 9fc6fab79 Update secure RBAC check strings with descriptions 3836a4927 Tests: Improve RBD v2 clone API unit tests e175d64ca Add ports filtering support to Dell EMC XtremIO driver 2ae735bff Update to hacking 4.0.0 f26c6cac5 HPE: Add Peer Persistence support for Primera backend 4f5e9fd28 Use os-brick 4.2.0 e28e1a2f4 Move trace methods from utils to volume_utils 692b59185 Imported Translations from Zanata 2563dd3a1 Bump pylint to 2.6.0 02521d19f LVM: fix _create_vg e7b467051 Move brick calls from cinder.utils to volume_utils bc0fdbc7e vmware: Use cookiejar from oslo.vmware client directly 698ab86a7 mypy: annotate volume manager 5b3304cfc Add KIOXIA KumoScale NVMeOF driver 28fd75e9a Fix irrelevant-files for two devstack jobs ff677d5ad doc: add rbd-iscsi-client info bdbf5db85 Fix RBD_OPERATION_FEATURE_CLONE_PARENT in unittest a99648424 Require oslo.serialization 4.1.0 85986751a Update ceph driver docs, mentioning Hyper-V support f04140610 PowerMax Driver - Check for missing port group f91aec586 Add encryption_key_id to volume and backup details 11704d0e8 RBD: Pass bytes type for mon_command inbuf 7dc8e486f Change the CLI document for the extend-attached-volume 203eb2cf8 Correct format string in error message 6cabe11c9 3PAR: Allow iSCSI driver to be enabled for Primera 4.2 onwards. 677ee75d5 Imported Translations from Zanata efd836757 Log information about the Ceph v2 clone API 337248138 created s3 cinder backup driver 01f010011 Tests: Add another mock psutil in quobyte tests 56eaf475a Add ceph iscsi volume driver fe0822b1b Add Cinder driver for TOYOU ACS5000 aa77afe31 Remove NestedQuotaDriver 3ce9d773a Label temporary files created by image_utils 1156c89c2 Update SolidFire Storage assisted migration in support-matrix 69f4f5ffe Pure: Add default value to pure_host_personality e9d1bf8f6 Add driver for Dell EMC PowerVault ME Series f3d116885 Imported Translations from Zanata e9c848f5f Introduces MV to add volume type ID in volumes details f19a92064 LVM: Support only LVM 2.02.107+ 83e511e01 LVM: Use --readonly for lvs 5e2d30bd4 NetApp SolidFire: Refactor DuplicateSfVolumeNames exception d3f4c5559 Tests: Fix rbd unit test failure due to ceph keyring file 723f1a242 Remove __unicode__() from CinderException 300353de8 doc: update release cycle tasks d9c90cf48 tox mypy: Call mypywrap.sh directly ce060323f pylint: run coding-checks.sh with bash acfb3361c Hitachi: Wait until the volume can be deleted 7d705fcea Basic volume QoS doc. f0652209f PowerMax Driver - Promotion RDF Group number fix 96f09aae5 Add docs and update support matrix for Hitachi driver 482e6a3cc Imported Translations from Zanata f04d905a6 [RBD] Fix snapshot backup name 1631742f4 Correct group:reset_group_snapshot_status policy d5750ea09 Imported Translations from Zanata 325001045 [goal] Deprecate the JSON formatted policy file 4ba6664de RBD: Change rbd_exclusive_cinder_pool's default f845f9021 Imported Translations from Zanata 6231d2666 RBD: Retry delete if VolumeIsBusy in _copy_image_to_volume d3ffa90ba Update requirements and lower-constraints 7d50d58b6 Add CHAP support to Dell EMC PowerStore driver 514ae3040 add openstack-python3-wallaby-jobs-arm64 job 114556934 [SVF]:Fix in change_vdisk_iogrp during retype 0a11cac11 Exception type is not iterable so should change it to string type d729522ac [IBM DS8000]: Fix compatability issue in get_host c0983a8e8 Imported Translations from Zanata 00ad39a60 PowerMax Driver - Fix assign SRP during promotion retype 6f5a3e1c2 Imported Translations from Zanata 0f04930fb Pure Storage FlashArray: Add active/active support d56b47d33 [SVF]: Fixed host and group failover issues 3570a79a1 [SVF]:Fix clone fcmap not being deleted in cleanup 25cded9d1 Fix volume rekey during clone e6ec3e9bf Pure Storage - bump version numbers for Wallaby ceb502254 Tests: Move glance_stubs to glance dir 562cabc3f Clarify 'supported' reinstatement policy a791d3032 [IBM DS8000] Support volume name template 3e607f1d8 Update doc contributor doc ebcd36eda [Trivial]Add missing white space in the log message c400c6d95 Imported Translations from Zanata 471a2790d Add Python3 wallaby unit tests bb25e9550 Replace md5 with oslo version 2f5179147 doc: restrict supported Ceph versions 563c7e05f Tests: Improve get_qemu_img_version coverage b62f250bc PowerMax Driver - Port status check 42c92cc40 NetApp SolidFire: Fix duplicate volume when API response is lost 8d0c08b4b NetApp SolidFire: Fix error on cluster workload rebalancing 0e2c5b7eb Add common RBAC personas to cinder/policies/base.py fdc3711c9 Fix cinder-manage <category> traceback 03a8ca07d Imported Translations from Zanata cddcc6e50 Delete TSM Backup driver efce9c74d Update Development Environment documentation for Ubuntu a5883f493 Doc:Storwize to Spectrum Virtualize Family bf5e79c3c PowerMax Docs - Victoria new features and supported software 1c5fa1921 Imported Translations from Zanata 22e008bf9 [Trivial]Fix unncessary "import xx as xx" renaming d47aa082b Fix invalid asert_called_with statement 4394a027b [doc]Fix an invalid url link in docs 8d8d242c3 Do not fail when depth is greater than rbd_max_clone_depth 8ea6f8031 Imported Translations from Zanata 9fc2b031c Bump minimum version of oslo.log 06523d30a [SVF] RevertToSnapshot support for GM volumes e68d33ef6 Make docs build parallel 8f28d9565 [Trivial] Fix missing print format and missing white spaces c607a82a9 NetApp SolidFire: Fix clone and request timeout issues d6df2c20c Remove collections.abc backwards compatibility 0359acf05 Imported Translations from Zanata 50a4592ef Fix cinder-manage cluster remove raising NoSuchOptError 6e53c264b Add mypy tox env 5f8acb5f9 Refactor some unit tests 72c6dc564 Remove six of files under cinder/test/unit e02d90943 Remove six of dir cinder/volume/* bafe440b9 RBD: Run flatten in a different thread when cloning a volume dbcba9485 Import HTTPStatus instead of http_client (policy tests) dea710d1e Preparing for removal of six.reraise() a78a85181 Remove six of dir cinder/image/* 56ee0971b Nimble: Add support for revert to snapshot e1e289ca8 Add Cinder driver for Open-E JovianDSS data storage 113026765 Remove six of dir cinder/tests/unit/api/* d2346f8c6 Remove six of dir cinder/tests/unit/backup/* 6b067f2b4 Import HTTPStatus instead of http_client 04a2683b2 Remove six in files under cinder/* 02615bfe3 Remove six of dir cinder/tests/unit/volume&zonemanager/* 84975cce3 Remove six of dir cinder/tests/unit/policies&scheduler&targets/* 919cbbd4d Remove six of dir cinder/tests/functional&hacking/* 58108e1b6 Remove six of dir cinder/backup/* b49bef7dd Remove six of dir cinder/scheduler/* b477632a6 [IBM DS8K]: Fixed rest API issue to get bundle 18d869276 Remove six of dir cinder/brick,cinder/common,cinder/interface,cinder/objects 7be58ba69 Remove six of dir cinder/db/* a85ce6c81 Remove six of dir cinder/api/* 6736945fe Reno: Use customized template dc8d70908 Backup: Fix formatting errors d739b8671 Critical fix for MSA 2060 and MSA 1060 d680a237e Fix service_get_log tests acfc148d7 Imported Translations from Zanata 3adeb5c42 doc: update Brocade FCZM documentation d7ff87ae5 Update new contributor doc 528af66ff [SVF]:changes in create_group_from_src for replicated groups 30571246b [Trivial]Add missing print format in log message 7d8989070 [SVF]:Reduce slowness by caching pool information c8ce118f0 Imported Translations from Zanata b746468b3 doc: update new driver merge deadline 91da9df53 Update master for stable/victoria 5032a6db0 [SVF]:Fixed create_flashcopy_to_consistgrp 4bb162e5e PowerMax Driver - Feedback on review 746486 568b279a8 Add support for system and domain scoped tokens 8d7a98b3e [SVF]: Support for retype operation on GM volumes a7f9eda38 PowerMax Driver - Fix non-temporary snapshot delete 57892623d Disallow extension of attached volumes for NFS & Quobyte drivers e1f517927 Remove install unnecessary packages 3d56b6dfd Don't create LOG if not logging c7148b804 [api-ref]Add replication_status(optional) to List groups with details response 99d51ff67 Fix a typo in the explanatory note a42a8e63d Stop configuring install_command in tox. d72f738c0 Correcting the response status range in WsgiLimiterProxy 61d612e64 PowerMax Docs - Incorrect property set on volume group a21bf4141 Fixed an issue with creating a backup from snapshot with NFS volume driver. 9893b1c95 Race in Cinder backup manager 941bf1f1a Switch from unittest2 compat methods to py3 methods de8d05dff Remove unneeded arg from _clean_db (vol manager) 90be2b425 Add links to package metadata e4582400b Remove lxml deprecated methods d52ce1d53 tox: remove bash from whitelist_externals 0e92a480b Synology: Improve session expired error handling 951ffa437 3PAR: Workaround SSH logging issue c6fc88a54 Doc: Add notes on create_cloned_volume locking 713b3572f Doc: Add max MV update step to cycle tasks Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + .gitreview | 1 + .zuul.yaml | 6 +- api-ref/source/v3/ext-backups.inc | 3 +- api-ref/source/v3/groups.inc | 1 + api-ref/source/v3/parameters.yaml | 64 +- api-ref/source/v3/quota-sets.inc | 30 - .../v3/samples/versions/version-show-response.json | 4 +- .../v3/samples/versions/versions-response.json | 4 +- .../volumes/volumes-list-detailed-response.json | 8 +- api-ref/source/v3/volumes-v3-snapshots.inc | 2 +- api-ref/source/v3/volumes-v3-volumes.inc | 4 + cinder/api/api_utils.py | 5 +- cinder/api/common.py | 6 +- cinder/api/contrib/admin_actions.py | 12 +- cinder/api/contrib/backups.py | 10 +- cinder/api/contrib/cgsnapshots.py | 9 +- cinder/api/contrib/consistencygroups.py | 10 +- cinder/api/contrib/qos_specs_manage.py | 31 +- cinder/api/contrib/quotas.py | 256 +-- cinder/api/contrib/services.py | 7 +- cinder/api/contrib/snapshot_actions.py | 4 +- cinder/api/contrib/snapshot_manage.py | 4 +- cinder/api/contrib/snapshot_unmanage.py | 6 +- cinder/api/contrib/types_extra_specs.py | 5 +- cinder/api/contrib/types_manage.py | 11 +- cinder/api/contrib/volume_actions.py | 32 +- cinder/api/contrib/volume_image_metadata.py | 5 +- cinder/api/contrib/volume_manage.py | 4 +- cinder/api/contrib/volume_transfer.py | 8 +- cinder/api/contrib/volume_type_access.py | 9 +- cinder/api/contrib/volume_type_encryption.py | 4 +- cinder/api/contrib/volume_unmanage.py | 6 +- cinder/api/microversions.py | 4 + cinder/api/middleware/auth.py | 5 +- cinder/api/middleware/fault.py | 9 +- cinder/api/openstack/api_version_request.py | 10 +- cinder/api/openstack/rest_api_version_history.rst | 13 +- cinder/api/openstack/wsgi.py | 52 +- cinder/api/schemas/services.py | 6 +- cinder/api/schemas/volume_manage.py | 2 +- cinder/api/v2/limits.py | 4 +- cinder/api/v2/snapshot_metadata.py | 4 +- cinder/api/v2/snapshots.py | 6 +- cinder/api/v2/views/volumes.py | 10 +- cinder/api/v2/volume_metadata.py | 4 +- cinder/api/v2/volumes.py | 6 +- cinder/api/v3/attachments.py | 12 +- cinder/api/v3/consistencygroups.py | 4 +- cinder/api/v3/default_types.py | 12 +- cinder/api/v3/group_snapshots.py | 11 +- cinder/api/v3/group_specs.py | 6 +- cinder/api/v3/group_types.py | 15 +- cinder/api/v3/groups.py | 18 +- cinder/api/v3/messages.py | 4 +- cinder/api/v3/snapshot_manage.py | 4 +- cinder/api/v3/views/backups.py | 8 + cinder/api/v3/views/volumes.py | 26 + cinder/api/v3/volume_manage.py | 4 +- cinder/api/v3/volume_metadata.py | 19 +- cinder/api/v3/volume_transfer.py | 4 +- cinder/api/v3/volumes.py | 11 +- cinder/api/v3/workers.py | 4 +- cinder/api/validation/parameter_types.py | 16 +- cinder/api/validation/validators.py | 5 +- cinder/api/versions.py | 4 +- cinder/api/views/versions.py | 2 +- cinder/backup/chunkeddriver.py | 22 +- cinder/backup/driver.py | 4 +- cinder/backup/drivers/ceph.py | 53 +- cinder/backup/drivers/gcs.py | 17 +- cinder/backup/drivers/s3.py | 376 ++++ cinder/backup/drivers/swift.py | 10 +- cinder/backup/drivers/tsm.py | 515 ----- cinder/backup/manager.py | 30 +- cinder/brick/local_dev/lvm.py | 21 +- cinder/cmd/backup.py | 7 +- cinder/cmd/manage.py | 222 ++- cinder/cmd/status.py | 17 +- cinder/common/config.py | 6 + cinder/common/constants.py | 3 + cinder/common/sqlalchemyutils.py | 1 - cinder/context.py | 5 +- cinder/db/api.py | 26 +- cinder/db/base.py | 3 +- cinder/db/sqlalchemy/api.py | 766 ++++---- .../versions/132_create_default_volume_type.py | 3 +- .../141_add_quota_usage_unique_constraint.py | 37 + cinder/db/sqlalchemy/models.py | 19 + cinder/exception.py | 17 +- cinder/image/accelerator.py | 7 +- cinder/image/cache.py | 9 +- cinder/image/glance.py | 19 +- cinder/image/image_utils.py | 20 +- cinder/interface/base.py | 5 +- cinder/interface/volume_driver.py | 4 + cinder/locale/de/LC_MESSAGES/cinder.po | 214 +- cinder/locale/es/LC_MESSAGES/cinder.po | 216 +- cinder/locale/fr/LC_MESSAGES/cinder.po | 213 +- cinder/locale/it/LC_MESSAGES/cinder.po | 224 +-- cinder/locale/ja/LC_MESSAGES/cinder.po | 230 +-- cinder/locale/ko_KR/LC_MESSAGES/cinder.po | 209 +- cinder/locale/pt_BR/LC_MESSAGES/cinder.po | 206 +- cinder/locale/ru/LC_MESSAGES/cinder.po | 204 +- cinder/locale/zh_CN/LC_MESSAGES/cinder.po | 199 +- cinder/locale/zh_TW/LC_MESSAGES/cinder.po | 180 +- cinder/manager.py | 23 +- cinder/objects/base.py | 10 +- cinder/objects/cleanable.py | 6 +- cinder/objects/volume.py | 10 +- cinder/objects/volume_type.py | 3 +- cinder/opts.py | 28 +- cinder/policies/base.py | 53 + cinder/policies/group_snapshot_actions.py | 2 +- cinder/policies/quotas.py | 12 - cinder/policy.py | 20 +- cinder/quota.py | 288 +-- cinder/quota_utils.py | 147 +- cinder/rpc.py | 5 +- cinder/scheduler/base_weight.py | 4 +- cinder/scheduler/evaluator/evaluator.py | 3 +- cinder/scheduler/filter_scheduler.py | 2 +- cinder/scheduler/filters/driver_filter.py | 3 +- cinder/scheduler/filters/json_filter.py | 3 +- cinder/scheduler/manager.py | 8 +- cinder/scheduler/weights/goodness.py | 3 +- cinder/ssh_utils.py | 3 +- .../volumes-list-detailed-response.json.tpl | 8 +- .../unit/api/contrib/test_consistencygroups.py | 142 +- .../contrib/test_extended_snapshot_attributes.py | 6 +- .../unit/api/contrib/test_qos_specs_manage.py | 8 +- .../unit/api/contrib/test_snapshot_actions.py | 10 +- .../unit/api/contrib/test_snapshot_unmanage.py | 6 +- .../api/contrib/test_volume_encryption_metadata.py | 33 +- .../unit/api/contrib/test_volume_image_metadata.py | 18 +- .../unit/api/contrib/test_volume_type_access.py | 6 +- .../api/contrib/test_volume_type_encryption.py | 59 +- .../unit/api/openstack/test_api_version_request.py | 3 +- .../unit/api/openstack/test_versioned_method.py | 4 +- .../{glance/stubs.py => image/glance_stubs.py} | 0 .../unit/policies/test_default_volume_types.py | 25 +- .../{glance => volume/drivers/ceph}/__init__.py | 0 .../volume/drivers/ceph/fake_rbd_iscsi_client.py | 25 + .../ceph/fake_rbd_iscsi_client_exceptions.py | 116 ++ .../unit/volume/drivers/ceph/test_rbd_iscsi.py | 246 +++ .../test_initialize_connection_snapshot.py | 4 +- .../powerflex/test_revert_volume_to_snapshot.py | 4 +- .../drivers/dell_emc/powermax/powermax_data.py | 35 +- .../dell_emc/powermax/test_powermax_common.py | 162 +- .../dell_emc/powermax/test_powermax_masking.py | 180 +- .../dell_emc/powermax/test_powermax_replication.py | 35 +- .../dell_emc/powermax/test_powermax_rest.py | 6 +- .../dell_emc/powermax/test_powermax_utils.py | 50 +- .../volume/drivers/dell_emc/powerstore/__init__.py | 4 +- .../drivers/dell_emc/powerstore/test_base.py | 95 +- .../dell_emc/powerstore/test_replication.py | 121 ++ .../test_snapshot_create_delete_revert.py | 16 +- .../powerstore/test_volume_attach_detach.py | 103 +- .../powerstore/test_volume_create_delete_extend.py | 9 +- .../powerstore/test_volume_create_from_source.py | 26 +- .../test_volume_group_create_delete_update.py | 144 ++ .../test_volume_group_create_from_source.py | 112 ++ .../test_volume_group_snapshot_create_delete.py | 101 + .../unit/volume/drivers/dell_emc/test_xtremio.py | 50 +- .../volume/drivers/dell_emc/unity/test_adapter.py | 6 +- .../volume/drivers/dell_emc/vnx/test_client.py | 2 +- .../drivers/hitachi/test_hitachi_hbsd_rest_fc.py | 42 + .../unit/volume/drivers/ibm/test_ds8k_proxy.py | 157 +- .../volume/drivers/ibm/test_ibm_flashsystem.py | 2 +- .../unit/volume/drivers/ibm/test_storwize_svc.py | 1407 ++++++++++--- .../drivers/inspur/instorage/test_fc_driver.py | 2 +- .../inspur/instorage/test_helper_routines.py | 10 +- .../drivers/netapp/dataontap/client/fakes.py | 261 ++- .../drivers/netapp/dataontap/client/test_api.py | 4 +- .../netapp/dataontap/client/test_client_base.py | 12 + .../netapp/dataontap/client/test_client_cmode.py | 685 ++++++- .../unit/volume/drivers/netapp/dataontap/fakes.py | 129 ++ .../dataontap/performance/test_perf_cmode.py | 9 +- .../drivers/netapp/dataontap/test_block_base.py | 19 +- .../drivers/netapp/dataontap/test_block_cmode.py | 50 +- .../dataontap/test_block_driver_interfaces.py | 7 +- .../drivers/netapp/dataontap/test_nfs_base.py | 285 ++- .../drivers/netapp/dataontap/test_nfs_cmode.py | 281 ++- .../volume/drivers/netapp/dataontap/utils/fakes.py | 27 +- .../netapp/dataontap/utils/test_capabilities.py | 118 +- .../netapp/dataontap/utils/test_data_motion.py | 249 ++- .../drivers/nexenta/test_nexenta5_jsonrpc.py | 4 +- .../volume/drivers/nexenta/test_nexenta5_nfs.py | 4 +- .../unit/volume/drivers/open_e/test_rest_proxy.py | 325 +++ .../volume/drivers/solidfire/test_solidfire.py | 24 +- .../drivers/synology/test_synology_common.py | 7 +- .../unit/volume/drivers/test_macrosan_drivers.py | 17 +- .../unit/volume/drivers/toyou/test_acs5000.py | 1362 +++++++++++++ .../drivers/veritas_access/test_veritas_iscsi.py | 8 +- .../volume/drivers/vmware/test_vmware_datastore.py | 2 +- .../unit/volume/drivers/vmware/test_vmware_vmdk.py | 2 +- .../unit/volume/flows/test_create_volume_flow.py | 59 +- .../zonemanager/test_brcd_http_fc_zone_client.py | 3 +- .../zonemanager/test_cisco_fc_zone_client_cli.py | 1 - .../unit/zonemanager/test_cisco_fc_zone_driver.py | 4 +- cinder/utils.py | 271 +-- cinder/volume/api.py | 39 +- cinder/volume/driver.py | 57 +- cinder/volume/drivers/ceph/__init__.py | 0 cinder/volume/drivers/ceph/rbd_iscsi.py | 492 +++++ cinder/volume/drivers/datera/datera_api21.py | 3 +- cinder/volume/drivers/datera/datera_api22.py | 3 +- cinder/volume/drivers/datera/datera_common.py | 2 +- cinder/volume/drivers/datera/datera_iscsi.py | 6 +- cinder/volume/drivers/dell_emc/powermax/common.py | 85 +- cinder/volume/drivers/dell_emc/powermax/fc.py | 5 +- cinder/volume/drivers/dell_emc/powermax/iscsi.py | 5 +- cinder/volume/drivers/dell_emc/powermax/masking.py | 232 ++- .../volume/drivers/dell_emc/powermax/provision.py | 2 +- cinder/volume/drivers/dell_emc/powermax/rest.py | 10 +- cinder/volume/drivers/dell_emc/powermax/utils.py | 14 +- .../volume/drivers/dell_emc/powerstore/adapter.py | 803 +++++--- .../volume/drivers/dell_emc/powerstore/client.py | 436 ++++- .../volume/drivers/dell_emc/powerstore/driver.py | 171 +- .../volume/drivers/dell_emc/powerstore/options.py | 7 +- cinder/volume/drivers/dell_emc/powerstore/utils.py | 44 + .../volume/drivers/dell_emc/powervault/__init__.py | 0 .../volume/drivers/dell_emc/powervault/client.py | 24 + .../volume/drivers/dell_emc/powervault/common.py | 68 + cinder/volume/drivers/dell_emc/powervault/fc.py | 48 + cinder/volume/drivers/dell_emc/powervault/iscsi.py | 51 + .../drivers/dell_emc/sc/storagecenter_api.py | 10 +- .../volume/drivers/dell_emc/sc/storagecenter_fc.py | 2 +- .../drivers/dell_emc/sc/storagecenter_iscsi.py | 2 +- cinder/volume/drivers/dell_emc/unity/adapter.py | 14 +- cinder/volume/drivers/dell_emc/unity/driver.py | 2 +- cinder/volume/drivers/dell_emc/vnx/client.py | 2 +- cinder/volume/drivers/dell_emc/vnx/driver.py | 2 +- cinder/volume/drivers/dell_emc/xtremio.py | 72 +- .../fujitsu/eternus_dx/eternus_dx_common.py | 4 +- cinder/volume/drivers/hitachi/hbsd_common.py | 16 +- cinder/volume/drivers/hitachi/hbsd_fc.py | 48 +- cinder/volume/drivers/hitachi/hbsd_iscsi.py | 48 +- cinder/volume/drivers/hitachi/hbsd_rest.py | 3 + cinder/volume/drivers/hitachi/hbsd_rest_api.py | 2 + cinder/volume/drivers/hpe/hpe_3par_base.py | 56 +- cinder/volume/drivers/hpe/hpe_3par_common.py | 4 + cinder/volume/drivers/hpe/hpe_3par_fc.py | 6 +- cinder/volume/drivers/hpe/hpe_3par_iscsi.py | 26 +- cinder/volume/drivers/huawei/huawei_utils.py | 8 +- cinder/volume/drivers/ibm/flashsystem_common.py | 24 +- cinder/volume/drivers/ibm/gpfs.py | 4 +- .../volume/drivers/ibm/ibm_storage/ds8k_helper.py | 53 +- .../volume/drivers/ibm/ibm_storage/ds8k_proxy.py | 42 +- .../volume/drivers/ibm/ibm_storage/ibm_storage.py | 4 + cinder/volume/drivers/ibm/ibm_storage/proxy.py | 5 + .../volume/drivers/ibm/storwize_svc/replication.py | 120 +- .../drivers/ibm/storwize_svc/storwize_const.py | 5 + .../ibm/storwize_svc/storwize_svc_common.py | 833 +++++--- cinder/volume/drivers/infinidat.py | 8 +- .../drivers/inspur/as13000/as13000_driver.py | 66 +- .../drivers/inspur/instorage/instorage_common.py | 24 +- .../drivers/inspur/instorage/instorage_fc.py | 8 +- .../drivers/inspur/instorage/instorage_iscsi.py | 12 +- .../volume/drivers/inspur/instorage/replication.py | 5 +- .../volume/drivers/kaminario/kaminario_common.py | 54 +- cinder/volume/drivers/kaminario/kaminario_fc.py | 10 +- cinder/volume/drivers/kaminario/kaminario_iscsi.py | 11 +- cinder/volume/drivers/kioxia/entities.py | 467 +++++ cinder/volume/drivers/kioxia/kumoscale.py | 490 +++++ cinder/volume/drivers/kioxia/rest_client.py | 1055 ++++++++++ cinder/volume/drivers/macrosan/driver.py | 34 +- cinder/volume/drivers/nec/volume_helper.py | 3 +- .../volume/drivers/netapp/dataontap/block_base.py | 20 +- .../volume/drivers/netapp/dataontap/block_cmode.py | 26 +- .../volume/drivers/netapp/dataontap/client/api.py | 4 +- .../drivers/netapp/dataontap/client/client_base.py | 8 +- .../netapp/dataontap/client/client_cmode.py | 448 ++++- cinder/volume/drivers/netapp/dataontap/nfs_base.py | 207 +- .../volume/drivers/netapp/dataontap/nfs_cmode.py | 153 +- .../netapp/dataontap/performance/perf_cmode.py | 18 +- .../drivers/netapp/dataontap/utils/capabilities.py | 90 +- .../drivers/netapp/dataontap/utils/data_motion.py | 177 +- .../volume/drivers/netapp/dataontap/utils/utils.py | 6 +- cinder/volume/drivers/netapp/options.py | 14 +- cinder/volume/drivers/netapp/utils.py | 224 ++- cinder/volume/drivers/nexenta/nfs.py | 4 +- cinder/volume/drivers/nexenta/ns5/jsonrpc.py | 4 +- cinder/volume/drivers/nexenta/ns5/nfs.py | 4 +- cinder/volume/drivers/nfs.py | 19 +- cinder/volume/drivers/nimble.py | 283 ++- cinder/volume/drivers/open_e/__init__.py | 0 cinder/volume/drivers/open_e/iscsi.py | 1028 ++++++++++ .../drivers/open_e/jovian_common/__init__.py | 0 .../drivers/open_e/jovian_common/exception.py | 88 + .../drivers/open_e/jovian_common/jdss_common.py | 112 ++ cinder/volume/drivers/open_e/jovian_common/rest.py | 893 +++++++++ .../drivers/open_e/jovian_common/rest_proxy.py | 201 ++ cinder/volume/drivers/open_e/options.py | 48 + cinder/volume/drivers/pure.py | 241 ++- cinder/volume/drivers/quobyte.py | 6 + cinder/volume/drivers/rbd.py | 67 +- cinder/volume/drivers/remotefs.py | 43 +- cinder/volume/drivers/rsd.py | 23 +- cinder/volume/drivers/solidfire.py | 145 +- cinder/volume/drivers/storpool.py | 2 +- cinder/volume/drivers/stx/client.py | 87 +- cinder/volume/drivers/stx/common.py | 4 +- cinder/volume/drivers/synology/synology_common.py | 8 +- cinder/volume/drivers/toyou/__init__.py | 0 cinder/volume/drivers/toyou/acs5000/__init__.py | 0 .../volume/drivers/toyou/acs5000/acs5000_common.py | 827 ++++++++ .../volume/drivers/toyou/acs5000/acs5000_iscsi.py | 108 + .../volume/drivers/veritas_access/veritas_iscsi.py | 8 +- cinder/volume/drivers/vmware/vmdk.py | 2 +- cinder/volume/drivers/windows/smbfs.py | 21 +- cinder/volume/drivers/zadara.py | 753 ------- cinder/volume/drivers/zadara/__init__.py | 0 cinder/volume/drivers/zadara/common.py | 517 +++++ cinder/volume/drivers/zadara/exception.py | 53 + cinder/volume/drivers/zadara/zadara.py | 729 +++++++ cinder/volume/flows/api/create_volume.py | 3 +- cinder/volume/flows/common.py | 3 +- cinder/volume/flows/manager/create_volume.py | 8 +- cinder/volume/group_types.py | 3 +- cinder/volume/manager.py | 506 +++-- cinder/volume/rpcapi.py | 7 +- cinder/volume/targets/driver.py | 4 +- cinder/volume/targets/nvmet.py | 3 +- cinder/volume/volume_types.py | 8 +- cinder/volume/volume_utils.py | 259 ++- .../admin/blockstorage-consistency-groups.rst | 49 +- .../admin/blockstorage-volume-multiattach.rst | 17 +- .../configuration/block-storage/backup-drivers.rst | 2 +- .../block-storage/backup/s3-backup-driver.rst | 20 + .../block-storage/backup/tsm-backup-driver.rst | 34 - .../block-storage/block-storage-overview.rst | 15 +- .../drivers/ceph-rbd-volume-driver.rst | 59 +- .../drivers/dell-emc-powermax-driver.rst | 463 ++++- .../drivers/dell-emc-powerstore-driver.rst | 107 +- .../drivers/dell-emc-powervault-me.rst | 172 ++ .../drivers/dell-emc-xtremio-driver.rst | 11 + .../block-storage/drivers/hitachi-vsp-driver.rst | 160 ++ .../block-storage/drivers/hp-msa-driver.rst | 6 +- .../block-storage/drivers/hpe-3par-driver.rst | 10 +- .../drivers/ibm-storwize-svc-driver.rst | 155 +- .../drivers/kioxia-kumoscale-driver.rst | 67 + .../block-storage/drivers/nimble-volume-driver.rst | 4 +- .../drivers/open-e-joviandss-driver.rst | 198 ++ .../block-storage/drivers/pure-storage-driver.rst | 14 + .../block-storage/drivers/toyou-acs5000-driver.rst | 72 + .../block-storage/drivers/zadara-volume-driver.rst | 8 +- .../configuration/block-storage/fc-zoning.rst | 10 +- .../configuration/block-storage/nested-quota.rst | 172 -- .../block-storage/policy-config-HOWTO.rst | 7 + .../block-storage/samples/policy.yaml.rst | 19 +- .../configuration/block-storage/volume-drivers.rst | 2 + .../block-storage/volume-encryption.rst | 5 +- .../configuration/tables/cinder-storwize.inc | 48 +- .../contributor/drivers_locking_examples.rst | 28 + driver-requirements.txt | 3 + etc/cinder/rootwrap.d/volume.filters | 3 - lower-constraints.txt | 250 ++- mypy-files.txt | 6 + releasenotes/notes/1899512-7a872a2c19e53536.yaml | 4 + releasenotes/notes/1918099-18b26dd9107f19c0.yaml | 6 + ...abled-or-snapshot_enabled-72f669fe2719ce3d.yaml | 6 + ...evert-to-snapshot-support-ea0e06e14a8710ee.yaml | 4 + ...er_Support_OceanStor_100D-d21a300fd27b2440.yaml | 5 + ...ewlayout-support-features-ffa20694c008ba86.yaml | 14 + ...ryption-key-id-to-details-e721977fba0f2b51.yaml | 6 + ...announce-ceph-min-version-4eddb0def1c39928.yaml | 32 + .../notes/backup_s3_driver-238e3612acd7cc06.yaml | 7 + ...-cert-and-snapshot-revert-b34f352754ad07de.yaml | 7 + .../bp-kumoscale-driver-3a01460f1aa83939.yaml | 5 + ...-netapp-flexgroup-support-c462fca33f0d8906.yaml | 37 + ...netapp-ontap-adaptive-qos-45891585a91eab75.yaml | 11 + ...-ontap-min-throughput-qos-cd3812df5c7da8fd.yaml | 13 + .../bp-powerstore-cg-support-ac1842d2041dcbfd.yaml | 4 + ...store-replication-support-700016b83437602e.yaml | 10 + .../bp-toyou-acs5000-driver-16449ca18280def3.yaml | 5 + ...onsistency_group_failures-bb2a976dfe9454a4.yaml | 6 + .../notes/bug-1870103-013e314e9a5b8e08.yaml | 7 + ...port_volume_name_template-91e1b70ece172ef8.yaml | 6 + ...ug-1887859-backup-manager-fb8dbf289eedc4b0.yaml | 6 + .../notes/bug-1887962-643379faf20f01cf.yaml | 7 + ...-backup-from-nfs-snapshot-2e06235eb318b852.yaml | 6 + ...s-not-deleting-in-cleanup-f5bbb467be1b889d.yaml | 8 + ...ashcopy_to_consistgrp_fix-9eeea4aaceb8a191.yaml | 7 + ...ion-is-not-saved-in-stats-22f302d941cd9fe2.yaml | 7 + ...is-not-validated-for-host-4ec0d1bd14281c77.yaml | 7 + ...nage-cluster-remove-raising-nosuchopterror.yaml | 6 + ...T-API-issue-to-get-bundle-198a3b89255759bb.yaml | 6 + ...vdisk_iogrp-during-retype-ef83ccf27d8829f5.yaml | 9 + ...lover-switch-relationship-9d3c58822a8c918c.yaml | 7 + .../notes/bug-1898918-b24a93d7d5aff238.yaml | 7 + .../notes/bug-1900979-powerstore-chap-support.yaml | 5 + ...9-xtremio-ports-filtering-e68f90d47f17a7d9.yaml | 5 + .../notes/bug-1901241-361b1b361bfa5152.yaml | 8 + ...ype-compatability-support-a86f608d8c014a29.yaml | 6 + .../bug-1904440-clone-rekey-fd57a2b5f6224e0f.yaml | 8 + ...g-1904892-ipv6-nfs-manage-391118115dfaaf54.yaml | 7 + .../notes/bug-1905564-e7dcf28fd734d3b2.yaml | 7 + ...ume-iops-throttling-issue-b2b89e31af5973b2.yaml | 7 + ...lback-switch-relationship-b5b7320811688cda.yaml | 7 + .../notes/bug-1907964-9277e5ddec2abeda.yaml | 11 + .../notes/bug-1908315-020fea3e244d49bb.yaml | 38 + ...te-replication-properties-68c4f9ea56df212d.yaml | 7 + ...ap-volume-is-not-deleting-a94291248f8f59cd.yaml | 6 + .../notes/bug-1913449-4796b366ae7e871b.yaml | 7 + ...backup-remove-export-race-941e2ab1f056e54c.yaml | 8 + ...e-iscsi-targets-filtering-9623ac03da5c6721.yaml | 8 + .../notes/bug_1870367-49b74d10a9bfcf07.yaml | 7 + .../notes/ceph-iscsi-driver-b515bd7fb73ce13b.yaml | 6 + .../cgroups-v1-status-note-b1eff0e1907aa0f2.yaml | 30 + ...rbd_exclusive_cinder_pool-e59c528c7f728780.yaml | 17 + .../cinder-clone-encrypted-a28338e2b1838a63.yaml | 6 + .../cinder-manage-quota-ed4ee17f7097d11f.yaml | 6 + .../delete-tsm-backup-driver-725e33f7c213fd50.yaml | 4 + .../dell-emc-pvme-driver-9333594b2cc1e0b5.yaml | 4 + ...son-formatted-policy-file-dc3441a7b1dbfb47.yaml | 12 + .../fix-manage-no-action-46b023476e8cd938.yaml | 7 + ...ix-show-volume-non-admins-1bc5238398e73981.yaml | 7 + ...-fix-delete-volume-issues-e648525e597505fd.yaml | 6 + .../hpe-3par-pp-primera-a3442d004545b3a9.yaml | 5 + ...pe-3par-primera-add-iscsi-5af339643dfa0928.yaml | 5 + ...Ps-based-storage-offering-1b7532f42fd6d76e.yaml | 6 + .../joviandss-iscsi-driver-0becc6ee6a0b3c0a.yaml | 6 + .../notes/lvm-delete-error-f12da00c1b3859dc.yaml | 6 + ...-minimum-version-2-02-107-df4551d088f8b5a3.yaml | 4 + releasenotes/notes/msa2060-99150398a9c416f6.yaml | 7 + ...-fix-for-glance-api-calls-469b992adc5f49ff.yaml | 12 + ...v-volume-type-name-and-id-5f4fd8480874fe9b.yaml | 7 + ...onsistency-groups-support-7c932d5557fa725e.yaml | 4 + ...-expand-replicated-volume-124c62ea78b1c347.yaml | 6 + .../powermax_initiator_check-249279d30e3f8322.yaml | 6 + ...ax_port-check_enhancement-c95dd94328f31524.yaml | 6 + .../promotion_offline_r1_fix-f7a008d0d13a3eff.yaml | 8 + .../promotion_rdfg_num_fix-65a5838277ac8edf.yaml | 6 + ...ure-active-active-support-dbd0d3da3ab64e64.yaml | 7 + .../pure-storage-add-qos-37958a90beff12d6.yaml | 4 + .../pure_fc_personality-3cada97fc940e498.yaml | 5 + .../pure_tempest_cg_fix-913d405f7487de00.yaml | 5 + ...-on-retype-with-snapshots-2d9fc7b2c75f899d.yaml | 7 + .../quota-sync-migrating-2c99e134e117a945.yaml | 7 + .../quota-sync-temporary-b4103ebc2c484c89.yaml | 8 + ...ota-until_refresh-updated-d35e8530f30c5522.yaml | 6 + .../quota-usage-duplicates-c00725089da7bbd8.yaml | 5 + ...emove-nested-quota-driver-8b56f03694e3a694.yaml | 6 + ...nd-request-timeout-issues-56f7a7659c7ec775.yaml | 7 + ...icate-volume-request-lost-adefacda1298dc62.yaml | 14 + ...or-on-cluster-rebalancing-515bf41104cd181a.yaml | 8 + .../store-volume-format-info-1e17e029a9a9e578.yaml | 11 + ...for-global-mirror-volumes-e7091ac130e41cbd.yaml | 5 + ...pshot-globalmirror-volume-e70fdb9115020283.yaml | 4 + ...y-encryption-known-issues-4078b6b066e51553.yaml | 64 + .../notes/wallaby-prelude-661b619978e1b339.yaml | 5 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 2059 +++++++++++++++++++- releasenotes/source/victoria.rst | 6 + reno.yaml | 84 + requirements.txt | 117 +- setup.cfg | 18 + test-requirements.txt | 22 +- tools/coding-checks.sh | 2 +- tools/mypywrap.sh | 24 + tox.ini | 34 +- 601 files changed, 35170 insertions(+), 12129 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index 2330f305b..307153250 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -29,0 +30,3 @@ rbd # LGPLv2.1 +# RBD-iSCSI +rbd-iscsi-client # Apache-2.0 + diff --git a/requirements.txt b/requirements.txt index 98695d376..48af461c4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,6 @@ -pbr!=2.1.0,>=5.4.1 # Apache-2.0 -decorator>=4.1.0 # BSD -eventlet>=0.26.0 # MIT -greenlet>=0.4.15 # MIT -httplib2>=0.9.1 # MIT -importlib_metadata>=1.7.0;python_version<'3.8' # Apache-2.0 +pbr>=5.5.1 # Apache-2.0 +decorator>=4.4.2 # BSD +eventlet>=0.30.1 # MIT +greenlet>=0.4.16 # MIT +httplib2>=0.18.1 # MIT +importlib_metadata>=3.1.1;python_version<'3.8' # Apache-2.0 @@ -13,21 +13,21 @@ jsonschema>=3.2.0 # MIT -keystoneauth1>=3.14.0 # Apache-2.0 -keystonemiddleware>=4.21.0 # Apache-2.0 -lxml>=4.2.0 # BSD -oauth2client!=4.0.0,>=1.5.0 # Apache-2.0 -oslo.config>=6.11.0 # Apache-2.0 -oslo.concurrency>=3.26.0 # Apache-2.0 -oslo.context>=2.23.0 # Apache-2.0 -oslo.db>=6.0.0 # Apache-2.0 -oslo.log>=3.44.0 # Apache-2.0 -oslo.messaging>=6.4.0 # Apache-2.0 -oslo.middleware>=3.31.0 # Apache-2.0 -oslo.policy>=1.44.1 # Apache-2.0 -oslo.privsep>=2.3.0 # Apache-2.0 -oslo.reports>=1.18.0 # Apache-2.0 -oslo.rootwrap>=5.8.0 # Apache-2.0 -oslo.serialization>=2.25.0 # Apache-2.0 -oslo.service>=2.0.0 # Apache-2.0 -oslo.upgradecheck>=0.1.0 # Apache-2.0 -oslo.utils>=3.40.2 # Apache-2.0 -oslo.versionedobjects>=1.31.2 # Apache-2.0 -osprofiler>=1.4.0 # Apache-2.0 +keystoneauth1>=4.2.1 # Apache-2.0 +keystonemiddleware>=9.1.0 # Apache-2.0 +lxml>=4.5.2 # BSD +oauth2client>=4.1.3 # Apache-2.0 +oslo.config>=8.3.2 # Apache-2.0 +oslo.concurrency>=4.4.0 # Apache-2.0 +oslo.context>=3.1.1 # Apache-2.0 +oslo.db>=8.4.0 # Apache-2.0 +oslo.log>=4.4.0 # Apache-2.0 +oslo.messaging>=12.5.0 # Apache-2.0 +oslo.middleware>=4.1.1 # Apache-2.0 +oslo.policy>=3.6.2 # Apache-2.0 +oslo.privsep>=2.4.0 # Apache-2.0 +oslo.reports>=2.2.0 # Apache-2.0 +oslo.rootwrap>=6.2.0 # Apache-2.0 +oslo.serialization>=4.1.0 # Apache-2.0 +oslo.service>=2.5.0 # Apache-2.0 +oslo.upgradecheck>=1.1.1 # Apache-2.0 +oslo.utils>=4.8.0 # Apache-2.0 +oslo.versionedobjects>=2.3.0 # Apache-2.0 +osprofiler>=3.4.0 # Apache-2.0 @@ -35,17 +35,17 @@ packaging>=20.4 -paramiko>=2.7.1 # LGPLv2.1+ -Paste>=2.0.2 # MIT -PasteDeploy>=1.5.0 # MIT -psutil>=3.2.2 # BSD -pyparsing>=2.2.1 # MIT -python-barbicanclient>=4.9.0 # Apache-2.0 -python-glanceclient>=2.15.0 # Apache-2.0 -python-keystoneclient>=3.15.0 # Apache-2.0 -python-novaclient>=9.1.0 # Apache-2.0 -python-swiftclient>=3.2.0 # Apache-2.0 -pytz>=2015.7 # MIT -requests>=2.18.0,!=2.20.0 # Apache-2.0 -Routes>=2.3.1 # MIT -taskflow>=3.8.0 # Apache-2.0 -rtslib-fb>=2.1.65 # Apache-2.0 -six>=1.11.0 # MIT -SQLAlchemy>=1.3.0 # MIT +paramiko>=2.7.2 # LGPLv2.1+ +Paste>=3.4.3 # MIT +PasteDeploy>=2.1.0 # MIT +psutil>=5.7.2 # BSD +pyparsing>=2.4.7 # MIT +python-barbicanclient>=5.0.1 # Apache-2.0 +python-glanceclient>=3.2.2 # Apache-2.0 +python-keystoneclient>=4.1.1 # Apache-2.0 +python-novaclient>=17.2.1 # Apache-2.0 +python-swiftclient>=3.10.1 # Apache-2.0 +pytz>=2020.1 # MIT +requests>=2.25.1 # Apache-2.0 +Routes>=2.4.1 # MIT +taskflow>=4.5.0 # Apache-2.0 +rtslib-fb>=2.1.74 # Apache-2.0 +six>=1.15.0 # MIT +SQLAlchemy>=1.3.19 # MIT @@ -53,14 +53,15 @@ sqlalchemy-migrate>=0.13.0 # Apache-2.0 -stevedore>=1.31.0 # Apache-2.0 -tabulate>=0.8.5 # MIT -tenacity>=6.1.0 # Apache-2.0 -WebOb>=1.7.1 # MIT -oslo.i18n>=3.24.0 # Apache-2.0 -oslo.vmware>=2.35.0 # Apache-2.0 -os-brick>=4.0.1 # Apache-2.0 -os-win>=4.2.0 # Apache-2.0 -tooz>=1.58.0 # Apache-2.0 -google-api-python-client>=1.4.2 # Apache-2.0 -castellan>=1.3.0 # Apache-2.0 -cryptography>=2.1.4 # BSD/Apache-2.0 -cursive>=0.2.1 # Apache-2.0 -zstd>=1.4.5.0 # BSD +stevedore>=3.2.2 # Apache-2.0 +tabulate>=0.8.7 # MIT +tenacity>=6.3.1 # Apache-2.0 +WebOb>=1.8.6 # MIT +oslo.i18n>=5.0.1 # Apache-2.0 +oslo.vmware>=3.8.0 # Apache-2.0 +os-brick>=4.3.1 # Apache-2.0 +os-win>=5.4.0 # Apache-2.0 +tooz>=2.7.1 # Apache-2.0 +google-api-python-client>=1.11.0 # Apache-2.0 +castellan>=3.6.0 # Apache-2.0 +cryptography>=3.1 # BSD/Apache-2.0 +cursive>=0.2.2 # Apache-2.0 +zstd>=1.4.5.1 # BSD +boto3>=1.16.51 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 251ba522c..591debf04 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6 +6 @@ -hacking>=3.1.0,<3.2.0 # Apache-2.0 +hacking>=4.0.0,<4.1.0 # Apache-2.0 @@ -10,3 +10,3 @@ flake8-logging-format>=0.6.0 # Apache-2.0 -stestr>=2.2.0 # Apache-2.0 -coverage!=4.4,>=4.1 # Apache-2.0 -ddt>=1.2.1 # MIT +stestr>=3.1.0 # Apache-2.0 +coverage>=5.5 # Apache-2.0 +ddt>=1.4.1 # MIT @@ -14,4 +14,4 @@ fixtures>=3.0.0 # Apache-2.0/BSD -oslotest>=3.2.0 # Apache-2.0 -PyMySQL>=0.8.0 # MIT License -psycopg2>=2.8 # LGPL/ZPL -SQLAlchemy-Utils>=0.36.1 # BSD License +oslotest>=4.4.1 # Apache-2.0 +PyMySQL>=0.10.0 # MIT License +psycopg2>=2.8.5 # LGPL/ZPL +SQLAlchemy-Utils>=0.36.8 # BSD License @@ -23,3 +23,3 @@ bandit==1.6.0 # Apache-2.0 -doc8>=0.6.0 # Apache-2.0 -reno>=3.1.0 # Apache-2.0 -Pygments>=2.2.0 # BSD license +doc8>=0.8.1 # Apache-2.0 +mypy>=0.782 # MIT +moto>=1.3.15 # Apache-2.0
participants (1)
-
no-reply@openstack.org