summaryrefslogtreecommitdiffstats
path: root/openshift-storage-libs/openshiftstoragelibs
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2019-04-02 22:35:45 +0530
committervponomar <vponomar@redhat.com>2019-04-11 11:56:38 +0000
commit0b2c88ee59b52312c86bcceea1645a57671894af (patch)
tree4379ea502d11cea577ec4c3de9c606b9bfc231a4 /openshift-storage-libs/openshiftstoragelibs
parent5fe05c3d09126453423a3d2ee97a4586ec6592c1 (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')
-rw-r--r--openshift-storage-libs/openshiftstoragelibs/baseclass.py8
-rw-r--r--openshift-storage-libs/openshiftstoragelibs/openshift_ops.py26
-rw-r--r--openshift-storage-libs/openshiftstoragelibs/openshift_version.py2
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