diff options
author | Nitin Goyal <nigoyal@redhat.com> | 2019-09-06 11:26:56 +0530 |
---|---|---|
committer | Nitin Goyal <nigoyal@redhat.com> | 2019-09-06 17:00:15 +0530 |
commit | 201f4c8c1a7877e10e46545dd5db02440803b1d3 (patch) | |
tree | 3b9f7ed0313b4b3a79dfd29ff51ca71ad91e8033 /tests/functional/heketi/test_heketi_volume_operations.py | |
parent | 0a2bbc8f044fd56ac5d407bb082db0ca66fa04c2 (diff) |
Add TC verify heketi mount point
Add new TC where we verify given heketi mount point in volume info
is working.
Change-Id: Ia03af9ea6729cdfadf663abe46db7184a8b6fe2c
Diffstat (limited to 'tests/functional/heketi/test_heketi_volume_operations.py')
-rw-r--r-- | tests/functional/heketi/test_heketi_volume_operations.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/functional/heketi/test_heketi_volume_operations.py b/tests/functional/heketi/test_heketi_volume_operations.py index c5fc4f84..696a2985 100644 --- a/tests/functional/heketi/test_heketi_volume_operations.py +++ b/tests/functional/heketi/test_heketi_volume_operations.py @@ -1,10 +1,14 @@ from openshiftstoragelibs.baseclass import BaseClass +from openshiftstoragelibs.command import cmd_run from openshiftstoragelibs.heketi_ops import ( + heketi_node_info, heketi_volume_create, heketi_volume_delete, heketi_volume_expand, heketi_volume_info, ) +from openshiftstoragelibs.openshift_ops import cmd_run_on_gluster_pod_or_node +from openshiftstoragelibs import utils class TestHeketiVolumeOperations(BaseClass): @@ -68,3 +72,49 @@ class TestHeketiVolumeOperations(BaseClass): ("Volume Expansion failed Expected Size: %s, Actual " "Size: %s" % (str(expected_size), str(volume_info['size'])))) + + def test_heketi_volume_mount(self): + self.node = self.ocp_master_node[0] + try: + cmd_run('rpm -q glusterfs-fuse', self.node) + except AssertionError: + self.skipTest( + "gluster-fuse package is not present on Node %s" % self.node) + + h_node, h_url = self.heketi_client_node, self.heketi_server_url + + # Create volume + vol_info = heketi_volume_create(h_node, h_url, 2, json=True) + self.addCleanup(heketi_volume_delete, h_node, h_url, vol_info['id']) + + mount_point = vol_info['mount']['glusterfs']['device'] + mount_dir = '/mnt/dir-%s' % utils.get_random_str() + mount_cmd = 'mount -t glusterfs %s %s' % (mount_point, mount_dir) + + # Create directory to mount volume + cmd_run('mkdir %s' % mount_dir, self.node) + self.addCleanup(cmd_run, 'rm -rf %s' % mount_dir, self.node) + + # Mount volume + cmd_run(mount_cmd, self.node) + self.addCleanup(cmd_run, 'umount %s' % mount_dir, self.node) + + # Run I/O to make sure Mount point works + _file = 'file' + run_io_cmd = ( + 'dd if=/dev/urandom of=%s/%s bs=4k count=1000' % ( + mount_dir, _file)) + + # Verify size of volume + cmd_run(run_io_cmd, self.node) + size = cmd_run( + 'df -kh --output=size %s | tail -1' % mount_dir, self.node).strip() + self.assertEqual('2.0G', size) + + # Verify file on gluster vol bricks + for brick in vol_info['bricks']: + node_id = brick['node'] + node_info = heketi_node_info(h_node, h_url, node_id, json=True) + brick_host = node_info['hostnames']['storage'][0] + cmd_run_on_gluster_pod_or_node(self.node, 'ls %s/%s' % ( + brick['path'], _file), brick_host) |