From 201f4c8c1a7877e10e46545dd5db02440803b1d3 Mon Sep 17 00:00:00 2001 From: Nitin Goyal Date: Fri, 6 Sep 2019 11:26:56 +0530 Subject: Add TC verify heketi mount point Add new TC where we verify given heketi mount point in volume info is working. Change-Id: Ia03af9ea6729cdfadf663abe46db7184a8b6fe2c --- .../heketi/test_heketi_volume_operations.py | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'tests/functional') 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) -- cgit