diff options
4 files changed, 17 insertions, 11 deletions
diff --git a/roles/openshift_health_checker/library/rpm_version.py b/roles/openshift_health_checker/library/rpm_version.py index 8ea223055..c24fbba3b 100644 --- a/roles/openshift_health_checker/library/rpm_version.py +++ b/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()                  ])) diff --git a/roles/openshift_health_checker/openshift_checks/ovs_version.py b/roles/openshift_health_checker/openshift_checks/ovs_version.py index d5e55bc25..363c12def 100644 --- a/roles/openshift_health_checker/openshift_checks/ovs_version.py +++ b/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",      } diff --git a/roles/openshift_health_checker/test/ovs_version_test.py b/roles/openshift_health_checker/test/ovs_version_test.py index b6acef5a6..e1bf29d2a 100644 --- a/roles/openshift_health_checker/test/ovs_version_test.py +++ b/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"), diff --git a/roles/openshift_health_checker/test/rpm_version_test.py b/roles/openshift_health_checker/test/rpm_version_test.py index 2f09ef965..2c1bcf876 100644 --- a/roles/openshift_health_checker/test/rpm_version_test.py +++ b/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  | 
