From 3bf447cc241f31cb0a75fff2b389c3d5cc1b199b Mon Sep 17 00:00:00 2001 From: vamahaja Date: Thu, 11 Oct 2018 18:58:11 +0530 Subject: [CNS-544][CNS-545] Added test cases for storage class parameters Change-Id: Iae63d250d4e0277ee7559e73df6114faf918c283 Signed-off-by: vamahaja --- cns-libs/cnslibs/common/openshift_ops.py | 45 +++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'cns-libs/cnslibs/common/openshift_ops.py') diff --git a/cns-libs/cnslibs/common/openshift_ops.py b/cns-libs/cnslibs/common/openshift_ops.py index e86010cb..212e4b30 100644 --- a/cns-libs/cnslibs/common/openshift_ops.py +++ b/cns-libs/cnslibs/common/openshift_ops.py @@ -22,7 +22,10 @@ from cnslibs.common import exceptions from cnslibs.common import podcmd from cnslibs.common import utils from cnslibs.common import waiter - +from cnslibs.common.heketi_ops import ( + heketi_blockvolume_info, + heketi_volume_info, +) PODS_WIDE_RE = re.compile( '(\S+)\s+(\S+)\s+(\w+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+).*\n') @@ -744,6 +747,46 @@ def get_gluster_vol_info_by_pvc_name(ocp_node, pvc_name): return vol_info +def get_gluster_blockvol_info_by_pvc_name(ocp_node, heketi_server_url, + pvc_name): + """Get Gluster block volume info based on the PVC name. + + Args: + ocp_node (str): Node to execute OCP commands on. + heketi_server_url (str): Heketi server url + pvc_name (str): Name of a PVC to get bound Gluster block volume info. + Returns: + dict: Dictionary containting data about a Gluster block volume. + """ + + # Get block volume Name and ID from PV which is bound to our PVC + get_block_vol_data_cmd = ( + 'oc get pv --no-headers -o custom-columns=' + ':.metadata.annotations.glusterBlockShare,' + ':.metadata.annotations."gluster\.org\/volume\-id",' + ':.spec.claimRef.name | grep "%s"' % pvc_name) + out = command.cmd_run(get_block_vol_data_cmd, hostname=ocp_node) + parsed_out = filter(None, map(str.strip, out.split(" "))) + assert len(parsed_out) == 3, "Expected 3 fields in following: %s" % out + block_vol_name, block_vol_id = parsed_out[:2] + + # Get block hosting volume ID + block_hosting_vol_id = heketi_blockvolume_info( + ocp_node, heketi_server_url, block_vol_id, json=True + )["blockhostingvolume"] + + # Get block hosting volume name by it's ID + block_hosting_vol_name = heketi_volume_info( + ocp_node, heketi_server_url, block_hosting_vol_id, json=True)['name'] + + # Get Gluster block volume info + vol_info_cmd = "oc exec %s -- gluster-block info %s/%s --json" % ( + get_ocp_gluster_pod_names(ocp_node)[0], + block_hosting_vol_name, block_vol_name) + + return json.loads(command.cmd_run(vol_info_cmd, hostname=ocp_node)) + + def wait_for_pod_be_ready(hostname, pod_name, timeout=1200, wait_step=60): ''' -- cgit