From c69180accc49392b242f56f226cf5efeaa9cebcb Mon Sep 17 00:00:00 2001 From: vamahaja Date: Mon, 29 Jun 2020 13:03:53 +0530 Subject: [LibFix] Add 'collect_logs' param in 'oc_delete' lib Change-Id: I9d99f367b82c6570e1390c6b137e0b9bf401a19c Signed-off-by: vamahaja --- .../openshiftstoragelibs/baseclass.py | 3 +++ .../openshiftstoragelibs/openshift_ops.py | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'openshift-storage-libs/openshiftstoragelibs') diff --git a/openshift-storage-libs/openshiftstoragelibs/baseclass.py b/openshift-storage-libs/openshiftstoragelibs/baseclass.py index 2d6ba69e..99082ac9 100644 --- a/openshift-storage-libs/openshiftstoragelibs/baseclass.py +++ b/openshift-storage-libs/openshiftstoragelibs/baseclass.py @@ -116,6 +116,9 @@ class BaseClass(unittest.TestCase): 'storage_class1', cls.storage_classes.get('file_storage_class')) cls.secret_type = "kubernetes.io/glusterfs" + cls.heketi_logs_before_delete = bool( + g.config.get("common", {}).get("heketi_logs_before_delete", False)) + cmd = "echo -n %s | base64" % cls.heketi_cli_key ret, out, err = g.run(cls.ocp_master_node[0], cmd, "root") if ret != 0: diff --git a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py index 93bd847a..ccacfeb5 100644 --- a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py +++ b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py @@ -452,8 +452,9 @@ def oc_create_tiny_pod_with_volume(hostname, pvc_name, pod_name_prefix='', return pod_name -def oc_delete(ocp_node, rtype, name, raise_on_absence=True): - """Delete an OCP resource by name. +def oc_delete( + ocp_node, rtype, name, raise_on_absence=True, collect_logs=False): + """Delete an OCP resource by name Args: ocp_node (str): Node on which the ocp command will run. @@ -463,16 +464,22 @@ def oc_delete(ocp_node, rtype, name, raise_on_absence=True): exception if value is true, else return default value: True + collect_logs (bool): Collect logs before deleting resource """ - if not oc_get_yaml(ocp_node, rtype, name, - raise_on_error=raise_on_absence): + if not oc_get_yaml(ocp_node, rtype, name, raise_on_error=raise_on_absence): return + + if rtype == "pod" and collect_logs: + cmd = [ + 'oc', 'logs', name, + '&>', '{}_$(date +%Y-%m-%d-%H-%m-%s).log'.format(name)] + command.cmd_run(cmd, hostname=ocp_node) + cmd = ['oc', 'delete', rtype, name] if openshift_version.get_openshift_version() >= '3.11': cmd.append('--wait=false') command.cmd_run(cmd, hostname=ocp_node) - g.log.info('Deleted resource: %r %r', rtype, name) def oc_get_custom_resource(ocp_node, rtype, custom, name=None, selector=None, -- cgit