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 | |
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')
3 files changed, 30 insertions, 6 deletions
diff --git a/openshift-storage-libs/openshiftstoragelibs/baseclass.py b/openshift-storage-libs/openshiftstoragelibs/baseclass.py index 375ab7c0..9b6976f6 100644 --- a/openshift-storage-libs/openshiftstoragelibs/baseclass.py +++ b/openshift-storage-libs/openshiftstoragelibs/baseclass.py @@ -28,6 +28,7 @@ from openshiftstoragelibs.openshift_ops import ( wait_for_pod_be_ready, wait_for_resource_absence, ) +from openshiftstoragelibs.openshift_version import get_openshift_version class BaseClass(unittest.TestCase): @@ -214,8 +215,11 @@ class BaseClass(unittest.TestCase): for pvc_name in pvc_names: verify_pvc_status_is_bound(node, pvc_name, timeout, wait_step) finally: - reclaim_policy = oc_get_custom_resource( - node, 'sc', ':.reclaimPolicy', sc_name)[0] + if get_openshift_version() < "3.9": + reclaim_policy = "Delete" + else: + reclaim_policy = oc_get_custom_resource( + node, 'sc', ':.reclaimPolicy', sc_name)[0] for pvc_name in pvc_names: if reclaim_policy == 'Retain': 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, diff --git a/openshift-storage-libs/openshiftstoragelibs/openshift_version.py b/openshift-storage-libs/openshiftstoragelibs/openshift_version.py index bc0c9be0..e1e7adaf 100644 --- a/openshift-storage-libs/openshiftstoragelibs/openshift_version.py +++ b/openshift-storage-libs/openshiftstoragelibs/openshift_version.py @@ -31,7 +31,7 @@ import six from openshiftstoragelibs import exceptions -OPENSHIFT_VERSION_RE = r"(?:v?)(\d+)(?:\.)(\d+)(?:\.(\d+))?$" +OPENSHIFT_VERSION_RE = r"(?:v?)(\d+)(?:\.)(\d+)(?:\.(\d+))?.*" OPENSHIFT_VERSION = None |