From 31d8f6b38fec4e186e54a2275999c25502197368 Mon Sep 17 00:00:00 2001 From: "Fernando F. Silva" Date: Wed, 19 Jun 2019 16:44:13 -0300 Subject: [PATCH] NetApp ONTAP: Fix JSON serialization error on EMS logs The NetApp cDOT Driver is now fixed to periodically generate EMS logging messages. The issue was occurring due to incompatible python 3 code when gathering volume names. Change-Id: I5ded00b0d743bfb1a9da33d602b9264630979f19 Closes-bug: #1833115 --- cinder/volume/drivers/netapp/dataontap/block_cmode.py | 4 +++- cinder/volume/drivers/netapp/dataontap/nfs_cmode.py | 4 +++- cinder/volume/drivers/netapp/dataontap/utils/capabilities.py | 3 ++- ...5-fix-netapp-ontap-python3-failures-dd869e602f9539e1.yaml | 5 +++++ 4 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/bug-1833115-fix-netapp-ontap-python3-failures-dd869e602f9539e1.yaml diff --git a/cinder/volume/drivers/netapp/dataontap/block_cmode.py b/cinder/volume/drivers/netapp/dataontap/block_cmode.py index 34b163e6640..d6c46ad3094 100644 --- a/cinder/volume/drivers/netapp/dataontap/block_cmode.py +++ b/cinder/volume/drivers/netapp/dataontap/block_cmode.py @@ -432,7 +432,9 @@ class NetAppBlockStorageCmodeLibrary(block_base.NetAppBlockStorageLibrary, def _get_backing_flexvol_names(self): """Returns a list of backing flexvol names.""" - return self.ssc_library.get_ssc().keys() + + ssc = self.ssc_library.get_ssc() + return list(ssc.keys()) def create_group(self, group): """Driver entry point for creating a generic volume group. diff --git a/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py b/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py index 26237f0c67f..fbb50e06cc1 100644 --- a/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py +++ b/cinder/volume/drivers/netapp/dataontap/nfs_cmode.py @@ -687,7 +687,9 @@ class NetAppCmodeNfsDriver(nfs_base.NetAppNfsDriver, def _get_backing_flexvol_names(self): """Returns a list of backing flexvol names.""" - return self.ssc_library.get_ssc().keys() + + ssc = self.ssc_library.get_ssc() + return list(ssc.keys()) def _get_flexvol_names_from_hosts(self, hosts): """Returns a set of flexvol names.""" diff --git a/cinder/volume/drivers/netapp/dataontap/utils/capabilities.py b/cinder/volume/drivers/netapp/dataontap/utils/capabilities.py index e5abadd7cf1..81a9b0985de 100644 --- a/cinder/volume/drivers/netapp/dataontap/utils/capabilities.py +++ b/cinder/volume/drivers/netapp/dataontap/utils/capabilities.py @@ -99,8 +99,9 @@ class CapabilitiesLibrary(object): def get_ssc_flexvol_names(self): """Get the names of the FlexVols in the Storage Service Catalog.""" + ssc = self.get_ssc() - return ssc.keys() + return list(ssc.keys()) def get_ssc_for_flexvol(self, flexvol_name): """Get map of Storage Service Catalog entries for a single flexvol.""" diff --git a/releasenotes/notes/bug-1833115-fix-netapp-ontap-python3-failures-dd869e602f9539e1.yaml b/releasenotes/notes/bug-1833115-fix-netapp-ontap-python3-failures-dd869e602f9539e1.yaml new file mode 100644 index 00000000000..457f44d5df8 --- /dev/null +++ b/releasenotes/notes/bug-1833115-fix-netapp-ontap-python3-failures-dd869e602f9539e1.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fix python 3 incompatibility issues preventing NetApp cDOT driver from + generating EMS logging messages (Bug #1833115).