From 5568b40d0682f6c34bce3f4dd7b5b824c93f6082 Mon Sep 17 00:00:00 2001 From: Mike Rooney Date: Wed, 18 May 2016 10:53:49 -0400 Subject: [PATCH] NetApp: Report multiattach as enabled Pools reported by NFS and block drivers for CDOT and 7mode now report multiattach as a capability. NetApp cDOT and 7mode LUNs have always supported multi-attach, but their capability was not previously reported as such. Closes-Bug: #1612763 Change-Id: Ib7545438998b02fb7670df44a6486764c401c5f6 --- cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py | 1 + .../unit/volume/drivers/netapp/dataontap/test_block_7mode.py | 1 + .../unit/volume/drivers/netapp/dataontap/test_block_cmode.py | 1 + .../unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py | 1 + .../unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py | 1 + cinder/volume/drivers/netapp/dataontap/block_7mode.py | 1 + cinder/volume/drivers/netapp/dataontap/block_cmode.py | 1 + cinder/volume/drivers/netapp/dataontap/nfs_7mode.py | 1 + cinder/volume/drivers/netapp/dataontap/nfs_cmode.py | 1 + ...multiattach-enabled-NetApp-backends-0fbf2cb621e4747d.yaml | 5 +++++ 10 files changed, 14 insertions(+) create mode 100644 releasenotes/notes/bug-1612763-report-multiattach-enabled-NetApp-backends-0fbf2cb621e4747d.yaml diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py index 2b4ca3e8c5b..c66a5e21bf3 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/fakes.py @@ -376,6 +376,7 @@ FAKE_7MODE_POOLS = [ 'total_capacity_gb': 0.0, 'free_capacity_gb': 0.0, 'max_over_subscription_ratio': 20.0, + 'multiattach': True, 'thin_provisioning_support': False, 'thick_provisioning_support': True, 'provisioned_capacity_gb': 0.0, diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_7mode.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_7mode.py index a3f43b92b2b..d8c9eee93b7 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_7mode.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_7mode.py @@ -560,6 +560,7 @@ class NetAppBlockStorage7modeLibraryTestCase(test.TestCase): 'total_capacity_gb': 1342.21, 'reserved_percentage': 5, 'max_over_subscription_ratio': 10.0, + 'multiattach': True, 'utilization': 30.0, 'filter_function': 'filter', 'goodness_function': 'goodness', diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py index 56036183ff0..5ee7cee764a 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py @@ -397,6 +397,7 @@ class NetAppBlockStorageCmodeLibraryTestCase(test.TestCase): 'consistencygroup_support': True, 'reserved_percentage': 5, 'max_over_subscription_ratio': 10.0, + 'multiattach': True, 'total_capacity_gb': 10.0, 'free_capacity_gb': 2.0, 'provisioned_capacity_gb': 8.0, diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py index 5dd7e6e836f..a4ed4437ab4 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py @@ -123,6 +123,7 @@ class NetApp7modeNfsDriverTestCase(test.TestCase): 'total_capacity_gb': 4468.0, 'reserved_percentage': 7, 'max_over_subscription_ratio': 19.0, + 'multiattach': True, 'provisioned_capacity_gb': 4456.0, 'utilization': 30.0, 'filter_function': 'filter', diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py index 30a2a5595aa..7989cf9b5dd 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py @@ -206,6 +206,7 @@ class NetAppCmodeNfsDriverTestCase(test.TestCase): 'QoS_support': True, 'reserved_percentage': fake.RESERVED_PERCENTAGE, 'max_over_subscription_ratio': fake.MAX_OVER_SUBSCRIPTION_RATIO, + 'multiattach': True, 'total_capacity_gb': total_capacity_gb, 'free_capacity_gb': free_capacity_gb, 'provisioned_capacity_gb': provisioned_capacity_gb, diff --git a/cinder/volume/drivers/netapp/dataontap/block_7mode.py b/cinder/volume/drivers/netapp/dataontap/block_7mode.py index a4eeea6ab83..dc8fed078f5 100644 --- a/cinder/volume/drivers/netapp/dataontap/block_7mode.py +++ b/cinder/volume/drivers/netapp/dataontap/block_7mode.py @@ -301,6 +301,7 @@ class NetAppBlockStorage7modeLibrary(block_base.NetAppBlockStorageLibrary): pool = dict() pool['pool_name'] = volume_name pool['QoS_support'] = False + pool['multiattach'] = True pool['reserved_percentage'] = ( self.reserved_percentage) pool['max_over_subscription_ratio'] = ( diff --git a/cinder/volume/drivers/netapp/dataontap/block_cmode.py b/cinder/volume/drivers/netapp/dataontap/block_cmode.py index acad15497b8..b97739b04f9 100644 --- a/cinder/volume/drivers/netapp/dataontap/block_cmode.py +++ b/cinder/volume/drivers/netapp/dataontap/block_cmode.py @@ -271,6 +271,7 @@ class NetAppBlockStorageCmodeLibrary(block_base.NetAppBlockStorageLibrary, # Add driver capabilities and config info pool['QoS_support'] = True + pool['multiattach'] = True pool['consistencygroup_support'] = True pool['reserved_percentage'] = self.reserved_percentage pool['max_over_subscription_ratio'] = ( diff --git a/cinder/volume/drivers/netapp/dataontap/nfs_7mode.py b/cinder/volume/drivers/netapp/dataontap/nfs_7mode.py index 54d36d5b502..98974d02336 100644 --- a/cinder/volume/drivers/netapp/dataontap/nfs_7mode.py +++ b/cinder/volume/drivers/netapp/dataontap/nfs_7mode.py @@ -132,6 +132,7 @@ class NetApp7modeNfsDriver(nfs_base.NetAppNfsDriver): pool = dict() pool['pool_name'] = nfs_share pool['QoS_support'] = False + pool['multiattach'] = True pool.update(capacity) thick = not self.configuration.nfs_sparsed_volumes diff --git a/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py b/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py index d4046e913d1..6e5471e0603 100644 --- a/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py +++ b/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py @@ -239,6 +239,7 @@ class NetAppCmodeNfsDriver(nfs_base.NetAppNfsDriver, # Add driver capabilities and config info pool['QoS_support'] = True pool['consistencygroup_support'] = True + pool['multiattach'] = True # Add up-to-date capacity info nfs_share = ssc_vol_info['pool_name'] diff --git a/releasenotes/notes/bug-1612763-report-multiattach-enabled-NetApp-backends-0fbf2cb621e4747d.yaml b/releasenotes/notes/bug-1612763-report-multiattach-enabled-NetApp-backends-0fbf2cb621e4747d.yaml new file mode 100644 index 00000000000..9c6ef506be5 --- /dev/null +++ b/releasenotes/notes/bug-1612763-report-multiattach-enabled-NetApp-backends-0fbf2cb621e4747d.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - Volumes created on NetApp cDOT and 7mode storage systems now + report 'multiattach' capability. They have always supported such a + capability, but not reported it to Cinder.