From a9b27974c785db4d52ec16faaaa4778d26c42dbb Mon Sep 17 00:00:00 2001 From: vamahaja Date: Wed, 6 Nov 2019 11:14:17 +0530 Subject: Fix test case "test_heketi_node_add_with_valid_cluster" Fix consists of - - Remove steps for add device validation. - Add steps for gluser peer status validation. - Add steps for endpoints validation. Change-Id: I773a883b1ea8bb2bc93660db3459fd864fcd1317 Signed-off-by: vamahaja --- .../openshiftstoragelibs/heketi_ops.py | 39 ++++++++++++++++++++++ .../openshiftstoragelibs/openshift_ops.py | 30 +++++++++++++++++ 2 files changed, 69 insertions(+) (limited to 'openshift-storage-libs/openshiftstoragelibs') diff --git a/openshift-storage-libs/openshiftstoragelibs/heketi_ops.py b/openshift-storage-libs/openshiftstoragelibs/heketi_ops.py index c28c98d2..7cb04784 100644 --- a/openshift-storage-libs/openshiftstoragelibs/heketi_ops.py +++ b/openshift-storage-libs/openshiftstoragelibs/heketi_ops.py @@ -1739,3 +1739,42 @@ def heketi_db_check(heketi_client_node, heketi_server_url, **kwargs): cmd = TIMEOUT_PREFIX + cmd out = heketi_cmd_run(heketi_client_node, cmd) return json.loads(out) + + +def heketi_volume_endpoint_patch( + heketi_client_node, heketi_server_url, volume_id, **kwargs): + """Execute heketi volume endpoint patch command. + + Args: + heketi_client_node (str): Node on which cmd has to be executed. + heketi_server_url (str): Heketi server url + volume_id (str): Volume ID + + Kwargs: + The keys, values in kwargs are: + - secret : (str)|None + - user : (str)|None + + Returns: + dict: endpoint info on success + + Raises: + exceptions.AssertionError: if command fails. + """ + version = heketi_version.get_heketi_version(heketi_client_node) + if version < '9.0.0-1': + msg = ( + "heketi-client package %s does not support endpoint patch " + "functionality" % version.v_str) + g.log.error(msg) + raise NotImplementedError(msg) + + heketi_server_url, _, admin_key, user = _set_heketi_global_flags( + heketi_server_url, **kwargs) + + cmd = "heketi-cli -s %s volume endpoint patch %s %s %s" % ( + heketi_server_url, volume_id, admin_key, user) + cmd = TIMEOUT_PREFIX + cmd + out = heketi_cmd_run(heketi_client_node, cmd) + + return json.loads(out) diff --git a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py index bee7af4c..87dd634f 100644 --- a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py +++ b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py @@ -1842,3 +1842,33 @@ def oc_create_service_monitor(hostname, sm_name="heketi", }) oc_create(hostname, sm_data, 'stdin') return sm_name + + +def oc_patch(ocp_node, rtype, rname, changes, raise_on_error=True): + """Patch openshift resource with change + + Args: + ocp_node (str): Node on which the ocp command will run. + rtype (str): Name of the resource type (pod, storageClass, etc). + rname (str): Name of the resource to fetch. + changes (dict): Changes to be applied through patch. + raise_on_error (bool): If set to true a failure to patch + resource with changes will raise an error, otherwise + an None will be returned. + Returns: + str : output of oc patch command + Raises: + exceptions.ExecutionError: Raise when invalid json is provided. + AssertionError: Raised when unable to patch resource and + 'raise_on_error' is true. + """ + try: + changes = json.dumps(changes) + except TypeError: + raise exceptions.ExecutionError( + "Json %s is not serializable to string") + + cmd = ['oc', 'patch', rtype, rname, '-p', '\'%s\'' % changes] + out = command.cmd_run( + cmd, hostname=ocp_node, raise_on_error=raise_on_error) + return out or None -- cgit