Просмотр исходного кода

openshift_checks: allow OVS 2.7 on OCP 3.5 and 3.6

rpm_version: Allow package_list items to specify a list value for version.
If a list value is provided for a package, pass the check if any version in
that list is found.

ovs_version: Specify both 2.6 and 2.7 as allowed versions of OVS for
OpenShift versions 3.5 and 3.6.
Miciah Masters 7 лет назад
Родитель
Сommit
7df38035f5

+ 10 - 4
roles/openshift_health_checker/library/rpm_version.py

@@ -4,6 +4,7 @@ Ansible module for rpm-based systems determining existing package version inform
 """
 
 from ansible.module_utils.basic import AnsibleModule
+from ansible.module_utils.six import string_types
 
 IMPORT_EXCEPTION = None
 try:
@@ -82,11 +83,16 @@ def _check_pkg_versions(found_pkgs_dict, expected_pkgs_dict):
             continue
 
         found_versions = [_parse_version(version) for version in found_pkgs_dict[pkg_name]]
-        expected_version = _parse_version(pkg["version"])
-        if expected_version not in found_versions:
+
+        if isinstance(pkg["version"], string_types):
+            expected_versions = [_parse_version(pkg["version"])]
+        else:
+            expected_versions = [_parse_version(version) for version in pkg["version"]]
+
+        if not set(expected_versions) & set(found_versions):
             invalid_pkg_versions[pkg_name] = {
                 "found_versions": found_versions,
-                "required_version": expected_version,
+                "required_versions": expected_versions,
             }
 
     if not_found_pkgs:
@@ -106,7 +112,7 @@ def _check_pkg_versions(found_pkgs_dict, expected_pkgs_dict):
                 "The following packages were found to be installed with an incorrect version: {}".format('\n'.join([
                     "    \n{}\n    Required version: {}\n    Found versions: {}".format(
                         pkg_name,
-                        pkg["required_version"],
+                        ', '.join(pkg["required_versions"]),
                         ', '.join([version for version in pkg["found_versions"]]))
                     for pkg_name, pkg in invalid_pkg_versions.items()
                 ]))

+ 2 - 2
roles/openshift_health_checker/openshift_checks/ovs_version.py

@@ -16,8 +16,8 @@ class OvsVersion(NotContainerizedMixin, OpenShiftCheck):
     tags = ["health"]
 
     openshift_to_ovs_version = {
-        "3.6": "2.6",
-        "3.5": "2.6",
+        "3.6": ["2.6", "2.7"],
+        "3.5": ["2.6", "2.7"],
         "3.4": "2.4",
     }
 

+ 2 - 2
roles/openshift_health_checker/test/ovs_version_test.py

@@ -38,8 +38,8 @@ def test_invalid_openshift_release_format():
 
 
 @pytest.mark.parametrize('openshift_release,expected_ovs_version', [
-    ("3.5", "2.6"),
-    ("3.6", "2.6"),
+    ("3.5", ["2.6", "2.7"]),
+    ("3.6", ["2.6", "2.7"]),
     ("3.4", "2.4"),
     ("3.3", "2.4"),
     ("1.0", "2.4"),

+ 3 - 3
roles/openshift_health_checker/test/rpm_version_test.py

@@ -49,7 +49,7 @@ def test_check_pkg_found(pkgs, expect_not_found):
         },
         {
             "eggs": {
-                "required_version": "3.2",
+                "required_versions": ["3.2"],
                 "found_versions": ["3.3"],
             }
         },  # not the right version
@@ -61,11 +61,11 @@ def test_check_pkg_found(pkgs, expect_not_found):
         },
         {
             "eggs": {
-                "required_version": "3.2",
+                "required_versions": ["3.2"],
                 "found_versions": ["3.3", "1.2"],
             },
             "spam": {
-                "required_version": "3.2",
+                "required_versions": ["3.2"],
                 "found_versions": ["3.1", "3.3"],
             }
         },  # not the right version