]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/volumes: Add nfs cluster delete interface
authorVarsha Rao <varao@redhat.com>
Thu, 23 Apr 2020 15:46:16 +0000 (21:16 +0530)
committerVarsha Rao <varao@redhat.com>
Fri, 29 May 2020 09:17:32 +0000 (14:47 +0530)
$ ceph nfs cluster delete <clusterid>

This deletes the deployed cluster.

Signed-off-by: Varsha Rao <varao@redhat.com>
doc/cephfs/fs-nfs-exports.rst
src/pybind/mgr/volumes/fs/nfs.py
src/pybind/mgr/volumes/module.py

index e92935223b9d8c262bc48d67e92313b32256d132..82353fb622ac0cae7c81385bcbac941c7d504f1e 100644 (file)
@@ -36,6 +36,15 @@ Update NFS Ganesha Cluster
 
 This updates the deployed cluster according to the placement value.
 
+Delete NFS Ganesha Cluster
+==========================
+
+.. code:: bash
+
+    $ ceph nfs cluster delete <clusterid>
+
+This deletes the deployed cluster.
+
 Create CephFS Export
 ====================
 
index d136362f96563ea773c5c9c8be1fd7e2effe4414..12a802d2a966eb5c981303fdf1b24c812ba4184a 100644 (file)
@@ -396,4 +396,15 @@ class NFSCluster:
         return 0, "", "NFS Cluster Updated Successfully"
 
     def delete_nfs_cluster(self):
-        raise NotImplementedError()
+        if self.check_cluster_exists():
+            try:
+                completion = self.mgr.remove_service('nfs.' + self.cluster_id)
+                self.mgr._orchestrator_wait([completion])
+                orchestrator.raise_if_exception(completion)
+            except Exception as e:
+                log.exception("Failed to delete NFS Cluster")
+                return -errno.EINVAL, "", str(e)
+        else:
+            log.warn("Cluster does not exist")
+
+        return 0, "", "NFS Cluster Deleted Successfully"
index bae930dc9104426b08280ed63ac41f6c741c7422..ba9d11a9dd8c20bf730d50867cae68eda496d4bb 100644 (file)
@@ -254,6 +254,12 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
             'desc': "Updates an NFS Cluster",
             'perm': 'rw'
         },
+        {
+            'cmd': 'nfs cluster delete '
+                   'name=clusterid,type=CephString ',
+            'desc': "Deletes an NFS Cluster",
+            'perm': 'rw'
+        },
         # volume ls [recursive]
         # subvolume ls <volume>
         # volume authorize/deauthorize
@@ -437,6 +443,11 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
         nfs_cluster_obj = NFSCluster(self, cmd['clusterid'])
         return nfs_cluster_obj.create_nfs_cluster(export_type=cmd['type'],
                                                   placement=cmd.get('placement', None))
+
     def _cmd_nfs_cluster_update(self, inbuf, cmd):
         nfs_cluster_obj = NFSCluster(self, cmd['clusterid'])
         return nfs_cluster_obj.update_nfs_cluster(placement=cmd['placement'])
+
+    def _cmd_nfs_cluster_delete(self, inbuf, cmd):
+        nfs_cluster_obj = NFSCluster(self, cmd['clusterid'])
+        return nfs_cluster_obj.delete_nfs_cluster()