summaryrefslogtreecommitdiffstats
path: root/tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2018-11-12 21:38:16 +0530
committerValerii Ponomarov <vponomar@redhat.com>2018-11-13 18:52:01 +0530
commit19143758fe6dbd77dab2bc81d77abfdb63627fe0 (patch)
treea97a341c82b86f0eca30bb9a1af38594569f8d2b /tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py
parentd27f48282d2aaaf38851e192962e765b4f23bbb5 (diff)
Refactor test cases CNS-797 and CNS-798
Do following improvements: - Calculate distributed replica vol size dynamically based on the current free space on the heketi devices. - Add check for amount of bricks. - Cleanup volume more correctly. - Check free space after deletion considering the size of deleted vol. - Rename module. - Move module out of "heketi_tests" to the parent dir called "heketi". Change-Id: I42fdfadc97157595857e5a106760391281f59a1a
Diffstat (limited to 'tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py')
-rw-r--r--tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py193
1 files changed, 0 insertions, 193 deletions
diff --git a/tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py b/tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py
deleted file mode 100644
index 29b39513..00000000
--- a/tests/functional/common/heketi/heketi_tests/test_create_heketi_volume_size_60.py
+++ /dev/null
@@ -1,193 +0,0 @@
-from __future__ import division
-import math
-
-from glusto.core import Glusto as g
-from glustolibs.gluster.volume_ops import get_volume_list, get_volume_info
-
-from cnslibs.common.exceptions import ExecutionError
-from cnslibs.common.heketi_libs import HeketiClientSetupBaseClass
-from cnslibs.common.heketi_ops import (heketi_node_list,
- heketi_node_info,
- heketi_volume_create,
- heketi_volume_list,
- heketi_volume_info,
- heketi_volume_delete)
-from cnslibs.common.openshift_ops import get_ocp_gluster_pod_names
-from cnslibs.common import podcmd
-
-
-class TestHeketiVolume(HeketiClientSetupBaseClass):
-
- def get_free_space(self):
- """
- Get free space in each devices
- """
- free_spaces = []
- heketi_node_id_list = heketi_node_list(
- self.heketi_client_node, self.heketi_server_url)
- for node_id in heketi_node_id_list:
- node_info_dict = heketi_node_info(self.heketi_client_node,
- self.heketi_server_url,
- node_id, json=True)
- total_free_space = 0
- for device in node_info_dict["devices"]:
- total_free_space += device["storage"]["free"]
- free_spaces.append(total_free_space)
- total_free_space = sum(free_spaces)/(1024**2)
- total_free_space = int(math.floor(total_free_space))
-
- return total_free_space, free_spaces
-
- @podcmd.GlustoPod()
- def test_to_create_distribute_replicated_vol(self):
- """
- Create distribute replicate heketi
- volume and run heketi-cli volume info
- """
-
- hosts = []
- size = 610
- g.log.info("Creating a heketi volume")
- out = heketi_volume_create(self.heketi_client_node,
- self.heketi_server_url,
- size, json=True)
- self.assertTrue(out, ("Failed to create "
- "heketi volume of size %s" % str(size)))
- g.log.info("Successfully created heketi volume"
- " of size %s" % str(size))
- volume_id = out["bricks"][0]["volume"]
- self.addCleanup(self.delete_volumes, volume_id)
-
- # Correct the backupvol file servers are updated
- gluster_servers = []
- g.log.info("Checking backupvol file servers are updated")
- mount_node = (out["mount"]["glusterfs"]
- ["device"].strip().split(":")[0])
- hosts.append(mount_node)
- backup_volfile_server_list = (
- out["mount"]["glusterfs"]["options"][
- "backup-volfile-servers"].strip().split(","))
- for backup_volfile_server in backup_volfile_server_list:
- hosts.append(backup_volfile_server)
- for gluster_server in g.config["gluster_servers"].keys():
- gluster_servers.append(g.config["gluster_servers"]
- [gluster_server]["storage"])
- self.assertEqual(set(hosts), set(gluster_servers))
- g.log.info("Correctly updated backupvol file servers")
-
- # Retrieve heketi volume info
- g.log.info("Retrieving heketi volume info")
- out = heketi_volume_info(
- self.heketi_client_node, self.heketi_server_url, volume_id,
- json=True)
- self.assertTrue(out, ("Failed to get heketi volume info"))
- g.log.info("Successfully got the heketi volume info")
- name = out["name"]
-
- # Get gluster volume info
- g.log.info("Get gluster volume info")
- if self.deployment_type == "cns":
- gluster_pod = get_ocp_gluster_pod_names(
- self.heketi_client_node)[1]
- p = podcmd.Pod(self.heketi_client_node, gluster_pod)
- out = get_volume_info(p, volname=name)
- else:
- out = get_volume_info(self.heketi_client_node,
- volname=name)
- self.assertTrue(out, ("Failed to get volume info"))
- g.log.info("Successfully got the volume info")
- self.assertEqual(out[name]["typeStr"], "Distributed-Replicate",
- "Not a Distributed-Replicate volume")
-
- @podcmd.GlustoPod()
- def test_to_create_and_delete_dist_rep_vol(self):
- """
- Create distribute replicate heketi
- volume and delete it and check the available
- space
- """
-
- size = 610
- g.log.info("Creating a heketi volume")
- out = heketi_volume_create(self.heketi_client_node,
- self.heketi_server_url,
- size, json=True)
- self.assertTrue(out, ("Failed to create "
- "heketi volume of size %s" % str(size)))
- g.log.info("Successfully created heketi volume"
- " of size %s" % str(size))
- volume_id = out["bricks"][0]["volume"]
- name = out["name"]
-
- # Get gluster volume info
- g.log.info("Get gluster volume info")
- if self.deployment_type == "cns":
- gluster_pod = get_ocp_gluster_pod_names(
- self.heketi_client_node)[1]
- p = podcmd.Pod(self.heketi_client_node, gluster_pod)
- out = get_volume_info(p, volname=name)
- else:
- out = get_volume_info(self.heketi_client_node,
- volname=name)
- self.assertTrue(out, ("Failed to get volume info"))
- g.log.info("Successfully got the volume info")
- self.assertEqual(out[name]["typeStr"], "Distributed-Replicate",
- "Not a Distributed-Replicate volume")
-
- # Get the free space
- # After creating heketi volume
- free_space_after_creating_vol, _ = self.get_free_space()
-
- # Delete heketi volumes of size 60gb which was created
- g.log.info("Deleting heketi volumes")
- out = heketi_volume_delete(self.heketi_client_node,
- self.heketi_server_url,
- volume_id)
- if not out:
- raise ExecutionError("Failed to delete "
- "heketi volume %s" % volume_id)
- g.log.info("Heketi volume successfully deleted %s" % out)
-
- # Check the heketi volume list
- g.log.info("List heketi volumes")
- volumes = heketi_volume_list(self.heketi_client_node,
- self.heketi_server_url,
- json=True)
- self.assertTrue(volumes, ("Failed to list heketi volumes"))
- g.log.info("Heketi volumes successfully listed")
-
- # Check the gluster volume list
- g.log.info("Get the gluster volume list")
- if self.deployment_type == "cns":
- gluster_pod = get_ocp_gluster_pod_names(
- self.heketi_client_node)[1]
- p = podcmd.Pod(self.heketi_client_node, gluster_pod)
- out = get_volume_list(p)
- else:
- out = get_volume_list(self.heketi_client_node)
- self.assertTrue(out, ("Unable to get volume list"))
- g.log.info("Successfully got the volume list" % out)
-
- # Check the volume count are equal
- if (len(volumes["volumes"]) != len(out)):
- raise ExecutionError("Heketi volume list %s is"
- " not equal to gluster"
- " volume list %s" % ((volumes), (out)))
- g.log.info("Heketi volumes list %s and"
- " gluster volumes list %s" % ((volumes), (out)))
-
- # Get the used space
- # After deleting heketi volume
- free_space_after_deleting_vol, _ = self.get_free_space()
-
- # Compare the free size before and after deleting volume
- g.log.info("Comparing the free space before and after"
- " deleting volume")
- self.assertTrue(
- free_space_after_creating_vol < free_space_after_deleting_vol)
- g.log.info("Volume successfully deleted and space is"
- " reallocated. Free space after creating"
- " volume %s, Free space after deleting"
- " volume %s" % (
- free_space_after_creating_vol,
- free_space_after_deleting_vol))