From 0b2c88ee59b52312c86bcceea1645a57671894af Mon Sep 17 00:00:00 2001 From: Valerii Ponomarov Date: Tue, 2 Apr 2019 22:35:45 +0530 Subject: Fix support of OCP3.6 and 3.7 Project has lots of inconsistencies with OCP3.6 and 3.7 So, fix it. Change-Id: I8d38773637b779e1c2e1631568f100c1ab1fdd50 --- .../openshiftstoragelibs/openshift_ops.py | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'openshift-storage-libs/openshiftstoragelibs/openshift_ops.py') diff --git a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py index ae0de983..26d7d0b6 100644 --- a/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py +++ b/openshift-storage-libs/openshiftstoragelibs/openshift_ops.py @@ -1298,9 +1298,29 @@ def get_events(hostname, field_selector.append('reason=%s' % event_reason) if event_type: field_selector.append('type=%s' % event_type) - cmd = "oc get events -o yaml --field-selector %s" % ",".join( - field_selector or "''") - return yaml.load(command.cmd_run(cmd, hostname=hostname))['items'] + cmd = "oc get events -o yaml" + if openshift_version.get_openshift_version() >= '3.9': + cmd.append(" --field-selector %s" % ",".join(field_selector or "''")) + objects = yaml.load(command.cmd_run(cmd, hostname=hostname))['items'] + if openshift_version.get_openshift_version() >= '3.9': + return objects + + # Backup approach for OCP3.6 and OCP3.7 which do not have + # '--field-selector' feature. + filtered_objects = [] + for o in objects: + if obj_name and o["involvedObject"]["name"] != obj_name: + continue + if obj_namespace and o["involvedObject"]["namespace"] != obj_namespace: + continue + if obj_type and o["involvedObject"]["kind"] != obj_type: + continue + if event_reason and o["reason"] != event_reason: + continue + if event_type and o["type"] != event_type: + continue + filtered_objects.append(o) + return filtered_objects def wait_for_events(hostname, -- cgit