summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshmitha Ambastha <Ashmitha7@localhost.localdomain>2018-10-05 11:11:38 +0530
committerAshmitha <asambast@redhat.com>2018-11-07 02:39:19 +0530
commite6786fde162d88c73d4070db415ee245c98f06fd (patch)
tree05519a3dd72060f73b449283c963f42a15c73493
parent384cb369f256162606190e4df4767500668d3a7c (diff)
Add test cases for gluster-block
Change-Id: I5ce399b39201dfb09d4ad459a039d938596a71e4 Signed-off-by: Ashmitha <asambast@redhat.com>
-rw-r--r--cns-libs/cnslibs/common/heketi_libs.py21
-rw-r--r--tests/functional/common/heketi/test_block_volumes_heketi.py90
2 files changed, 110 insertions, 1 deletions
diff --git a/cns-libs/cnslibs/common/heketi_libs.py b/cns-libs/cnslibs/common/heketi_libs.py
index 29e21cd8..4a001adc 100644
--- a/cns-libs/cnslibs/common/heketi_libs.py
+++ b/cns-libs/cnslibs/common/heketi_libs.py
@@ -13,7 +13,8 @@ from cnslibs.common.heketi_ops import (setup_heketi_ssh_key,
modify_heketi_executor,
export_heketi_cli_server,
hello_heketi,
- heketi_volume_delete)
+ heketi_volume_delete,
+ heketi_blockvolume_delete)
from cnslibs.common.openshift_ops import (oc_login, switch_oc_project,
get_ocp_gluster_pod_names)
@@ -130,6 +131,24 @@ class HeketiBaseClass(unittest.TestCase):
"Failed to delete following heketi volumes: "
"%s" % ',\n'.join(errored_ids))
+ def delete_block_volumes(self, volume_ids):
+ """
+ Delete block volumes by their volume IDs and raise an error on failures
+ Args:
+ volume_ids (str) : Volume ID of the block volume
+ """
+ if not isinstance(volume_ids, (list, set, tuple)):
+ volume_ids = [volume_ids]
+
+ fail = False
+ for volume_id in volume_ids:
+ block_out = heketi_blockvolume_delete(
+ self.heketi_client_node, self.heketi_server_url, volume_id)
+ if block_out is False:
+ g.log.error("Block volume delete failed %s " % volume_id)
+ fail = True
+ self.assertFalse(fail, "Failed to delete blockvolumes")
+
def tearDown(self):
super(HeketiBaseClass, self).tearDown()
msg = "Ending Test: %s : %s" % (self.id(), self.glustotest_run_id)
diff --git a/tests/functional/common/heketi/test_block_volumes_heketi.py b/tests/functional/common/heketi/test_block_volumes_heketi.py
new file mode 100644
index 00000000..4e405312
--- /dev/null
+++ b/tests/functional/common/heketi/test_block_volumes_heketi.py
@@ -0,0 +1,90 @@
+
+from cnslibs.common.heketi_ops import (heketi_blockvolume_create,
+ heketi_blockvolume_delete,
+ heketi_blockvolume_list,
+ heketi_volume_create,
+ heketi_volume_delete
+ )
+from cnslibs.common.heketi_libs import HeketiClientSetupBaseClass
+
+
+class TestBlockVolumeOps(HeketiClientSetupBaseClass):
+ """
+ Class to test heketi block volume deletion with and without block
+ volumes existing, heketi block volume list, heketi block volume info
+ and heketi block volume creation with name and block volumes creation
+ after manually creating a Block Hosting volume.
+ Test cases : CNS-[530,535,532,807]
+
+ """
+
+ def test_create_block_vol_after_host_vol_creation(self):
+ """Test Case CNS-530 """
+ block_host_create_info = heketi_volume_create(
+ self.heketi_client_node, self.heketi_server_url, 5,
+ json=True, block=True)
+ self.assertNotEqual(block_host_create_info, False,
+ "Block host volume creation failed")
+ block_hosting_vol_id = block_host_create_info["id"]
+ self.addCleanup(self.delete_volumes, block_hosting_vol_id)
+ block_vol = heketi_blockvolume_create(
+ self.heketi_client_node, self.heketi_server_url, 1, json=True)
+ self.assertNotEqual(block_vol, False, "Block volume creation failed")
+ self.addCleanup(self.delete_block_volumes, block_vol["id"])
+
+ def test_block_host_volume_delete_without_block_volumes(self):
+ """Test Case CNS-535 """
+ block_host_create_info = heketi_volume_create(
+ self.heketi_client_node, self.heketi_server_url, 1, json=True,
+ block=True)
+ self.assertNotEqual(block_host_create_info, False,
+ "Block host volume creation failed")
+ block_hosting_vol_id = block_host_create_info["id"]
+ self.addCleanup(heketi_volume_delete, self.heketi_client_node,
+ self.heketi_server_url, block_hosting_vol_id,
+ raise_on_error=False)
+ block_host_delete_output = heketi_volume_delete(
+ self.heketi_client_node, self.heketi_server_url,
+ block_hosting_vol_id, json=True)
+ self.assertNotEqual(
+ block_host_delete_output, False,
+ "Block host volume delete failed, ID: %s" % block_hosting_vol_id)
+
+ def test_block_volume_delete(self):
+ """Test Case CNS-532 """
+ block_vol = heketi_blockvolume_create(
+ self.heketi_client_node, self.heketi_server_url, 1, json=True)
+ self.assertNotEqual(block_vol, False,
+ "Block volume creation has failed")
+ self.addCleanup(heketi_blockvolume_delete, self.heketi_client_node,
+ self.heketi_server_url, block_vol["id"])
+ block_delete_output = heketi_blockvolume_delete(
+ self.heketi_client_node, self.heketi_server_url,
+ block_vol["id"], json=True)
+ self.assertNotEqual(block_delete_output, False,
+ "deletion of block volume has failed, ID: %s"
+ % block_vol["id"])
+ volume_list = heketi_blockvolume_list(
+ self.heketi_client_node, self.heketi_server_url, json=True)
+ self.assertNotIn(block_vol["id"], volume_list["blockvolumes"],
+ "The block volume has not been successfully deleted,"
+ " ID is %s" % block_vol["id"])
+
+ def test_block_volume_list(self):
+ """Test Case CNS-807 """
+ created_vol_ids = []
+ for count in range(3):
+ block_vol = heketi_blockvolume_create(
+ self.heketi_client_node, self.heketi_server_url,
+ 1, json=True)
+ self.assertNotEqual(block_vol, False,
+ "Block volume creation has failed")
+ self.addCleanup(self.delete_block_volumes, block_vol["id"])
+ created_vol_ids.append(block_vol["id"])
+ volumes = heketi_blockvolume_list(
+ self.heketi_client_node, self.heketi_server_url, json=True)
+ existing_vol_ids = volumes.values()[0]
+ for vol_id in created_vol_ids:
+ self.assertIn(vol_id, existing_vol_ids,
+ "Block vol with '%s' ID is absent in the "
+ "list of block volumes." % vol_id)