summaryrefslogtreecommitdiffstats
path: root/cns-libs/cnslibs/common/openshift_ops.py
diff options
context:
space:
mode:
authorvamahaja <vamahaja@redhat.com>2018-09-30 16:14:01 +0530
committervamahaja <vamahaja@redhat.com>2018-09-30 16:14:01 +0530
commit014521179de579dc4744ab36efc0c2f8881e2f3c (patch)
tree989d810c931892635a0897aff7737de721e1d546 /cns-libs/cnslibs/common/openshift_ops.py
parent0b6fcb9989287cc2748312dc59d52d38f7fda1ad (diff)
[CNS-1393][CNS-1394][CNS-1395] Restart glusterfs services test cases
Change-Id: I0d2de16928de8a533745876094c673152012d812
Diffstat (limited to 'cns-libs/cnslibs/common/openshift_ops.py')
-rw-r--r--cns-libs/cnslibs/common/openshift_ops.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/cns-libs/cnslibs/common/openshift_ops.py b/cns-libs/cnslibs/common/openshift_ops.py
index 4131ea9c..35251a39 100644
--- a/cns-libs/cnslibs/common/openshift_ops.py
+++ b/cns-libs/cnslibs/common/openshift_ops.py
@@ -463,6 +463,50 @@ def oc_delete(ocp_node, rtype, name):
return
+def oc_get_custom_resource(ocp_node, rtype, custom, name=None, selector=None,
+ raise_on_error=True):
+ """Get an OCP resource by custom column names.
+
+ Args:
+ ocp_node (str): Node on which the ocp command will run.
+ rtype (str): Name of the resource type (pod, storageClass, etc).
+ custom (str): Name of the custom columm to fetch.
+ name (str|None): Name of the resource to fetch.
+ selector (str|list|None): Column Name or list of column
+ names select to.
+ raise_on_error (bool): If set to true a failure to fetch
+ resource inforation will raise an error, otherwise
+ an empty dict will be returned.
+ Returns:
+ list: List containting data about the resource custom column
+ Raises:
+ AssertionError: Raised when unable to get resource and
+ `raise_on_error` is true.
+ """
+ cmd = [
+ 'oc', 'get',
+ rtype,
+ '--no-headers',
+ '-o=custom-columns=:%s' % custom
+ ]
+
+ if selector:
+ cmd.append('--selector %s' % (
+ ",".join(selector) if type(selector) is list else selector))
+
+ if name:
+ cmd.append(name)
+ ret, out, err = g.run(ocp_node, cmd)
+ if ret != 0:
+ g.log.error('Failed to get %s: %s: %r', rtype, name, err)
+ if raise_on_error:
+ raise AssertionError('failed to get %s: %s: %r'
+ % (rtype, name, err))
+ return []
+
+ return out.strip() if name else out.strip().split("\n")
+
+
def oc_get_yaml(ocp_node, rtype, name=None, raise_on_error=True):
"""Get an OCP resource by name.