diff options
author | Valerii Ponomarov <vponomar@redhat.com> | 2019-04-02 22:35:45 +0530 |
---|---|---|
committer | vponomar <vponomar@redhat.com> | 2019-04-11 11:56:38 +0000 |
commit | 0b2c88ee59b52312c86bcceea1645a57671894af (patch) | |
tree | 4379ea502d11cea577ec4c3de9c606b9bfc231a4 /openshift-storage-libs/openshiftstoragelibs/openshift_ops.py | |
parent | 5fe05c3d09126453423a3d2ee97a4586ec6592c1 (diff) |
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
Diffstat (limited to 'openshift-storage-libs/openshiftstoragelibs/openshift_ops.py')
-rw-r--r-- | openshift-storage-libs/openshiftstoragelibs/openshift_ops.py | 26 |
1 files changed, 23 insertions, 3 deletions
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, |