From f8d3bea1698eb53161785a20ae5980fe91d3f70e Mon Sep 17 00:00:00 2001 From: Varsha Rao Date: Tue, 2 Jun 2020 11:34:19 +0000 Subject: [PATCH] qa/tasks/cephfs: Add idempotency test for nfs commands Signed-off-by: Varsha Rao (cherry picked from commit 1a55888b1bab8039dba173c0bdc1923ac24f347a) --- qa/tasks/cephfs/test_nfs.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/qa/tasks/cephfs/test_nfs.py b/qa/tasks/cephfs/test_nfs.py index ef9326e981cee..fb4d70d8f55bd 100644 --- a/qa/tasks/cephfs/test_nfs.py +++ b/qa/tasks/cephfs/test_nfs.py @@ -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() -- 2.39.5