summaryrefslogtreecommitdiffstats
path: root/cns-libs/cnslibs/common/openshift_ops.py
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2018-11-02 11:07:09 +0000
committerGerrit Code Review <gerrit2@gerrit.host.prod.eng.bos.redhat.com>2018-11-02 11:07:09 +0000
commit384cb369f256162606190e4df4767500668d3a7c (patch)
tree67f163cce5a7f8618283ad31d78ccb75506dfef4 /cns-libs/cnslibs/common/openshift_ops.py
parent8b5560e755a31c1b8821576ae5815093170440ab (diff)
parent3bf447cc241f31cb0a75fff2b389c3d5cc1b199b (diff)
Merge "[CNS-544][CNS-545] Added test cases for storage class parameters"
Diffstat (limited to 'cns-libs/cnslibs/common/openshift_ops.py')
-rw-r--r--cns-libs/cnslibs/common/openshift_ops.py45
1 files changed, 44 insertions, 1 deletions
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):
'''