]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/cephfs: Add idempotency test for nfs commands
authorVarsha Rao <varao@redhat.com>
Tue, 2 Jun 2020 11:34:19 +0000 (11:34 +0000)
committerVarsha Rao <varao@redhat.com>
Wed, 8 Jul 2020 05:36:35 +0000 (07:36 +0200)
Signed-off-by: Varsha Rao <varao@redhat.com>
(cherry picked from commit 1a55888b1bab8039dba173c0bdc1923ac24f347a)

qa/tasks/cephfs/test_nfs.py

index ef9326e981cee4acf2a2d91abf6a0f728573451e..fb4d70d8f55bdf7fc2a31f6721e408fc5fffe814 100644 (file)
@@ -1,8 +1,10 @@
+import json
 import time
 import logging
 from io import BytesIO
 
 from tasks.mgr.mgr_test_case import MgrTestCase
+from teuthology.exceptions import CommandFailedError
 
 log = logging.getLogger(__name__)
 
@@ -49,6 +51,12 @@ class TestNFS(MgrTestCase):
     def _check_nfs_status(self):
         return self._orch_cmd('ls', 'nfs')
 
+    def _test_idempotency(self, cmd_func, cmd_args):
+        cmd_func()
+        ret = self.mgr_cluster.mon_manager.raw_cluster_cmd_result(*cmd_args)
+        if ret != 0:
+            raise RuntimeError("Idempotency test failed")
+
     def _test_create_cluster(self):
         self._check_nfs_server_status()
         self._nfs_cmd('cluster', 'create', self.export_type, self.cluster_id)
@@ -101,12 +109,24 @@ class TestNFS(MgrTestCase):
         self._test_create_cluster()
         self._test_delete_cluster()
 
+    def test_create_delete_cluster_idempotency(self):
+        self._test_idempotency(self._test_create_cluster, ['nfs', 'cluster', 'create', self.export_type,
+                                                           self.cluster_id])
+        self._test_idempotency(self._test_delete_cluster, ['nfs', 'cluster', 'delete', self.cluster_id])
+
     def test_export_create_and_delete(self):
         self._create_default_export()
         self._delete_export()
         self._check_export_obj_deleted()
         self._test_delete_cluster()
 
+    def test_create_delete_export_idempotency(self):
+        self._test_idempotency(self._create_default_export, ['nfs', 'export', 'create', 'cephfs',
+                                                             self.fs_name, self.cluster_id,
+                                                             self.pseudo_path])
+        self._test_idempotency(self._delete_export, ['nfs', 'export', 'delete', self.cluster_id,
+                                                     self.pseudo_path])
+
     def test_create_multiple_exports(self):
         #Export-1 with default values
         self._create_default_export()