diff options
author | Ashmitha Ambastha <Ashmitha7@localhost.localdomain> | 2018-10-05 11:11:38 +0530 |
---|---|---|
committer | Ashmitha <asambast@redhat.com> | 2018-11-07 02:39:19 +0530 |
commit | e6786fde162d88c73d4070db415ee245c98f06fd (patch) | |
tree | 05519a3dd72060f73b449283c963f42a15c73493 | |
parent | 384cb369f256162606190e4df4767500668d3a7c (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.py | 21 | ||||
-rw-r--r-- | tests/functional/common/heketi/test_block_volumes_heketi.py | 90 |
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) |