summaryrefslogtreecommitdiffstats
path: root/tests/functional/heketi/test_heketi_volume_operations.py
diff options
context:
space:
mode:
authorNitin Goyal <nigoyal@redhat.com>2019-09-06 11:26:56 +0530
committerNitin Goyal <nigoyal@redhat.com>2019-09-06 17:00:15 +0530
commit201f4c8c1a7877e10e46545dd5db02440803b1d3 (patch)
tree3b9f7ed0313b4b3a79dfd29ff51ca71ad91e8033 /tests/functional/heketi/test_heketi_volume_operations.py
parent0a2bbc8f044fd56ac5d407bb082db0ca66fa04c2 (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.py50
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)