diff --git a/robottelo/hosts.py b/robottelo/hosts.py index b4e4fdcc0cd..0abe5f93b12 100644 --- a/robottelo/hosts.py +++ b/robottelo/hosts.py @@ -108,7 +108,9 @@ def get_sat_rhel_version(): return Version(rhel_version) -def setup_capsule(satellite, capsule, org, registration_args=None, installation_args=None): +def setup_capsule( + satellite, capsule, org, registration_args=None, installation_args=None, enable_fapolicyd=False +): """Given satellite and capsule instances, run the commands needed to set up the capsule Note: This does not perform content setup actions on the Satellite @@ -152,6 +154,9 @@ def setup_capsule(satellite, capsule, org, registration_args=None, installation_ ) capsule.install_katello_ca(satellite) capsule.register_contenthost(**registration_args) + if enable_fapolicyd: + capsule.execute('dnf -y install fapolicyd && systemctl enable --now fapolicyd').status == 0 + capsule.execute('rpm -q foreman-proxy-fapolicyd').status == 0 return capsule.install(cmd_args) diff --git a/tests/foreman/installer/test_installer.py b/tests/foreman/installer/test_installer.py index c8268fd3882..c13c43e87b6 100644 --- a/tests/foreman/installer/test_installer.py +++ b/tests/foreman/installer/test_installer.py @@ -1347,7 +1347,7 @@ def common_sat_install_assertions(satellite): assert 'FAIL' not in result.stdout -def install_satellite(satellite, installer_args): +def install_satellite(satellite, installer_args, enable_fapolicyd=False): # Register for RHEL8 repos, get Ohsnap repofile, and enable and download satellite satellite.register_to_cdn() satellite.download_repofile( @@ -1355,6 +1355,10 @@ def install_satellite(satellite, installer_args): release=settings.server.version.release, snap=settings.server.version.snap, ) + if enable_fapolicyd: + satellite.execute('dnf -y install fapolicyd && systemctl enable --now fapolicyd').status == 0 + satellite.execute('rpm -q foreman-fapolicyd').status == 0 + satellite.execute('rpm -q foreman-proxy-fapolicyd').status == 0 satellite.execute('dnf -y module enable satellite:el8 && dnf -y install satellite') # Configure Satellite firewall to open communication satellite.execute( @@ -1380,15 +1384,18 @@ def sat_default_install(module_sat_ready_rhels): @pytest.fixture(scope='module') -def sat_non_default_install(module_sat_ready_rhels): +def sat_non_default_install(request, module_sat_ready_rhels): """Install Satellite with various options""" + enable_fapolicyd = False + if hasattr(request, 'param'): + enable_fapolicyd = request.param installer_args = [ 'scenario satellite', f'foreman-initial-admin-password {settings.server.admin_password}', 'foreman-rails-cache-store type:file', 'foreman-proxy-content-pulpcore-hide-guarded-distributions false', ] - install_satellite(module_sat_ready_rhels[1], installer_args) + install_satellite(module_sat_ready_rhels[1], installer_args, enable_fapolicyd=enable_fapolicyd) yield module_sat_ready_rhels[1] common_sat_install_assertions(module_sat_ready_rhels[1]) @@ -1396,8 +1403,14 @@ def sat_non_default_install(module_sat_ready_rhels): @pytest.mark.e2e @pytest.mark.tier1 @pytest.mark.pit_client -def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org): - """Run a basic Capsule installation +@pytest.mark.parametrize( + "enable_fapolicyd", + [True, False], + indirect=True, + ids=['fapolicyd_enabled', 'fapolicyd_disabled'], +) +def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org, enable_fapolicyd): + """Run a basic Capsule installation w/ and w/o fapolicyd :id: 64fa85b6-96e6-4fea-bea4-a30539d59e65 @@ -1428,7 +1441,7 @@ def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org): org = sat_default_install.api.Organization().search(query={'search': f'name="{DEFAULT_ORG}"'})[ 0 ] - setup_capsule(sat_default_install, cap_ready_rhel, org) + setup_capsule(sat_default_install, cap_ready_rhel, org, enable_fapolicyd=enable_fapolicyd) assert sat_default_install.api.Capsule().search( query={'search': f'name={cap_ready_rhel.hostname}'} )[0] @@ -1461,8 +1474,14 @@ def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org): @pytest.mark.e2e @pytest.mark.tier1 +@pytest.mark.parametrize( + "sat_non_default_install", + [True, False], + indirect=True, + ids=['fapolicyd_enabled', 'fapolicyd_disabled'], +) def test_foreman_rails_cache_store(sat_non_default_install): - """Test foreman-rails-cache-store option + """Test foreman-rails-cache-store option. Also tests installation w/ and w/o fapolicyd. :id: 379a2fe8-1085-4a7f-8ac3-24c421412f12