summaryrefslogtreecommitdiffstats
path: root/tests/functional
diff options
context:
space:
mode:
authornigoyal <nigoyal@redhat.com>2019-01-18 12:12:45 +0530
committervponomar <vponomar@redhat.com>2019-02-01 10:49:04 +0000
commitc1d44b0bed7fd54d056df1724009bd035fabe6d1 (patch)
tree81672c79b4530d2cd7c912a43082004d7bc81b8d /tests/functional
parente36014cbb44a05639bc43cce124f38c71db49e91 (diff)
adding library and test case for examine gluster
This library is helpfull for diagnosing output of gluster and heketi and it compare both the outputs and the test case verify this feature is working properly. Change-Id: Ice607003f32db2bce2f540a7651024b66b071634
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/common/heketi/test_server_state_examine_gluster.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/functional/common/heketi/test_server_state_examine_gluster.py b/tests/functional/common/heketi/test_server_state_examine_gluster.py
new file mode 100644
index 00000000..5b904e8f
--- /dev/null
+++ b/tests/functional/common/heketi/test_server_state_examine_gluster.py
@@ -0,0 +1,45 @@
+from cnslibs.cns import cns_baseclass
+from cnslibs.common import heketi_ops
+from cnslibs.common import heketi_version
+from cnslibs.common import openshift_ops
+
+
+class TestHeketiServerStateExamineGluster(cns_baseclass.BaseClass):
+
+ def setUp(self):
+ self.node = self.ocp_master_node[0]
+ version = heketi_version.get_heketi_version(self.heketi_client_node)
+ if version < '8.0.0-7':
+ self.skipTest("heketi-client package %s does not support server "
+ "state examine gluster" % version.v_str)
+
+ def test_volume_inconsistencies(self):
+ # Examine Gluster cluster and Heketi that there is no inconsistencies
+ out = heketi_ops.heketi_examine_gluster(
+ self.heketi_client_node, self.heketi_server_url)
+ if ("heketi volume list matches with volume list of all nodes"
+ not in out['report']):
+ self.skipTest(
+ "heketi and Gluster are inconsistent to each other")
+
+ # create volume
+ vol = heketi_ops.heketi_volume_create(
+ self.heketi_client_node, self.heketi_server_url, 1, json=True)
+ self.addCleanup(
+ heketi_ops.heketi_volume_delete, self.heketi_client_node,
+ self.heketi_server_url, vol['id'])
+
+ # delete volume from gluster cluster directly
+ openshift_ops.cmd_run_on_gluster_pod_or_node(
+ self.node,
+ "gluster vol stop %s force --mode=script" % vol['name'])
+ openshift_ops.cmd_run_on_gluster_pod_or_node(
+ self.node,
+ "gluster vol delete %s --mode=script" % vol['name'])
+
+ # verify that heketi is reporting inconsistencies
+ out = heketi_ops.heketi_examine_gluster(
+ self.heketi_client_node, self.heketi_server_url)
+ self.assertNotIn(
+ "heketi volume list matches with volume list of all nodes",
+ out['report'])