diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index f35397f3..f8f08617 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -2902,6 +2902,11 @@ def export_location_metadata_update(context, export_location_uuid, metadata, # that will not take effect using one session and we will rewrite, # in that case, single record - first one added with this call. session = get_session() + + if meta_value is None: + LOG.warning("%s should be properly defined in the driver.", + meta_key) + item = {"value": meta_value, "updated_at": timeutils.utcnow()} meta_ref = _export_location_metadata_get_query( diff --git a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py index 3ddf85e2..fc002cc4 100644 --- a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py +++ b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py @@ -742,7 +742,7 @@ class NetAppCmodeFileStorageLibrary(object): if home_node: preferred = interface.get('home-node') == home_node else: - preferred = None + preferred = False addresses[address] = { 'is_admin_only': is_admin_only, diff --git a/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_base.py b/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_base.py index 510ad016..acb99197 100644 --- a/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_base.py +++ b/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_base.py @@ -1120,7 +1120,7 @@ class NetAppFileStorageLibraryTestCase(test.TestCase): expected = copy.deepcopy(fake.INTERFACE_ADDRESSES_WITH_METADATA) for key, value in expected.items(): - value['preferred'] = None + value['preferred'] = False self.assertEqual(expected, result) mock_get_aggregate_node.assert_called_once_with(fake.POOL_NAME) diff --git a/releasenotes/notes/bug-1703660-fix-netapp-driver-preferred-state-0ce1a62961cded35.yaml b/releasenotes/notes/bug-1703660-fix-netapp-driver-preferred-state-0ce1a62961cded35.yaml new file mode 100644 index 00000000..203aca70 --- /dev/null +++ b/releasenotes/notes/bug-1703660-fix-netapp-driver-preferred-state-0ce1a62961cded35.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed the NetApp driver to report the correct value of the "preferred" + export location metadata where it cannot determine if there are any + "preferred" export locations.