diff options
Diffstat (limited to 'tests/functional/heketi/test_node_enable_disable.py')
-rw-r--r-- | tests/functional/heketi/test_node_enable_disable.py | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/tests/functional/heketi/test_node_enable_disable.py b/tests/functional/heketi/test_node_enable_disable.py deleted file mode 100644 index 2d88ffb7..00000000 --- a/tests/functional/heketi/test_node_enable_disable.py +++ /dev/null @@ -1,141 +0,0 @@ -"""Test cases to disable and enable node in heketi.""" -from glusto.core import Glusto as g - -from openshiftstoragelibs.baseclass import BaseClass -from openshiftstoragelibs.heketi_ops import ( - heketi_node_disable, - heketi_node_enable, - heketi_node_info, - heketi_node_list, - heketi_volume_create, - heketi_volume_delete, -) - - -class TestHeketiNodeState(BaseClass): - """Test node enable and disable functionality.""" - - def enable_node(self, node_id): - """ - Enable node through heketi-cli. - - :param node_id: str node ID - """ - out = heketi_node_enable(self.heketi_client_node, - self.heketi_server_url, - node_id) - - self.assertNotEqual(out, False, - "Failed to enable node of" - " id %s" % node_id) - - def disable_node(self, node_id): - """ - Disable node through heketi-cli. - - :param node_id: str node ID - """ - out = heketi_node_disable(self.heketi_client_node, - self.heketi_server_url, - node_id) - - self.assertNotEqual(out, False, - "Failed to disable node of" - " id %s" % node_id) - - def get_node_info(self, node_id): - """ - Get node information from node_id. - - :param node_id: str node ID - :return node_info: list node information - """ - node_info = heketi_node_info( - self.heketi_client_node, self.heketi_server_url, - node_id, json=True) - self.assertNotEqual(node_info, False, - "Node info on %s failed" % node_id) - return node_info - - def get_online_nodes(self, node_list): - """ - Get online nodes information from node_list. - - :param node_list: list of node ID's - :return: list node information of online nodes - """ - online_hosts_info = [] - - for node in node_list: - node_info = self.get_node_info(node) - if node_info["state"] == "online": - online_hosts_info.append(node_info) - - return online_hosts_info - - def test_node_state(self): - """ - Test node enable and disable functionality. - - If we have 4 gluster servers, if we disable 1/4 nodes from heketi - and create a volume, the volume creation should be successful. - - If we disable 2/4 nodes from heketi-cli and create a volume - the volume creation should fail. - - If we enable back one gluster server and create a volume - the volume creation should be successful. - """ - g.log.info("Disable node in heketi") - node_list = heketi_node_list(self.heketi_client_node, - self.heketi_server_url) - self.assertTrue(node_list, "Failed to list heketi nodes") - g.log.info("Successfully got the list of nodes") - online_hosts = self.get_online_nodes(node_list) - - if len(online_hosts) < 3: - raise self.skipTest( - "This test can run only if online hosts are more " - "than 2") - # if we have n nodes, disable n-3 nodes - for node_info in online_hosts[3:]: - node_id = node_info["id"] - g.log.info("going to disable node id %s", node_id) - self.disable_node(node_id) - self.addCleanup(self.enable_node, node_id) - - vol_size = 1 - # create volume when 3 nodes are online - vol_info = heketi_volume_create(self.heketi_client_node, - self.heketi_server_url, vol_size, - json=True) - self.addCleanup( - heketi_volume_delete, self.heketi_client_node, - self.heketi_server_url, vol_info['id']) - - node_id = online_hosts[0]['id'] - g.log.info("going to disable node id %s", node_id) - self.disable_node(node_id) - self.addCleanup(self.enable_node, node_id) - - # try to create a volume, volume creation should fail - with self.assertRaises(AssertionError): - out = heketi_volume_create( - self.heketi_client_node, self.heketi_server_url, vol_size) - self.addCleanup( - heketi_volume_delete, self.heketi_client_node, - self.heketi_server_url, out["id"]) - self.assertFalse(True, "Volume creation didn't fail: %s" % out) - - g.log.info("Volume creation failed as expected.") - - # enable node - self.enable_node(node_id) - - # create volume when node is enabled - vol_info = heketi_volume_create(self.heketi_client_node, - self.heketi_server_url, vol_size, - json=True) - self.addCleanup( - heketi_volume_delete, self.heketi_client_node, - self.heketi_server_url, vol_info['id']) |