We are amped to announce the release of: manila 18.0.1: Shared Storage for OpenStack This release is part of the caracal release series. The source is available from: https://opendev.org/openstack/manila Download the package from: https://tarballs.openstack.org/manila/ Please report issues through: https://bugs.launchpad.net/manila/+bugs For more details, please see below. Changes in manila 17.0.0..18.0.1 -------------------------------- a0bcf312f Add more tests for share/snapshot deferred deletion 4f36847de Human readable export location NetApp driver changes 8806fbe1c refactoring: modify function parameters and annotations to match 5a0ebacb8 Deprecate the Ceph NFSProtocolHelper 558288e00 Add support for share/snapshot deferred deletion 6909a7c21 Share backups enhancement dfbf51baf Implement the share backup for NetApp driver 26ec5dadb [doc] Update CephFS admin guide 37f1564c6 Add doc for service disable reason b7a1b5b2c Forbid resetting state of active replicas 987352d6c Change admin metadata config option name ea1ac5f44 Human readable export location core implementation 5470961fb reno: Update master for unmaintained/xena ff3f875d5 reno: Update master for unmaintained/wallaby 52a995c1a reno: Update master for unmaintained/victoria 12e1ec495 Deprecate Windows SMB share driver 7e585a3bb Add cephfs filesystem to shares metadata 12ef157c3 Add disabled reason field to service. 696f9ea8a Drop reference to WalkVersionsMixin from oslo.db 342971760 Add a new config option to specify admin metadata a50f699d4 [CI] Drop glusterfs jobs 9cfb03e07 reno: Update master for unmaintained/yoga c3b8afc47 is_valid_ip_address: Catch non-string values early c8ed5b05e db: Fix charset updates in migrations f2afe01ab Deprecate untested Tegile share driver 33d413bae Remove unused oslo.db.concurrency namespace options 436c89fef Deprecate GlusterFS (Native) Driver 7c0ece1a1 [CI] Grenade testing updates 51f78b8e8 tests: has_calls -> assert_has_calls 47e7c78f3 Conditional Import for FIPS Compliance 09c51d297 Retry on connection error to neutron b4985cb2c Changed user message, and removed unnecessary log message 19a91e055 Dell EMC: Deprecate VNX driver aabbd0259 Dell EMC: Drop "vmax" alias 2aa2ed511 api: Dump config options when deployed as a wsgi app ecda09a14 Change misleading user message when user services are down 5d48410d0 Fixing skipped default override for CORS options b488f4233 Bump hacking 8eddd6c00 Clean up removed services from devstack options 346ff0134 Drop upgrade scripts for old releases d1edbdbae Add new feature guidelines documentation 2c2788fa2 Drop logic for Ubuntu 14.04 2df0b1ab9 Update supported python versions b3577bb9c Remove unnecessary setup_hook eb12c770c Python 3.12: use assertAlmostEqual 54c4f91aa NetApp: Stop clone split while deleting child share. ecf682336 [Pure Storage] Add support for multiple data VIPs 5946f72b7 TrivialFix: Fix arguments on a mock of __init__ d053e437d Pure Storage - bump version numbers for 2024.1 (Caracal) 2235fea5c Fix typo in the release note for bug 2038607 6a1ad1c2f db: Remove unnecessary helper b24ef91f2 Change status and error handling for /shares API 5d5ece51e update irc dcoumentation 609b925a5 Don't fail remove-export in NFS-Ganesha 8229f3e5c Fix BadRequest from share-server-migration-get-progress cc572226c Fix python shebang ad29f8a06 Fix policy check in metadata APIs 8f1e605ad Fix parsing of protocol access mapping options cd767dd46 Delete share network subnet during network deletion caaf8fd9e [Doc] Add a quick and dirty IRC guide 2da876749 [Doc] Annotate max api microversion in Bobcat 998557e4d Fix missing manila-data options 129dc9b28 Add service_network_host option for port host 8615ce254 NetApp Derive vserver name from share server identifier 1f9d51fdb NetApp API failed. Reason - 18177:Relationship is in use by SnapMirror in local cluster f500c5877 tests: Add 'reason' argument to exceptions f8ca22fca db: Remove unnecessary wrapper class 8246cce49 db: Migrate remaining "transfer" APIs to enginefacade 3b779bf6e db: Migrate "transfer" APIs to enginefacade 8eaebc741 db: Add '_share_update', '_share_instance_update' db9f5dfe0 db: Convert '_ensure_availability_zone_exists' to decorator 3d8bc2961 db: Migrate "export locations", "export location metadata" APIs to enginefacade 809253f3e Respect provided "host" when plugging ports b1c45a720 Use pre-commit for 'pep8' tox target a67549010 [pep8][black] Fix new formatting issues in code 3362c5444 db: Add '_share_instance_get' 80d1b94bc db: Add '_share_get' 8b148ebd4 db: Rename 'share_export_location_*' to 'export_location_*' 204215722 db: Rename 'share_instances_*' to 'share_instance_*' 2a3bbe9be db: Rename some methods 55edb00cc [RBAC] Enforce check for share updates 81126d97e [NetApp] Add exception for insufficient privilege or incorrect credentials 42e66d9f3 Fix share network delete procedure 190876809 [rbac] Pull up policy checks on share/snapshot APIs b44c36e5b Fix py311 unit test issues ce13de004 [NetApp] Fix ipspace naming is confusing f7402cbf2 Fixes share server manager match of identifiers 9e835496d Fix count in the response of shares/snapshots list API 1764a2208 Update master for stable/2023.2 279b8e286 [Pure Storage] Fix connection issue on network failure. c86523d59 Shorten snapshots names in CephFS drivers d57c33d7a [NetApp] Fix lack of aggregate pool home state Diffstat (except docs and test files) ------------------------------------- .pre-commit-config.yaml | 2 +- api-ref/source/parameters.yaml | 23 + .../source/samples/service-disable-request.json | 3 +- .../source/samples/service-disable-response.json | 5 +- .../source/samples/service-enable-response.json | 5 +- api-ref/source/services.inc | 11 + .../zaqar_notification_example_consumer.py | 4 +- devstack/plugin.sh | 29 +- devstack/settings | 3 + devstack/upgrade/from-mitaka/upgrade-manila | 17 - devstack/upgrade/from-newton/upgrade-manila | 17 - .../share_back_ends_feature_support_mapping.rst | 148 +-- .../configuration/shared-file-systems/drivers.rst | 2 +- .../drivers/cephfs-native-driver.rst | 289 ------ .../shared-file-systems/drivers}/cephfs_driver.rst | 235 +++-- .../drivers/dell-emc-vnx-driver.rst | 5 + .../drivers/glusterfs-driver.rst | 3 + .../drivers/glusterfs-native-driver.rst | 3 + .../drivers/purestorage-flashblade-driver.rst | 2 +- .../tables/manila-purestorage-flashblade.inc | 2 +- .../development-environment-devstack.rst | 4 +- etc/oslo-config-generator/manila.conf | 1 - manila/api/common.py | 6 +- manila/api/openstack/api_version_request.py | 9 +- manila/api/openstack/rest_api_version_history.rst | 20 +- manila/api/openstack/wsgi.py | 33 +- manila/api/v1/share_metadata.py | 11 +- manila/api/v1/share_snapshots.py | 5 +- manila/api/v1/shares.py | 12 + manila/api/v2/metadata.py | 22 +- manila/api/v2/services.py | 44 +- manila/api/v2/share_export_locations.py | 4 +- manila/api/v2/share_instance_export_locations.py | 7 +- manila/api/v2/share_instances.py | 6 +- manila/api/v2/share_network_subnets.py | 2 +- manila/api/v2/share_networks.py | 21 +- manila/api/v2/share_replica_export_locations.py | 10 +- manila/api/v2/share_servers.py | 3 + manila/api/v2/share_snapshot_instances.py | 3 + manila/api/v2/shares.py | 29 +- manila/api/views/services.py | 33 +- manila/api/views/share_backups.py | 9 + manila/cmd/api.py | 3 +- manila/cmd/data.py | 2 +- manila/cmd/manage.py | 2 +- manila/cmd/scheduler.py | 2 +- manila/cmd/share.py | 2 +- manila/common/config.py | 4 + manila/common/constants.py | 15 +- manila/data/manager.py | 4 +- manila/db/api.py | 111 +- .../alembic/versions/162a3e673105_manila_init.py | 83 +- .../2f27d904214c_add_backup_type_column.py | 49 + ...8e632621e5a_change_volume_type_to_share_type.py | 11 +- .../3a482171410f_add_drivers_private_data_table.py | 1 + ...4e89_add_mount_point_name_to_share_instances.py | 47 + ...e_add_security_service_update_control_fields.py | 1 + .../4a482571410f_add_backends_info_table.py | 1 + .../99d328f0a3d2_add_disable_reason_to_service.py | 49 + .../a77e2ad5012d_add_share_snapshot_access.py | 9 +- .../b516de97bfee_add_quota_per_share_type_model.py | 1 + .../dda6de06349_add_export_locations_metadata.py | 1 + .../e1949a93157a_add_share_group_types_table.py | 3 + ...8723178_remove_host_from_driver_private_data.py | 1 + .../ef0c02b4366_add_share_type_projects.py | 1 + manila/db/sqlalchemy/api.py | 755 ++++++++------ manila/db/sqlalchemy/models.py | 4 +- manila/exception.py | 4 + manila/message/message_field.py | 7 + manila/network/linux/ip_lib.py | 4 +- manila/network/neutron/api.py | 38 + manila/network/neutron/neutron_network_plugin.py | 16 +- manila/opts.py | 6 + manila/policies/share_snapshot.py | 20 +- manila/policies/shares.py | 21 + manila/scheduler/drivers/filter.py | 12 + manila/scheduler/evaluator/evaluator.py | 2 +- manila/scheduler/filters/capabilities.py | 1 + manila/scheduler/host_manager.py | 3 +- manila/scheduler/utils.py | 4 +- manila/share/access.py | 2 +- manila/share/api.py | 223 +++- manila/share/configuration.py | 3 +- manila/share/driver.py | 43 +- manila/share/drivers/cephfs/driver.py | 49 +- manila/share/drivers/container/driver.py | 1 + .../drivers/dell_emc/common/enas/connector.py | 12 +- manila/share/drivers/dell_emc/driver.py | 11 +- .../dell_emc/plugins/powermax/object_manager.py | 2 +- manila/share/drivers/ganesha/manager.py | 11 +- manila/share/drivers/ganesha/utils.py | 3 +- manila/share/drivers/generic.py | 15 +- manila/share/drivers/glusterfs/__init__.py | 6 + manila/share/drivers/glusterfs/glusterfs_native.py | 2 + manila/share/drivers/glusterfs/layout.py | 2 +- manila/share/drivers/hdfs/hdfs_native.py | 17 +- manila/share/drivers/hitachi/hnas/ssh.py | 13 +- manila/share/drivers/huawei/v3/helper.py | 4 +- manila/share/drivers/ibm/gpfs.py | 17 +- manila/share/drivers/infortrend/infortrend_nas.py | 26 +- .../share/drivers/inspur/instorage/cli_helper.py | 3 +- manila/share/drivers/lvm.py | 37 +- manila/share/drivers/maprfs/driver_util.py | 17 +- .../share/drivers/netapp/dataontap/client/api.py | 2 + .../netapp/dataontap/client/client_cmode.py | 134 ++- .../netapp/dataontap/client/client_cmode_rest.py | 159 ++- .../netapp/dataontap/cluster_mode/data_motion.py | 75 ++ .../netapp/dataontap/cluster_mode/drv_multi_svm.py | 18 + .../dataontap/cluster_mode/drv_single_svm.py | 17 + .../netapp/dataontap/cluster_mode/lib_base.py | 758 +++++++++++++- .../netapp/dataontap/cluster_mode/lib_multi_svm.py | 85 +- .../dataontap/cluster_mode/lib_single_svm.py | 11 + manila/share/drivers/netapp/options.py | 37 + manila/share/drivers/purestorage/flashblade.py | 62 +- manila/share/drivers/service_instance.py | 7 +- manila/share/drivers/tegile/tegile.py | 3 + manila/share/drivers/windows/windows_smb_driver.py | 2 + manila/share/manager.py | 333 ++++-- manila/share/rpcapi.py | 19 +- manila/share/share_types.py | 12 +- manila/ssh_utils.py | 132 +++ manila/test.py | 4 +- .../api/v2/test_share_instance_export_locations.py | 2 +- .../api/v2/test_share_replica_export_locations.py | 10 +- .../migrations/alembic/migrations_data_checks.py | 32 + .../share/drivers/dell_emc/common/enas/fakes.py | 6 - .../drivers/dell_emc/common/enas/test_connector.py | 10 +- .../mockup/create_filesystem_response.json | 6 +- .../mockup/create_nfs_export_response.json | 6 +- .../mockup/create_nfs_snapshot_response.json | 6 +- .../mockup/get_fileystem_id_response.json | 10 +- .../mockup/get_fsid_from_export_name_response.json | 10 +- .../get_fsid_from_snapshot_name_response.json | 10 +- .../mockup/get_nas_server_id_response.json | 10 +- .../mockup/get_nfs_export_id_response.json | 10 +- .../mockup/get_nfs_export_name_response.json | 40 +- .../mockup/get_storage_pool_spare_percentage.json | 196 ++-- .../mockup/get_storage_pool_statistic.json | 762 +++++++------- .../plugins/powerflex/mockup/login_response.json | 20 +- .../drivers/glusterfs/test_glusterfs_native.py | 1 + .../share/drivers/glusterfs/test_layout_volume.py | 6 +- .../share/drivers/hpe/test_hpe_3par_driver.py | 3 + .../drivers/inspur/instorage/test_instorage.py | 7 +- .../share/drivers/netapp/dataontap/client/fakes.py | 13 +- .../netapp/dataontap/client/test_client_cmode.py | 162 ++- .../dataontap/client/test_client_cmode_rest.py | 234 ++++- .../dataontap/cluster_mode/test_data_motion.py | 40 + .../netapp/dataontap/cluster_mode/test_lib_base.py | 1066 +++++++++++++++++++- .../dataontap/cluster_mode/test_lib_multi_svm.py | 60 +- .../dataontap/cluster_mode/test_lib_single_svm.py | 26 + .../share/drivers/purestorage/test_flashblade.py | 34 +- .../share/drivers/veritas/test_veritas_isa.py | 1 + manila/transfer/api.py | 17 +- manila/utils.py | 101 +- manila/wsgi/wsgi.py | 10 +- ...sabled_reason_to_services-8369aaa2985ada25.yaml | 8 + ...napshot-deferred-deletion-b3453718fd1e4b56.yaml | 7 + ...dit-services-down-message-c857de1a678b6781.yaml | 6 + ...ation-error-user-privileges-or-credentials.yaml | 7 + ...-fix-create-not-home-aggr-e9bd1ebf0d8e4e1e.yaml | 10 + ...nge-status-for-shares-api-5dbc4986d032c8e1.yaml | 5 + ...add-check-to-reset-status-baa126a7145a45bb.yaml | 8 + ...ten-snapshot-names-cephfs-a220e2b9f7ba5739.yaml | 6 + ...ed-relationship-is-in-use-ecc9ede4d7f0f5b9.yaml | 8 + ...30-fix-cross-project-rbac-328134c64c96c200.yaml | 6 + ...fix-netapp-ipspace-naming-7c097743e187b920.yaml | 6 + ...-state-on-active-replicas-a3d4511ff1352d68.yaml | 6 + ...er-migration-get-progress-bf6fe476f7ab3111.yaml | 6 + ...thout-security-associaton-ae56473f6d32c47e.yaml | 5 + ...032681-flashblade-relogin-f1781c6bdb15df71.yaml | 6 + ...es-and-snapshots-list-api-683f3103e587b898.yaml | 8 + ...remove-export-nfs-ganesha-fd0f8eb1db800d31.yaml | 11 + ...ver-name-during-migration-81fd7d24b36b4dbe.yaml | 8 + ...ubnet-on-network-deletion-b28b42ce4a42b554.yaml | 7 + ...tocol-access-mapping-opts-e7d61db3e2a84be7.yaml | 8 + ...nnection-error-to-neutron-df7d2ddac5f30773.yaml | 6 + ...metadata-to-cephfs-shares-5725d751980360ec.yaml | 10 + ...admin-and-driver-metadata-b0ede7d7cf057b5b.yaml | 8 + ...bug-2051691-cors-defaults-15989a221a9cb920.yaml | 9 + ...-ceph-nfs-protocol-helper-ba5ec5095d9eaca7.yaml | 5 + .../deprecate-dellemc-vnx-20c9daec7aec541c.yaml | 5 + .../notes/deprecate-glustefs-8e0c863aaa58eb6b.yaml | 5 + .../notes/deprecate-tegile-04c7466e29570ad5.yaml | 5 + .../deprecate-windows-smb-654983cf22856e31.yaml | 5 + ...e_server_manager_match_id-276202295539dc0f.yaml | 7 + ...rt-location-share-support-a72cd2f0e92c41c7.yaml | 12 + ...anila-wsgi-debug-log-opts-691a7647655b4778.yaml | 5 + ...e-export-location-support-b04af9f5054ad541.yaml | 5 + ...split-during-share-delete-720456e55031ef65.yaml | 8 + .../new-config-option-dhss-4931db193fd76656.yaml | 6 + .../notes/remove-vmax-a3d97ba80ced4895.yaml | 5 + ...hare-backup-netapp-driver-8bbcf3fbc1d20614.yaml | 8 + ...backup-netapp-driver-core-6a2328756b14f541.yaml | 6 + releasenotes/source/2023.2.rst | 6 + releasenotes/source/index.rst | 1 + releasenotes/source/victoria.rst | 2 +- releasenotes/source/wallaby.rst | 2 +- releasenotes/source/xena.rst | 2 +- releasenotes/source/yoga.rst | 2 +- setup.cfg | 11 +- test-requirements.txt | 8 +- tools/validate-json-files.py | 2 +- tox.ini | 24 +- zuul.d/grenade-jobs.yaml | 13 +- zuul.d/project.yaml | 13 +- 274 files changed, 8331 insertions(+), 2816 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 434c9b7d6..e0956c1bf 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,3 +1 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. +hacking>=6.1.0,<6.2.0 # Apache-2.0 @@ -5,4 +2,0 @@ -# hacking should be first -hacking>=3.1.0,<3.2.0 # Apache-2.0 - -bashate>=0.5.1 # Apache-2.0