diff options
author | Valerii Ponomarov <vponomar@redhat.com> | 2018-10-04 19:01:52 +0530 |
---|---|---|
committer | Valerii Ponomarov <vponomar@redhat.com> | 2018-10-18 18:13:50 +0530 |
commit | 2efe6caab6e6ca4aa79a9fad12acd113e6c082b0 (patch) | |
tree | 02d024920c1d802a8e280bd309643ee45ea53bfb /tests/functional/common/heketi/heketi_tests | |
parent | 56dd5f8b6b9396bb5f4f8d0d5a0914a5c60469b8 (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/heketi_tests')
-rw-r--r-- | tests/functional/common/heketi/heketi_tests/test_heketi_create_volume.py | 38 |
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') |