From d2b5e6e6ba00a666e826b3fd2b93ad63b8fe88f1 Mon Sep 17 00:00:00 2001 From: sharmb5 Date: Tue, 19 Nov 2024 09:14:30 -0500 Subject: [PATCH] ADS diff mode enhancements --- plugins/modules/nfs.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/modules/nfs.py b/plugins/modules/nfs.py index c4c0696..d269058 100644 --- a/plugins/modules/nfs.py +++ b/plugins/modules/nfs.py @@ -497,6 +497,7 @@ import PowerScaleBase from ansible_collections.dellemc.powerscale.plugins.module_utils.storage.dell \ import utils +import copy LOG = utils.get_logger('nfs') @@ -822,9 +823,12 @@ def modify_nfs_export(self, path, access_zone, ignore_unresolvable_hosts): ''' Modify NFS export in system ''' + nfs_details = copy.deepcopy(self.result.get('NFS_export_details')) + nfs_export = self.isi_sdk.NfsExport() client_flag = map_root_flag = map_non_root_flag = False client_flag, nfs_export = self._check_client_status(nfs_export) + map_root = set_nfs_map(self.module.params.get('map_root'), 'map_root', self.result.get('NFS_export_details')) if map_root: nfs_export.map_root = map_root @@ -848,22 +852,28 @@ def modify_nfs_export(self, path, access_zone, ignore_unresolvable_hosts): map_non_root_flag, security_flag]): LOG.info( 'No change detected for the NFS Export, returning changed = False') + if self.module._diff: + self.result.update({"diff": {"before": nfs_details, "after": nfs_details}}) return False else: nfs_export.read_only = read_only_value if read_only_flag else None nfs_export.all_dirs = all_dirs_value if all_dirs_flag else None nfs_export.description = description_value if description_flag else None - LOG.debug('Modifying NFS Export with %s details', nfs_export) - return self.perform_modify_nfs_export(nfs_export, path, access_zone, ignore_unresolvable_hosts) - def perform_modify_nfs_export(self, nfs_export, path, access_zone, ignore_unresolvable_hosts): + return self.perform_modify_nfs_export(nfs_export, path, access_zone, ignore_unresolvable_hosts, nfs_details) + + def perform_modify_nfs_export(self, nfs_export, path, access_zone, ignore_unresolvable_hosts, nfs_details): ''' Modify NFS export in PowerScale system ''' + modified_details = copy.deepcopy(nfs_details) + filtered_dict = {key: value for key, value in nfs_export.to_dict().items() if value is not None} + modified_details.update(filtered_dict) if self.module._diff: - self.result.update({"diff": {"before": self.result.get("NFS_export_details"), "after": nfs_export.to_dict()}}) + self.result.update({"diff": {"before": nfs_details, "after": modified_details}}) + self.result['NFS_export_details'] = nfs_details try: if not self.module.check_mode: if ignore_unresolvable_hosts is not True: