diff options
author | Valerii Ponomarov <vponomar@redhat.com> | 2018-11-02 11:07:09 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.host.prod.eng.bos.redhat.com> | 2018-11-02 11:07:09 +0000 |
commit | 384cb369f256162606190e4df4767500668d3a7c (patch) | |
tree | 67f163cce5a7f8618283ad31d78ccb75506dfef4 /cns-libs | |
parent | 8b5560e755a31c1b8821576ae5815093170440ab (diff) | |
parent | 3bf447cc241f31cb0a75fff2b389c3d5cc1b199b (diff) |
Merge "[CNS-544][CNS-545] Added test cases for storage class parameters"
Diffstat (limited to 'cns-libs')
-rw-r--r-- | cns-libs/cnslibs/common/cns_libs.py | 4 | ||||
-rw-r--r-- | cns-libs/cnslibs/common/openshift_ops.py | 45 |
2 files changed, 46 insertions, 3 deletions
diff --git a/cns-libs/cnslibs/common/cns_libs.py b/cns-libs/cnslibs/common/cns_libs.py index 5b9a3027..370e05e3 100644 --- a/cns-libs/cnslibs/common/cns_libs.py +++ b/cns-libs/cnslibs/common/cns_libs.py @@ -414,7 +414,7 @@ def validate_multipath_pod(hostname, podname, hacount): active_node_count = 1 enable_node_count = hacount - 1 cmd = "multipath -ll | grep 'status=active' | wc -l" - ret, out, err = g.run(hostname, cmd, "root") + ret, out, err = g.run(pod_nodename, cmd, "root") if ret != 0 or out == "": g.log.error("failed to exectute cmd %s on %s, err %s" % (cmd, pod_nodename, out)) @@ -425,7 +425,7 @@ def validate_multipath_pod(hostname, podname, hacount): % (pod_nodename, podname, active_count)) return False cmd = "multipath -ll | grep 'status=enabled' | wc -l" - ret, out, err = g.run(hostname, cmd, "root") + ret, out, err = g.run(pod_nodename, cmd, "root") if ret != 0 or out == "": g.log.error("failed to exectute cmd %s on %s, err %s" % (cmd, pod_nodename, out)) 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): ''' |