|
@@ -1,8 +1,6 @@
|
|
|
"""Check that available RPM packages match the required versions."""
|
|
|
|
|
|
-import re
|
|
|
-
|
|
|
-from openshift_checks import OpenShiftCheck, OpenShiftCheckException
|
|
|
+from openshift_checks import OpenShiftCheck
|
|
|
from openshift_checks.mixins import NotContainerizedMixin
|
|
|
|
|
|
|
|
@@ -18,6 +16,8 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
|
|
|
(3, 5): ["2.6", "2.7"],
|
|
|
(3, 6): ["2.6", "2.7", "2.8"],
|
|
|
(3, 7): ["2.6", "2.7", "2.8"],
|
|
|
+ (3, 8): ["2.6", "2.7", "2.8"],
|
|
|
+ (3, 9): ["2.6", "2.7", "2.8"],
|
|
|
}
|
|
|
|
|
|
openshift_to_docker_version = {
|
|
@@ -27,11 +27,9 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
|
|
|
(3, 4): "1.12",
|
|
|
(3, 5): "1.12",
|
|
|
(3, 6): "1.12",
|
|
|
- }
|
|
|
-
|
|
|
- # map major OpenShift release versions across releases to a common major version
|
|
|
- map_major_release_version = {
|
|
|
- 1: 3,
|
|
|
+ (3, 7): "1.12",
|
|
|
+ (3, 8): "1.12",
|
|
|
+ (3, 9): ["1.12", "1.13"],
|
|
|
}
|
|
|
|
|
|
def is_active(self):
|
|
@@ -83,48 +81,8 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
|
|
|
|
|
|
def get_required_ovs_version(self):
|
|
|
"""Return the correct Open vSwitch version(s) for the current OpenShift version."""
|
|
|
- openshift_version = self.get_openshift_version_tuple()
|
|
|
-
|
|
|
- earliest = min(self.openshift_to_ovs_version)
|
|
|
- latest = max(self.openshift_to_ovs_version)
|
|
|
- if openshift_version < earliest:
|
|
|
- return self.openshift_to_ovs_version[earliest]
|
|
|
- if openshift_version > latest:
|
|
|
- return self.openshift_to_ovs_version[latest]
|
|
|
-
|
|
|
- ovs_version = self.openshift_to_ovs_version.get(openshift_version)
|
|
|
- if not ovs_version:
|
|
|
- msg = "There is no recommended version of Open vSwitch for the current version of OpenShift: {}"
|
|
|
- raise OpenShiftCheckException(msg.format(".".join(str(comp) for comp in openshift_version)))
|
|
|
-
|
|
|
- return ovs_version
|
|
|
+ return self.get_required_version("Open vSwitch", self.openshift_to_ovs_version)
|
|
|
|
|
|
def get_required_docker_version(self):
|
|
|
"""Return the correct Docker version(s) for the current OpenShift version."""
|
|
|
- openshift_version = self.get_openshift_version_tuple()
|
|
|
-
|
|
|
- earliest = min(self.openshift_to_docker_version)
|
|
|
- latest = max(self.openshift_to_docker_version)
|
|
|
- if openshift_version < earliest:
|
|
|
- return self.openshift_to_docker_version[earliest]
|
|
|
- if openshift_version > latest:
|
|
|
- return self.openshift_to_docker_version[latest]
|
|
|
-
|
|
|
- docker_version = self.openshift_to_docker_version.get(openshift_version)
|
|
|
- if not docker_version:
|
|
|
- msg = "There is no recommended version of Docker for the current version of OpenShift: {}"
|
|
|
- raise OpenShiftCheckException(msg.format(".".join(str(comp) for comp in openshift_version)))
|
|
|
-
|
|
|
- return docker_version
|
|
|
-
|
|
|
- def get_openshift_version_tuple(self):
|
|
|
- """Return received image tag as a normalized (X, Y) minor version tuple."""
|
|
|
- version = self.get_var("openshift_image_tag")
|
|
|
- comps = [int(component) for component in re.findall(r'\d+', version)]
|
|
|
-
|
|
|
- if len(comps) < 2:
|
|
|
- msg = "An invalid version of OpenShift was found for this host: {}"
|
|
|
- raise OpenShiftCheckException(msg.format(version))
|
|
|
-
|
|
|
- comps[0] = self.map_major_release_version.get(comps[0], comps[0])
|
|
|
- return tuple(comps[0:2])
|
|
|
+ return self.get_required_version("Docker", self.openshift_to_docker_version)
|