summaryrefslogtreecommitdiffstats
path: root/tests/functional/common/heketi
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2018-10-04 19:01:52 +0530
committerValerii Ponomarov <vponomar@redhat.com>2018-10-18 18:13:50 +0530
commit2efe6caab6e6ca4aa79a9fad12acd113e6c082b0 (patch)
tree02d024920c1d802a8e280bd309643ee45ea53bfb /tests/functional/common/heketi
parent56dd5f8b6b9396bb5f4f8d0d5a0914a5c60469b8 (diff)
[CNS-550] Try to create block volume exceeding free space
Validate behaviour of the system when we try to create block volume of size bigger than we have available free space. Change-Id: I754e09f7fc27ce9b7ac2b01dda163ce20573e963
Diffstat (limited to 'tests/functional/common/heketi')
-rw-r--r--tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py b/tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py
index 38f6c4e9..90ae7b51 100644
--- a/tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py
+++ b/tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py
@@ -8,6 +8,8 @@ from cnslibs.common.heketi_ops import (heketi_volume_create,
heketi_volume_list,
heketi_volume_info,
heketi_volume_delete,
+ heketi_blockvolume_create,
+ heketi_blockvolume_delete,
heketi_cluster_list,
heketi_cluster_delete,
heketi_node_list,
@@ -196,3 +198,39 @@ class TestHeketiVolume(HeketiClientSetupBaseClass):
self.heketi_server_url)
self.assertTrue(node_list, ("Failed to list heketi nodes"))
g.log.info("Successfully got the list of nodes")
+
+ def test_blockvolume_create_no_free_space(self):
+ """Test case CNS-550"""
+
+ # Create first small blockvolume
+ blockvol1 = heketi_blockvolume_create(
+ self.heketi_client_node, self.heketi_server_url, 1, json=True)
+ self.assertTrue(blockvol1, "Failed to create block volume.")
+ self.addCleanup(
+ heketi_blockvolume_delete, self.heketi_client_node,
+ self.heketi_server_url, blockvol1['id'])
+
+ # Get info about block hosting volume available space
+ file_volumes = heketi_volume_list(
+ self.heketi_client_node, self.heketi_server_url, json=True)
+ self.assertTrue(file_volumes)
+ max_freesize = 0
+ for vol_id in file_volumes["volumes"]:
+ vol = heketi_volume_info(
+ self.heketi_client_node, self.heketi_server_url,
+ vol_id, json=True)
+ current_freesize = vol.get("blockinfo", {}).get("freesize", 0)
+ if current_freesize > max_freesize:
+ max_freesize = current_freesize
+ self.assertGreater(max_freesize, 0)
+
+ # Try to create blockvolume with size bigger than available
+ too_big_vol_size = max_freesize + 1
+ blockvol2 = heketi_blockvolume_create(
+ self.heketi_client_node, self.heketi_server_url,
+ too_big_vol_size, json=True)
+ if blockvol2 and blockvol2.get('id'):
+ self.addCleanup(
+ heketi_blockvolume_delete, self.heketi_client_node,
+ self.heketi_server_url, blockvol2['id'])
+ self.assertFalse(blockvol2, 'Volume unexpectedly was created')