Pārlūkot izejas kodu

Merge pull request #3887 from rhcarvalho/pkg-version-only-master-or-node

Merged by openshift-bot
OpenShift Bot 8 gadi atpakaļ
vecāks
revīzija
54f32cf9d6

+ 7 - 0
roles/openshift_health_checker/openshift_checks/package_version.py

@@ -9,6 +9,13 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
     name = "package_version"
     tags = ["preflight"]
 
+    @classmethod
+    def is_active(cls, task_vars):
+        """Skip hosts that do not have package requirements."""
+        group_names = get_var(task_vars, "group_names", default=[])
+        master_or_node = 'masters' in group_names or 'nodes' in group_names
+        return super(PackageVersion, cls).is_active(task_vars) and master_or_node
+
     def run(self, tmp, task_vars):
         args = {
             "requested_openshift_release": get_var(task_vars, "openshift_release", default=''),

+ 22 - 0
roles/openshift_health_checker/test/package_version_test.py

@@ -1,3 +1,5 @@
+import pytest
+
 from openshift_checks.package_version import PackageVersion
 
 
@@ -22,3 +24,23 @@ def test_package_version():
     check = PackageVersion(execute_module=execute_module)
     result = check.run(tmp=None, task_vars=task_vars)
     assert result is return_value
+
+
+@pytest.mark.parametrize('group_names,is_containerized,is_active', [
+    (['masters'], False, True),
+    # ensure check is skipped on containerized installs
+    (['masters'], True, False),
+    (['nodes'], False, True),
+    (['masters', 'nodes'], False, True),
+    (['masters', 'etcd'], False, True),
+    ([], False, False),
+    (['etcd'], False, False),
+    (['lb'], False, False),
+    (['nfs'], False, False),
+])
+def test_package_version_skip_when_not_master_nor_node(group_names, is_containerized, is_active):
+    task_vars = dict(
+        group_names=group_names,
+        openshift=dict(common=dict(is_containerized=is_containerized)),
+    )
+    assert PackageVersion.is_active(task_vars=task_vars) == is_active