We are thrilled to announce the release of: cinder 21.0.0: OpenStack Block Storage This release is part of the zed 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. 21.0.0 ^^^^^^ Bug Fixes * RBD Driver bug #1957073 (https://bugs.launchpad.net/cinder/+bug/1957073): Fixed snapshot deletion failure when its volume doesn't exist. Changes in cinder 20.0.0.0rc1..21.0.0 ------------------------------------- f1ebe259d Revert "PowerFlex driver - fix the display of the incorrect volume" fa9d323aa Fix release note for bug 1957073 d0a59a6fc Clarify description of encrypted volume transfer mv 511888faf Clarify encrypted volume transfer release note cf1089814 rbd: Fix snapshot delete when the source volume doesn't exist 9b9ba1338 Ceph backup: Close source file fda8d5280 Update TOX_CONSTRAINTS_FILE for stable/zed 11cd71a6e Update .gitreview for stable/zed ee67921a7 Fix Infinidat driver to use TLS/SSL communication f9201fb55 lightos: parse urls with urlparse for ipv6 support f1bb51c25 RBD backend QoS implementation 9cf599064 Infinidat: support for manage/unmanage API 1ae4ac448 PowerMax Driver - Fix for renaming GVG 2c25e2259 Infinidat: add support for revert to snapshot operation bf091e285 Dell EMC Unity driver in cinder bced44cb4 Imported Translations from Zanata 94c4eee52 Fix a typo in cinder/volume/drivers/infinidat.py 856d3e108 Fix and unify capacity calculations ecefc7d67 Support os-brick specific lock_path b0b35a874 NetApp ONTAP: Add revert to snapshot functions on REST client 1c3972752 NetApp ONTAP: Add volume migration functions on REST client d2b302885 Hitachi: fix to output resource lock message correctly a83b46b85 Imported Translations from Zanata 560ae9d66 NetApp ONTAP: Add volume replication functions on REST client 686eb45e1 Lightos - add lightos new volume states 0a33ddd68 NetApp NFS ONTAP: Deprecate Copy Offload Tool 147637b63 NetApp NFS: Clone image using copy file operation 00481aed7 NetApp ONTAP: Add core functions on REST client 4775ca937 NetApp ONTAP: Add REST Client for ONTAP c112542cf HPE 3PAR: Fix umanaged volumes & snapshots missing f0dded4d8 Imported Translations from Zanata bf3e51e5b [Pure Storage] Add replication support for NVMe driver f6a1b9c3e Fix a deprecation warning about regex 6eb2f4fb7 Update nova microversion for volume backed instance rebuild dc7c10148 db: Remove weird error handling code 0eb2d1f0a db: Remove unnecessary engine facade decorator 31cce0257 Tests: Randomize tests 138a22cb8 Tests: Fix linstor tests fbf981afd Tests: Fix versions view 6c96b1999 Tests: Fix PowerMax tests da377fbd2 Tests: Fix cmd tests 685e35c9b Tests: Fix NFS tests 8524779a6 Tests: Fix NetApp tests 73a53892b Tests: Fix Pure test e22789943 Tests: Fix zone manager tests c46d41719 Serialize message_* properties of RequestContext d59e41fb3 Add support for transferring encrypted volumes 05de32ece Fix volume caching in PowerFlex driver 023fa94bd Tests: Fix IBM XIV 493d0e6fc Tests: Fix 3par e92c4d01d Tests: fix quobyte breaking other tests b50847a0c Tests: Fix inspur unit test eb8409b3a Tests: Fix test runner never finishing 9dc820f2a TOX: Document install_command usage 81f117c55 Tests: Monkey patch before logs are loaded 1ef8e3ddc Tests: Fix service stopping on cleanup 10c96c297 Replace base64.encodestring with encodebytes dc6388b6f Update volume delete api-ref 2b731c820 [docs] Add info about releases aef79bcbd Inspur: : Eliminate timed delays in unit tests f3c1ed28d Veritas: Eliminate timed delays in unit tests 566e744eb Hitachi: Eliminate timed delays in unit tests f8e3d952f NetApp: Eliminate timed delays in unit tests d021a7098 DataCore: Eliminate timed delays in unit tests 2b752938e Doc: To update the portset feature details in IBM Spectrum Virtualize user guide 0df29396b [SVf] : Fix the SVC code level for lsfcportsetmember call 9ad1bb865 Address G004 in flake8-logging-format 0.7.4 43d851abb DEMC: Add support for trim/discard b1b09d408 PowerFlex driver - fix the display of the incorrect volume size on volume or snapshot creation. 6dd5e20c2 NetApp SolidFire: Fix RecursionError accessing undefined attributes 76947588d Imported Translations from Zanata dfbcca0d8 Add Pure Storage NVMe-RoCE driver dd2980e63 Add NVMe/TCP support to Dell EMC PowerStore driver a5ce77168 Add Cinder NFS driver for Dell PowerStore c54e6b26e Add additional transport type constants 693446394 Initial commit for Yadro Tatlin.UNIFIED driver 809433118 Change cinder-mypy job to voting d5058ed59 mypy: work around mypy bug #13214 e1138a126 Tests: RBD: Refactor mocks 6be6add3f Fix mypy job a25dcc851 Fix Infinidat driver to return all iSCSI portals 374efd157 [SVf]: Incorrect portset value during driver intialization a287eb35a Bump mypy version to 0.960 475445113 tests: Address UserWarning in tests d153ff262 HPE3PAR: Correct volume name in ERROR log a4ab9220f PowerStore driver - Request data validation fix 9509eb1c3 Move NFS job to voting 27b34f688 db: Remove irrelevant TODO e2dd2e3c0 Remove return from rpc cast method 75d5fabff Add a check for virtual_size at API layer 78775f2de Update docs for Hitachi driver 7bd5f899f Imported Translations from Zanata 9eccdc2fa mypy: cinder/api/common.py be100f18e Reintroduce DataCore driver 60c2a46d3 Fix flapping storage_protocol in get-pools befa5b5be Move bandit requirements to tox.ini 6d0a4432a Bump moto version to support py3.9 8a890c836 PowerMax Driver - Manage volume into correct storage group 69839a714 Update docs for powervault driver compatability a423d9f9d Log when waiting to acquire coordinator lock 4c24a3a54 mypy: api_utils 8e0075fcc tests: Fix invalid test ef910e59d db: Remove resolved TODO 3073d698f db: Remove use of 'as_scalar()' dce5f293f db: Don't use strings to indicate relationship names 58f97d052 db: Don't use legacy calling style of select() 77c924593 db: Don't use strings to indicate column, relationship paths 2ebaeba38 db: Don't pass strings to Connection.execute 10ca6cb65 Resolve invalid UUID warning 99457e307 db: Pass case.whens as positionals, not a list 0569e3450 models: Remove implicit coercion of SELECT to scalar subquery 238e7f892 tests: Enable SQLAlchemy 2.0 deprecation warnings 5c7fd3a70 Revert "Cleanup code duplication in cinder.cmd.backup module" a4ea2db29 NetApp ONTAP: Fix type error exception in get_volume_state 633c1fa9d Don't limit use of importlib-metadata to Python < 3.8 25d70a00c db: Move comment 52d6fb4ac Remove redundant line from host_manager.py db95afc1a pylint: Add additional ignored-modules 573a39eb1 ibm_storage: Remove unused _get_os_type method 147b24a00 PowerMax Driver - Check for moving to same target a719525c1 Add image_conversion_disable config 405173d47 Remove use of mock CONF object 13d2d0e3c [docs] Update PTL info in contributor guide ffe87d17b Imported Translations from Zanata 70590f991 Groups: remove unneeded "status" variable 7851d9173 tox.ini: combine functional-py* envs ef1650f87 Tests: Extend RBD deferred deletion interval ef741228d Report tri-state shared_targets for NVMe volumes e65c01af7 PowerMax Docs - Known issues section c577d184f pylint: skip ManageResource Mixin e6a264e4a mypy: service.py 04b6700f4 mypy: cinder/volume/volume_types.py cc160815b docs: update release cycle tasks b235048d6 Ceph: Remove unnecessary convert_str() calls 0d300c96a Scheduler Evaluator: raise recursion limit 5179e4f6b Use modern type annotation format for collections 5bf919dc1 Glance: remove _extract_attributes method 2f060e037 pylint: ibm_storage: Fix E0601 used-before-assignment error c1626d24b pylint: volume/api: Fix E0601 error 6b7111878 cmd/manage and coordination: Clean up exception handling e6f4ce1c4 pylint: Remove invalid pylint disable in Nexenta driver 8b55f6f1b pylint: tidy up clean_volume_locks 970ac584d pylint: Fix vmdk driver use before definition 66b44b8f3 pylint: ignore __original_module_threading errors 56d27404c [IBM DS8000] Fixed Detach for multi-attach volumes 52c8fd58b Remove single-use test function 98acb8222 RBD: Fix _show_msg_check_clone_v2_api dfb658aa5 mypy: annotate image/glance.py d41abbf53 Increase swap size to 4GB e071ee263 Docs: Document clone_image driver method 270763214 Doc: Improve name_id documentation 7755f8cdd Add releasenotes to drop python3.6|7 7b05eabac mypy: annotate remotefs 33de36884 Address pylint error 2caeccf3b db: Remove unnecessary session management 2b75fa302 Update Volume Delete rejection message 88769c61f Tests: add microversion consistency unit tests b6559c117 Seagate/Lenovo drivers: Update get_driver_options 77c886ab1 backup/swift: Add support sending service user token 7e04b5b0d Handle the case when tempest fails 3ed2f38e5 HPE 3PAR: In multi host env, fix multi-detach operation d1fd57ed5 Remove reference to removed nfs_*_ratio options 7ee223837 Fix example of failed migrarion for LVM->RBD be3a8279f Correct VolumeMigrationStatusField 53c13891b Prevent temporary volume from being deleted accidentally 998a654d7 Add REIMAGE_VOLUME message action 42c645052 Drop python3.6 support in testing runtime 91085df70 Run pylint tox env on all files by default 24cd0920f Remove contrib/block-box from zuul config 685c5fb95 [SVf] Delete/Extend issue in reverse replication 6386cbb0a Don't destroy existing backup by mistake on import 228d1c5e6 releasenotes: correct formatting error 0e6ba4834 Change key "cluster" to "cluster_name" 5cb4e21d9 Rename Dell EMC to Dell ddc0d39b3 [doc] update releasecycle tasks cf6e53b2e Add review best practices section 76de76646 [SVf]:Fix multiple lsvdisk calls for GMCV create volume operation 3e068b5ce Imported Translations from Zanata 9cb338b82 [doc] update driver review checklist b45379de3 Add statement about CI for backports 39e518456 Fix reported storage_protocol 68311a079 Fix cacheable capability f8f9bfabf [SVf] Resize of GMCV volumes in group b99e73e96 [SVf]:Fix retype failure for replication volume-type e6c535bf2 Remove reference to non-existing nfs_disk_util parameter b661d115f Added documentation about backup_file_size about memory usage 2b01518b0 db: Remove unused API c4a4c91ee db: Remove final users of 'get_session' 62ade4243 db: Final cleanup for context-based enginefacade 044790bd2 db: Migrate 'purge_deleted_rows' to enginefacade 2727029bc db: Migrate online upgrade helpers to enginefacade 8c65f4b6c db: Migrate "worker" APIs to enginefacade 3a3c29160 db: Migrate "image volume cache" APIs to enginefacade 43c1f3107 db: Migrate "driver initiator data" APIs to enginefacade 3975230ca db: Migrate "message" APIs to enginefacade 1cc431f1e db: Migrate "group snapshot" APIs to enginefacade bef3b3e6d db: Migrate "cg snapshot" APIs to enginefacade 14d49f35b db: Migrate "group" APIs to enginefacade 1435349ee db: Migrate "consistency group" APIs to enginefacade 630e10e54 db: Migrate "transfer" APIs to enginefacade d032bd7fb db: Migrate "backup", "backup metadata" APIs to enginefacade 0ac23f8ae db: Migrate "volume glance metadata" APIs to enginefacade df50d6322 db: Migrate "volume type encryption" APIs to enginefacade 8a6721de6 db: Migrate "qos specs" APIs to enginefacade 55ea73523 db: Migrate "volume type specs", "group type specs" APIs to enginefacade d0b0869d4 db: Migrate "volume type", "group type" APIs to enginefacade a3e4cc030 db: Migrate "snapshot metadata" APIs to enginefacade 2e8c5363e db: Migrate "snapshot" APIs to enginefacade 0a4a23514 db: Migrate "volume metadata" APIs to enginefacade 4ffe3139c db: Migrate "volume", "volume attachment" APIs to enginefacade bc9397073 db: Migrate "quota usage", "quota reservation" APIs to enginefacade 7c3f9b0b1 db: Migrate "quota class" APIs to enginefacade 29a43abd5 db: Migrate "quota" APIs to enginefacade bb2e0023d db: Migrate "cluster" APIs to enginefacade 8bf3d8593 db: Migrate "service" APIs to enginefacade a80580477 db: Indicate functions that should not be converted yet 36c530676 db: Drop support for MySQL 5.5 18d833dc8 Bump mypy version to 0.942 71a2b4fc2 Add info about code coverage job a37daf96c Remove privsep/hscli 01010152b cmd/manage: Correct db_sync() return b1ed75aa4 Tests: Add alembic to pylint ignores 5dbd94c73 Bump pylint to 2.13.4 8ea82668a RBD: Use static methods where possible bf23678fe Honor multipath config everywhere 90abed0a4 Fix wrong attribute to find remote address 61fa40b2b [docs] Update cinder-stable-maint description 6474afc3d Warn on driver detach errors 3b13eab89 NetApp ONTAP: Fixed get_ontap_version 2c4e0d4f8 Remove unneeded volume_types.get_all_types_by_group method 12a3e2050 PowerMax Docs - Clarify Replication Group d83a2289d Fix QOS computation d9d7f20c2 Change unsupported fileno() LOG to debug 04da59177 Imported Translations from Zanata 3d3b06179 Imported Translations from Zanata 74ce9c604 Remove extra volume_type DB fetch on volume manage 3ab151cdb [doc] Add info about backport policies d54e6cc6b Stop removing .pyc files for unit test runs 087ed3808 Tests: Reduce time waiting in Hitachi HBSD tests 07e0156c2 mypy: ceph backup driver 8088dc958 Prohibit volume manage to an encrypted volume type ce4cae9bf Docs: fix small typo on contributor gerrit f2835f056 Pure Storage - bump version numbers for Zed 7a575388f Tests: Reduce time waiting in Hitachi HBSD tests ccb18625b RBD: Remove last usage of "six" from RBD driver 8537730c8 Add Python3 zed unit tests fcf8ab1d8 Update master for stable/yoga e87bc62f1 Update doc8 ignore-path f8bc4abee tests: Correct typo d3afa4db0 mypy: set no_implicit_optional b99f2a493 db: Remove 'use_slave' arguments ebed7c270 tests: Don't use mock.Mock as fake context c4e9c4d05 tests: Silence a number of warnings ffb6ef6c4 tests: Restore - don't reset - warning filters a3256416c Hitachi: Add port scheduler 8f50a9fd2 Replace distutils with packaging in 3rd party drivers eba7286a0 Fix deprecation warnings caused by invalid UUIDs 6dda4bec2 Drivers: remove unused code 72962934a Add grenade-skip-level irrelevant-files config 6e836bda3 In support matrix, move Nimble driver entries next to HPE driver a1e34fc6d Add a unit test to keep microversions.py up to date 98f77d167 Only init message API in create volume when needed 373696fd5 Don't init backup API code for each create volume request 06b2b983d Solidfire: Clean up remaining usage of removed parameters bf0b6e794 Update new driver review checklist 42810d1a3 mypy: policy.py 6b97abc4e SF: Remove compat clone image code 20ab3134c PowerMax Driver - Retry on a symmetrix lock 1f67b918a api-ref: include links on backups list and details 84e2a47bc Add missing kwargs for spdk driver initialize_connection function 66fe1c17d JovianDSS: fix default value in documentation e1f6de6f8 PowerMax Driver - Improve error handling around deletes 35acd2b0a Sync rootwrap.conf from oslo.rootwrap 1b2742a3d NetApp: Support custom igroups 0df989f76 PowerMax Driver - Empty port info response 1bf615615 PowerFlex: update supported versions in driver documentation b7466f54f NetApp ONTAP: Fix check QoS min support for SVM account 862edca0d NFS: Fix generic revert to snapshot flow b7b830e9a NetApp SolidFire: Fix request errors while Element OS upgrade daf77efad Fix PowerFlex connector HTTPS certificate validation d6a603c48 doc: RBD: add documentation to configure RBD mirroring a8dc2be08 Make extension manager parameter optional e726c0794 RBD: Don't flatten temporary resources 52dfbcb3e PowerMax Driver - allow for None values in metadata 049549eeb Modify manner of retrieving volume_ref a5c80032f [NetApp] Fix iSCSI CHAP auth issue during volume attach 7feafe808 Fix unnecessary migration on retype Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .pylintrc | 5 +- .zuul.yaml | 18 +- api-ref/source/v3/ext-backups.inc | 2 + api-ref/source/v3/parameters.yaml | 22 + .../v3/samples/versions/version-show-response.json | 4 +- .../v3/samples/versions/versions-response.json | 4 +- .../volumes/v3.69/volume-create-response.json | 41 + .../volumes/v3.69/volume-show-response.json | 45 + .../volumes/v3.69/volume-update-response.json | 43 + .../v3.69/volumes-list-detailed-response.json | 47 + .../source/v3/samples/worker-cleanup-request.json | 2 +- api-ref/source/v3/volume-manage.inc | 6 +- api-ref/source/v3/volumes-v3-volumes.inc | 12 +- cinder/api/api_utils.py | 53 +- cinder/api/common.py | 102 +- cinder/api/contrib/volume_manage.py | 3 + cinder/api/microversions.py | 4 + cinder/api/middleware/auth.py | 2 +- cinder/api/openstack/api_version_request.py | 6 +- cinder/api/openstack/rest_api_version_history.rst | 17 + cinder/api/v3/views/volumes.py | 11 +- cinder/api/v3/volume_transfer.py | 8 +- cinder/api/v3/volumes.py | 2 +- cinder/api/views/capabilities.py | 9 +- cinder/api/views/scheduler_stats.py | 12 +- cinder/backup/api.py | 105 +- cinder/backup/chunkeddriver.py | 4 +- cinder/backup/drivers/ceph.py | 252 +- cinder/backup/drivers/posix.py | 5 +- cinder/backup/drivers/swift.py | 54 +- cinder/backup/manager.py | 6 +- cinder/backup/rpcapi.py | 2 +- cinder/cmd/api.py | 2 +- cinder/cmd/backup.py | 26 +- cinder/cmd/manage.py | 206 +- cinder/cmd/scheduler.py | 2 +- cinder/cmd/volume.py | 4 +- cinder/common/constants.py | 33 + cinder/common/sqlalchemyutils.py | 14 +- cinder/compute/nova.py | 4 +- cinder/context.py | 21 +- cinder/coordination.py | 39 +- cinder/db/api.py | 33 +- .../c92a3e68beed_make_shared_targets_nullable.py | 50 + cinder/db/sqlalchemy/api.py | 7596 ++++++++++++-------- cinder/db/sqlalchemy/models.py | 20 +- cinder/exception.py | 16 +- cinder/flow_utils.py | 10 +- cinder/image/glance.py | 174 +- cinder/image/image_utils.py | 102 +- cinder/interface/volume_driver.py | 89 +- cinder/keymgr/transfer.py | 107 + cinder/locale/de/LC_MESSAGES/cinder.po | 5978 --------------- cinder/locale/es/LC_MESSAGES/cinder.po | 5841 --------------- cinder/locale/ja/LC_MESSAGES/cinder.po | 15 +- cinder/locale/ko_KR/LC_MESSAGES/cinder.po | 15 +- cinder/locale/zh_CN/LC_MESSAGES/cinder.po | 40 +- cinder/manager.py | 3 - cinder/message/message_field.py | 11 + cinder/objects/fields.py | 2 +- cinder/objects/volume.py | 20 + cinder/objects/volume_type.py | 2 +- cinder/opts.py | 16 + cinder/policy.py | 36 +- cinder/privsep/hscli.py | 44 - cinder/rpc.py | 6 +- cinder/scheduler/base_weight.py | 18 +- cinder/scheduler/evaluator/evaluator.py | 15 +- cinder/scheduler/filter_scheduler.py | 15 +- cinder/scheduler/filters/capacity_filter.py | 50 +- cinder/scheduler/filters/driver_filter.py | 34 +- cinder/scheduler/flows/create_volume.py | 8 +- cinder/scheduler/host_manager.py | 53 +- cinder/scheduler/rpcapi.py | 16 +- cinder/scheduler/weights/goodness.py | 35 +- cinder/service.py | 92 +- cinder/service_auth.py | 21 +- .../api/contrib/test_volume_encryption_metadata.py | 6 +- .../unit/attachments/test_attachments_manager.py | 2 + .../volume/drivers/datacore/test_datacore_api.py | 732 ++ .../drivers/datacore/test_datacore_driver.py | 773 ++ .../volume/drivers/datacore/test_datacore_fc.py | 294 + .../volume/drivers/datacore/test_datacore_iscsi.py | 590 ++ .../drivers/datacore/test_datacore_passwd.py | 288 + .../volume/drivers/datacore/test_datacore_utils.py | 78 + .../volume/drivers/dell_emc/powerflex/__init__.py | 3 + .../dell_emc/powerflex/test_create_snapshot.py | 24 + .../drivers/dell_emc/powermax/powermax_data.py | 17 +- .../dell_emc/powermax/powermax_fake_objects.py | 5 +- .../dell_emc/powermax/test_powermax_common.py | 376 +- .../drivers/dell_emc/powermax/test_powermax_fc.py | 17 +- .../dell_emc/powermax/test_powermax_iscsi.py | 13 +- .../dell_emc/powermax/test_powermax_masking.py | 61 +- .../dell_emc/powermax/test_powermax_metadata.py | 31 + .../dell_emc/powermax/test_powermax_migrate.py | 6 +- .../dell_emc/powermax/test_powermax_performance.py | 6 +- .../dell_emc/powermax/test_powermax_provision.py | 8 +- .../dell_emc/powermax/test_powermax_replication.py | 46 +- .../dell_emc/powermax/test_powermax_rest.py | 209 +- .../dell_emc/powermax/test_powermax_utils.py | 23 +- .../volume/drivers/dell_emc/powerstore/__init__.py | 5 + .../drivers/dell_emc/powerstore/test_base.py | 22 +- .../drivers/dell_emc/powerstore/test_client.py | 103 + .../volume/drivers/dell_emc/powerstore/test_nfs.py | 462 ++ .../dell_emc/powerstore/test_replication.py | 5 +- .../powerstore/test_volume_attach_detach.py | 34 + .../volume/drivers/dell_emc/unity/test_adapter.py | 4 +- .../volume/drivers/dell_emc/vnx/test_adapter.py | 2 +- .../drivers/hitachi/test_hitachi_hbsd_rest_fc.py | 55 +- .../hitachi/test_hitachi_hbsd_rest_iscsi.py | 48 +- .../unit/volume/drivers/ibm/test_storwize_svc.py | 434 +- .../unit/volume/drivers/ibm/test_xiv_proxy.py | 2 +- .../drivers/inspur/as13000/test_as13000_driver.py | 8 +- .../drivers/inspur/instorage/test_replication.py | 4 + .../volume/drivers/lightos/test_lightos_storage.py | 158 +- .../drivers/netapp/dataontap/client/fakes.py | 1489 +++- .../drivers/netapp/dataontap/client/test_api.py | 330 +- .../netapp/dataontap/client/test_client_base.py | 53 +- .../netapp/dataontap/client/test_client_cmode.py | 51 +- .../dataontap/client/test_client_cmode_rest.py | 3709 ++++++++++ .../unit/volume/drivers/netapp/dataontap/fakes.py | 254 +- .../drivers/netapp/dataontap/test_block_base.py | 27 +- .../drivers/netapp/dataontap/test_block_cmode.py | 65 +- .../drivers/netapp/dataontap/test_nfs_cmode.py | 208 +- .../netapp/dataontap/utils/test_capabilities.py | 40 - .../netapp/dataontap/utils/test_data_motion.py | 31 +- .../drivers/netapp/dataontap/utils/test_utils.py | 52 +- .../volume/drivers/solidfire/test_solidfire.py | 37 +- .../drivers/veritas_access/test_veritas_iscsi.py | 4 +- .../volume/drivers/yadro/test_tatlin_client.py | 452 ++ .../volume/drivers/yadro/test_tatlin_common.py | 519 ++ .../unit/volume/drivers/yadro/test_tatlin_iscsi.py | 338 + .../unit/volume/drivers/yadro/test_tatlin_utils.py | 83 + .../unit/volume/flows/test_create_volume_flow.py | 69 +- .../unit/zonemanager/test_brcd_fc_zone_driver.py | 16 +- .../unit/zonemanager/test_cisco_fc_zone_driver.py | 23 +- cinder/transfer/api.py | 42 +- cinder/utils.py | 165 +- cinder/volume/api.py | 78 +- cinder/volume/driver.py | 73 +- cinder/volume/driver_utils.py | 5 +- cinder/volume/drivers/ceph/rbd_iscsi.py | 15 +- cinder/volume/drivers/datacore/api.py | 1065 +++ cinder/volume/drivers/datacore/driver.py | 845 +++ cinder/volume/drivers/datacore/exception.py | 36 + cinder/volume/drivers/datacore/fc.py | 376 + cinder/volume/drivers/datacore/iscsi.py | 446 ++ cinder/volume/drivers/datacore/passwd.py | 165 + cinder/volume/drivers/datacore/utils.py | 72 + cinder/volume/drivers/datera/datera_api21.py | 3 +- cinder/volume/drivers/datera/datera_api22.py | 3 +- cinder/volume/drivers/dell_emc/powerflex/driver.py | 29 +- .../drivers/dell_emc/powerflex/rest_client.py | 8 + cinder/volume/drivers/dell_emc/powerflex/utils.py | 4 +- cinder/volume/drivers/dell_emc/powermax/common.py | 190 +- cinder/volume/drivers/dell_emc/powermax/fc.py | 7 +- cinder/volume/drivers/dell_emc/powermax/iscsi.py | 7 +- cinder/volume/drivers/dell_emc/powermax/masking.py | 201 +- .../volume/drivers/dell_emc/powermax/metadata.py | 16 +- .../volume/drivers/dell_emc/powermax/provision.py | 7 +- cinder/volume/drivers/dell_emc/powermax/rest.py | 165 +- cinder/volume/drivers/dell_emc/powermax/utils.py | 3 + .../volume/drivers/dell_emc/powerstore/adapter.py | 117 +- .../volume/drivers/dell_emc/powerstore/client.py | 66 +- .../volume/drivers/dell_emc/powerstore/driver.py | 11 +- cinder/volume/drivers/dell_emc/powerstore/nfs.py | 238 + .../volume/drivers/dell_emc/powerstore/options.py | 7 +- cinder/volume/drivers/dell_emc/powerstore/utils.py | 11 +- .../drivers/dell_emc/sc/storagecenter_api.py | 3 +- .../drivers/dell_emc/sc/storagecenter_common.py | 3 +- .../volume/drivers/dell_emc/sc/storagecenter_fc.py | 3 +- cinder/volume/drivers/dell_emc/unity/adapter.py | 9 +- cinder/volume/drivers/dell_emc/unity/utils.py | 4 +- cinder/volume/drivers/dell_emc/xtremio.py | 5 +- .../drivers/fujitsu/eternus_dx/eternus_dx_fc.py | 3 +- .../drivers/fujitsu/eternus_dx/eternus_dx_iscsi.py | 3 +- cinder/volume/drivers/fusionstorage/dsware.py | 3 +- cinder/volume/drivers/hedvig/hedvig_cinder.py | 3 +- cinder/volume/drivers/hitachi/hbsd_common.py | 132 +- cinder/volume/drivers/hitachi/hbsd_fc.py | 3 + cinder/volume/drivers/hitachi/hbsd_iscsi.py | 1 + cinder/volume/drivers/hitachi/hbsd_rest.py | 6 +- cinder/volume/drivers/hitachi/hbsd_rest_api.py | 2 +- cinder/volume/drivers/hitachi/hbsd_rest_fc.py | 174 +- cinder/volume/drivers/hitachi/hbsd_rest_iscsi.py | 14 +- cinder/volume/drivers/hitachi/hbsd_utils.py | 60 +- cinder/volume/drivers/hpe/hpe_3par_base.py | 14 + cinder/volume/drivers/hpe/hpe_3par_common.py | 160 +- cinder/volume/drivers/hpe/hpe_3par_fc.py | 3 +- cinder/volume/drivers/hpe/hpe_3par_iscsi.py | 3 +- cinder/volume/drivers/hpe/nimble.py | 31 +- cinder/volume/drivers/huawei/huawei_driver.py | 5 +- cinder/volume/drivers/ibm/flashsystem_common.py | 4 +- cinder/volume/drivers/ibm/gpfs.py | 5 +- .../volume/drivers/ibm/ibm_storage/ds8k_helper.py | 56 +- .../volume/drivers/ibm/ibm_storage/ds8k_proxy.py | 13 +- cinder/volume/drivers/ibm/ibm_storage/proxy.py | 7 - .../volume/drivers/ibm/storwize_svc/replication.py | 112 +- .../ibm/storwize_svc/storwize_svc_common.py | 275 +- .../drivers/ibm/storwize_svc/storwize_svc_iscsi.py | 3 +- cinder/volume/drivers/infinidat.py | 469 +- .../drivers/infortrend/raidcmd_cli/common_cli.py | 1 - .../drivers/inspur/as13000/as13000_driver.py | 4 +- .../drivers/inspur/instorage/instorage_common.py | 28 +- .../volume/drivers/kaminario/kaminario_common.py | 8 +- cinder/volume/drivers/kaminario/kaminario_fc.py | 3 +- cinder/volume/drivers/kaminario/kaminario_iscsi.py | 3 +- cinder/volume/drivers/kioxia/kumoscale.py | 3 +- cinder/volume/drivers/lenovo/lenovo_common.py | 8 + cinder/volume/drivers/lenovo/lenovo_fc.py | 2 +- cinder/volume/drivers/lenovo/lenovo_iscsi.py | 3 +- cinder/volume/drivers/lightos.py | 29 +- cinder/volume/drivers/linstordrv.py | 20 +- cinder/volume/drivers/macrosan/devop_client.py | 22 - cinder/volume/drivers/macrosan/driver.py | 5 +- cinder/volume/drivers/nec/cli.py | 52 - cinder/volume/drivers/nec/volume_common.py | 12 - cinder/volume/drivers/nec/volume_helper.py | 5 +- .../volume/drivers/netapp/dataontap/block_base.py | 35 +- .../volume/drivers/netapp/dataontap/block_cmode.py | 102 +- .../volume/drivers/netapp/dataontap/client/api.py | 250 +- .../drivers/netapp/dataontap/client/client_base.py | 21 +- .../netapp/dataontap/client/client_cmode.py | 84 +- .../netapp/dataontap/client/client_cmode_rest.py | 2521 +++++++ cinder/volume/drivers/netapp/dataontap/nfs_base.py | 21 +- .../volume/drivers/netapp/dataontap/nfs_cmode.py | 140 +- .../drivers/netapp/dataontap/utils/capabilities.py | 50 +- .../drivers/netapp/dataontap/utils/data_motion.py | 27 +- .../volume/drivers/netapp/dataontap/utils/utils.py | 32 +- cinder/volume/drivers/netapp/options.py | 29 +- cinder/volume/drivers/netapp/utils.py | 9 + cinder/volume/drivers/nexenta/iscsi.py | 3 +- cinder/volume/drivers/nexenta/nfs.py | 5 +- cinder/volume/drivers/nexenta/ns5/iscsi.py | 3 +- cinder/volume/drivers/nexenta/ns5/nfs.py | 3 +- cinder/volume/drivers/nexenta/utils.py | 5 - cinder/volume/drivers/nfs.py | 8 + cinder/volume/drivers/open_e/iscsi.py | 3 +- .../drivers/open_e/jovian_common/jdss_common.py | 2 +- cinder/volume/drivers/prophetstor/dpl_fc.py | 19 +- cinder/volume/drivers/prophetstor/dpl_iscsi.py | 3 +- cinder/volume/drivers/prophetstor/dplcommon.py | 15 +- cinder/volume/drivers/pure.py | 236 +- cinder/volume/drivers/qnap.py | 3 +- cinder/volume/drivers/rbd.py | 493 +- cinder/volume/drivers/remotefs.py | 356 +- cinder/volume/drivers/rsd.py | 11 +- cinder/volume/drivers/san/san.py | 4 - cinder/volume/drivers/sandstone/sds_driver.py | 3 +- cinder/volume/drivers/solidfire.py | 127 +- cinder/volume/drivers/spdk.py | 7 +- cinder/volume/drivers/storpool.py | 3 +- cinder/volume/drivers/stx/client.py | 8 - cinder/volume/drivers/stx/common.py | 8 + cinder/volume/drivers/stx/fc.py | 7 +- cinder/volume/drivers/stx/iscsi.py | 7 +- .../volume/drivers/toyou/acs5000/acs5000_common.py | 3 +- cinder/volume/drivers/toyou/acs5000/acs5000_fc.py | 3 +- .../volume/drivers/toyou/acs5000/acs5000_iscsi.py | 3 +- .../volume/drivers/veritas_access/veritas_iscsi.py | 4 +- cinder/volume/drivers/veritas_cnfs.py | 3 +- cinder/volume/drivers/vmware/fcd.py | 3 +- cinder/volume/drivers/vmware/vmdk.py | 5 +- cinder/volume/drivers/windows/iscsi.py | 3 +- cinder/volume/drivers/windows/smbfs.py | 8 - cinder/volume/drivers/yadro/__init__.py | 0 cinder/volume/drivers/yadro/tatlin_api.py | 28 + cinder/volume/drivers/yadro/tatlin_client.py | 673 ++ cinder/volume/drivers/yadro/tatlin_common.py | 778 ++ cinder/volume/drivers/yadro/tatlin_exception.py | 27 + cinder/volume/drivers/yadro/tatlin_iscsi.py | 174 + cinder/volume/drivers/yadro/tatlin_utils.py | 88 + cinder/volume/drivers/zadara/common.py | 12 - cinder/volume/drivers/zadara/exception.py | 4 - cinder/volume/drivers/zadara/zadara.py | 5 +- cinder/volume/flows/api/create_volume.py | 26 +- cinder/volume/flows/manager/create_volume.py | 59 +- cinder/volume/manager.py | 123 +- cinder/volume/rpcapi.py | 8 +- cinder/volume/targets/iet.py | 4 +- cinder/volume/targets/iscsi.py | 3 +- cinder/volume/targets/nvmeof.py | 3 +- cinder/volume/volume_types.py | 118 +- cinder/volume/volume_utils.py | 84 +- .../drivers/ceph-rbd-volume-driver.rst | 80 + .../drivers/datacore-volume-driver.rst | 370 + .../drivers/dell-emc-powerflex-driver.rst | 30 +- .../drivers/dell-emc-powermax-driver.rst | 106 +- .../drivers/dell-emc-powerstore-driver.rst | 29 +- .../drivers/dell-emc-powerstore-nfs.rst | 61 + .../drivers/dell-emc-powervault-me.rst | 13 +- .../drivers/dell-emc-unity-driver.rst | 8 +- .../block-storage/drivers/dell-emc-vnx-driver.rst | 2 +- .../drivers/dell-emc-xtremio-driver.rst | 2 +- .../drivers/dell-storagecenter-driver.rst | 28 +- .../block-storage/drivers/hitachi-vsp-driver.rst | 29 +- .../drivers/infinidat-volume-driver.rst | 19 + .../drivers/open-e-joviandss-driver.rst | 10 +- .../block-storage/drivers/pure-storage-driver.rst | 25 +- .../drivers/yadro-tatlin-volume-driver.rst | 125 + .../configuration/tables/cinder-storwize.inc | 2 + .../contributor/drivers_locking_examples.rst | 6 +- driver-requirements.txt | 3 + etc/cinder/rootwrap.conf | 6 + etc/cinder/rootwrap.d/volume.filters | 3 + mypy-files.txt | 8 + playbooks/tempest-and-cinderlib-run.yaml | 7 +- ...dd-datacore-volume-driver-5c1802798425acc1.yaml | 4 + .../added-virtual-size-check-42a84f6b24366e5d.yaml | 10 + ..._disable_image_conversion-ebf33ce9d5edf724.yaml | 36 + ...nidat-add-snapshot-revert-1bab97e85ff10780.yaml | 4 + ...erstore-nfs-cinder-driver-b743a8a89acafa35.yaml | 4 + ...dro-tatlin-unified-driver-122218f077d70312.yaml | 4 + ...th-issue-in-netapp-driver-e92eaa431d6fcbac.yaml | 7 + ...or-certificate-validation-707b4f9f2077d4bc.yaml | 4 + .../notes/bug-1936848-6ecc78e0e970419a.yaml | 8 + ...api-raise-attribute-error-40efd74bb92b9482.yaml | 10 + ...-manage-to-encrypted-type-b5b5d7f8360f037f.yaml | 8 + ..._for_multi_attach_volumes-b86940efafa926f2.yaml | 8 + ...057-fix-get-ontap-version-4d9fa1f6c5d2eaf3.yaml | 7 + .../notes/bug-1957073-0d1307a8637a62b7.yaml | 6 + ..._of_GMCV_volumes_in_group-f9a176153518204c.yaml | 7 + ...ue_in_reverse_replication-952164a73b336a6d.yaml | 7 + ...r_create_volume_operation-338b009bca72ee60.yaml | 7 + ...1965847-fix-backup-import-3b3ccdf740a13cff.yaml | 7 + ..._for_volume_part_of_group-59e3f5d652a4707c.yaml | 7 + ...r_replication_volume-type-4e0671b299315f4b.yaml | 8 + ...rs-used-in-reimage-volume-48d5b8008ec82ea6.yaml | 5 + ...g-1970768-temp-vol-delete-6586a13f08d7a5c1.yaml | 6 + ..._the_wrong_SVC_code_level-db06c4eca902f389.yaml | 7 + ...bug-1978729-cinder-backup-4cd87c4d71b7713e.yaml | 8 + ...nidat-iscsi-fix-multipath-3f8a0be5f541c66e.yaml | 7 + ...infinidat-fix-ssl-options-6ddd852c24b16760.yaml | 9 + ...ror_w.r.t_default_portset-3992a060cca2adcb.yaml | 7 + .../ceph-backup-no-flatten-36557727e9d73b2b.yaml | 7 + ...ackup-swift-service-token-9b86e8e73ebd2a22.yaml | 9 + releasenotes/notes/demc-trim-bb2165f74a5703a6.yaml | 13 + releasenotes/notes/diff-srps-674f2c0cc893db4b.yaml | 8 + .../drop-mysql-5-5-support-fe3ececc3c9b9915.yaml | 4 + .../drop-python-3-6-and-3-7-fa2dda5d6be0cad6.yaml | 5 + .../fix-cacheable-capability-f893520d79c3db60.yaml | 5 + .../fix-netapp-custom-igroup-e049b4f3b341dd54.yaml | 5 + .../fix-nfs-revert-to-snap-adc04204b3661d66.yaml | 6 + ...ix-powerflex-volume-cache-da3fa1769ef78ae8.yaml | 10 + .../fix-storage_protocol-6baf55e13249463c.yaml | 19 + ...ssary-migration-on-retype-67cedb1bd8e4c4b2.yaml | 6 + .../notes/get-driver-opts-924f72346ca1e459.yaml | 5 + ...vsp-fix-resource-lock-msg-5a119426e6c65998.yaml | 6 + ...itachi-vsp-port-scheduler-207e01b3cd13350b.yaml | 14 + ...e-3par-add-get-manageable-2926f21116c98599.yaml | 5 + ...-detach-in-multi-host-env-3f2211f29a336b6e.yaml | 6 + ...infinidat-manage-unmanage-ccc42b79d741369f.yaml | 6 + releasenotes/notes/lock_path-940af881b2112bbe.yaml | 12 + ...uring-snapmirror-creation-bea36a69d443e86f.yaml | 9 + ...pp-nfs-copy-offload-image-812c7152d9fe4aae.yaml | 9 + ...ecate-copy-offload-option-f9d6fe8e3dfafb04.yaml | 5 + ...upport-svm-scoped-account-a8458445d459023c.yaml | 5 + ...app-ontap-rest-api-client-d889cfa895f01249.yaml | 19 + ...eptions-while-eos-upgrade-1e3df89b5fb79165.yaml | 7 + ...ofiler-infinite-recursion-ec3d4794c89b2f83.yaml | 7 + ...werstore-nvme-tcp-support-ee37cf4fdbce1621.yaml | 4 + ...e-request-data-validation-6268f2ed07b7bf40.yaml | 6 + .../pure-storage-nvme-driver-f4217c00379c4827.yaml | 7 + ...ackend-qos-implementation-0e141b742e277d26.yaml | 4 + releasenotes/notes/slug-b6a0fc3db0a2dd45.yaml | 8 + ...transfer-encrypted-volume-2f040a6993435e79.yaml | 12 + .../use-multipath-everywhere-3707593eebdaf9eb.yaml | 14 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 3128 +++++++- releasenotes/source/yoga.rst | 6 + requirements.txt | 4 +- setup.cfg | 9 +- test-requirements.txt | 7 +- tools/config/cinder-config-generator.conf | 1 + tools/mypywrap.sh | 2 +- tox.ini | 58 +- 460 files changed, 38604 insertions(+), 19354 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index cc8da8eb5..0240e7e78 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -47,0 +48,3 @@ dfs_sdk>=1.2.25 # Apache-2.0 + +# DataCore SANsymphony +websocket-client>=1.3.2 # LGPLv2+ diff --git a/requirements.txt b/requirements.txt index 9c5cbc1fd..10b066d5c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10 +10 @@ httplib2>=0.18.1 # MIT -importlib_metadata>=3.1.1;python_version<'3.8' # Apache-2.0 +importlib_metadata>=3.1.1 # Apache-2.0 @@ -59 +59 @@ oslo.vmware>=3.10.0 # Apache-2.0 -os-brick>=5.2.0 # Apache-2.0 +os-brick>=6.0.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 51a74cf7d..030196a60 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -20,3 +19,0 @@ testtools>=2.4.0 # MIT -# bandit is not included in upper-constraints, -# so we need to pin it here to a known working version -bandit==1.6.0 # Apache-2.0 @@ -24,2 +21,2 @@ doc8>=0.8.1 # Apache-2.0 -mypy>=0.910 # MIT -moto>=1.3.15 # Apache-2.0 +mypy>=0.960 # MIT +moto>=2.2.5 # Apache-2.0
participants (1)
-
no-reply@openstack.org