From ee34bd93610034d14ef7de18a6b466197d382915 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Fri, 6 May 2022 11:24:21 -0400 Subject: [PATCH] mgr/nfs: convert _cmd_nfs_export_rm to use EmptyResponder decorator Signed-off-by: John Mulligan --- src/pybind/mgr/nfs/export.py | 22 ++++++++++++---------- src/pybind/mgr/nfs/module.py | 6 ++++-- src/pybind/mgr/nfs/tests/test_nfs.py | 4 ++-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/pybind/mgr/nfs/export.py b/src/pybind/mgr/nfs/export.py index 4646696ec15..a040b94018f 100644 --- a/src/pybind/mgr/nfs/export.py +++ b/src/pybind/mgr/nfs/export.py @@ -323,7 +323,7 @@ class ExportMgr: cluster_id: str, pseudo_path: Optional[str], export_obj: Optional[Export] = None - ) -> Tuple[int, str, str]: + ) -> None: try: if export_obj: export: Optional[Export] = export_obj @@ -340,10 +340,11 @@ class ExportMgr: if not self.exports[cluster_id]: del self.exports[cluster_id] log.debug("Deleted all exports for cluster %s", cluster_id) - return 0, "Successfully deleted export", "" - return 0, "", "Export does not exist" + return None + raise NonFatalError("Export does not exist") except Exception as e: - return exception_handler(e, f"Failed to delete {pseudo_path} export for {cluster_id}") + log.exception(f"Failed to delete {pseudo_path} export for {cluster_id}") + raise ErrorResponse.wrap(e) def _fetch_export_obj(self, cluster_id: str, ex_id: int) -> Optional[Export]: try: @@ -413,10 +414,10 @@ class ExportMgr: log.exception(f"Failed to create {kwargs['pseudo_path']} export for {kwargs['cluster_id']}") raise ErrorResponse.wrap(e) - @export_cluster_checker def delete_export(self, cluster_id: str, - pseudo_path: str) -> Tuple[int, str, str]: + pseudo_path: str) -> None: + self._validate_cluster_id(cluster_id) return self._delete_export(cluster_id, pseudo_path) def delete_all_exports(self, cluster_id: str) -> None: @@ -426,10 +427,11 @@ class ExportMgr: log.info("No exports to delete") return for export in export_list: - ret, out, err = self._delete_export(cluster_id=cluster_id, pseudo_path=None, - export_obj=export) - if ret != 0: - raise NFSException(f"Failed to delete exports: {err} and {ret}") + try: + self._delete_export(cluster_id=cluster_id, pseudo_path=None, + export_obj=export) + except Exception as e: + raise NFSException(f"Failed to delete export {export.export_id}: {e}") log.info("All exports successfully deleted for cluster id: %s", cluster_id) def list_all_exports(self) -> List[Dict[str, Any]]: diff --git a/src/pybind/mgr/nfs/module.py b/src/pybind/mgr/nfs/module.py index 0e28e1b7934..e883408a8b1 100644 --- a/src/pybind/mgr/nfs/module.py +++ b/src/pybind/mgr/nfs/module.py @@ -78,12 +78,14 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule): ) @CLICommand('nfs export rm', perm='rw') - def _cmd_nfs_export_rm(self, cluster_id: str, pseudo_path: str) -> Tuple[int, str, str]: + @object_format.EmptyResponder() + def _cmd_nfs_export_rm(self, cluster_id: str, pseudo_path: str) -> None: """Remove a cephfs export""" return self.export_mgr.delete_export(cluster_id=cluster_id, pseudo_path=pseudo_path) @CLICommand('nfs export delete', perm='rw') - def _cmd_nfs_export_delete(self, cluster_id: str, pseudo_path: str) -> Tuple[int, str, str]: + @object_format.EmptyResponder() + def _cmd_nfs_export_delete(self, cluster_id: str, pseudo_path: str) -> None: """Delete a cephfs export (DEPRECATED)""" return self.export_mgr.delete_export(cluster_id=cluster_id, pseudo_path=pseudo_path) diff --git a/src/pybind/mgr/nfs/tests/test_nfs.py b/src/pybind/mgr/nfs/tests/test_nfs.py index 97512f1a356..50f864d3ba1 100644 --- a/src/pybind/mgr/nfs/tests/test_nfs.py +++ b/src/pybind/mgr/nfs/tests/test_nfs.py @@ -899,8 +899,8 @@ NFS_CORE_PARAM { nfs_mod = Module('nfs', '', '') conf = ExportMgr(nfs_mod) assert len(conf.exports[self.cluster_id]) == 2 - assert conf.delete_export(cluster_id=self.cluster_id, - pseudo_path="/rgw") == (0, "Successfully deleted export", "") + conf.delete_export(cluster_id=self.cluster_id, + pseudo_path="/rgw") exports = conf.exports[self.cluster_id] assert len(exports) == 1 assert exports[0].export_id == 1 -- 2.39.5