Skip to content

Commit

Permalink
Update tests to cover fapolicyd installation
Browse files Browse the repository at this point in the history
  • Loading branch information
jameerpathan111 committed Jan 2, 2024
1 parent 55b6ce3 commit 9fb008b
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 16 deletions.
2 changes: 1 addition & 1 deletion pytest_fixtures/core/sat_cap_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ def module_sat_ready_rhels(request):

@pytest.fixture
def cap_ready_rhel():
rhel_version = Version(settings.capsule.version.release)
rhel_version = Version(settings.capsule.version.rhel_version)
deploy_args = {
'deploy_rhel_version': rhel_version.base_version,
'deploy_flavor': settings.flavors.default,
Expand Down
9 changes: 7 additions & 2 deletions robottelo/hosts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -125,7 +127,7 @@ def setup_capsule(satellite, capsule, org, registration_args=None, installation_
capsule.unregister()

# Add a manifest to the Satellite
with Manifester(manifest_category=settings.manifest.golden_ticket) as manifest:
with Manifester(manifest_category=settings.manifest.entitlement) as manifest:
satellite.upload_manifest(org.id, manifest.content)

# Enable RHEL 8 BaseOS and AppStream repos and sync
Expand All @@ -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)


Expand Down
37 changes: 24 additions & 13 deletions tests/foreman/installer/test_installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1343,19 +1343,29 @@ def common_sat_install_assertions(satellite):
result = satellite.execute(r'grep -iR "error" /var/log/candlepin/*')
assert len(result.stdout) == 0

httpd_log = satellite.execute('journalctl --unit=httpd')
assert "WARNING" not in httpd_log.stdout

result = satellite.cli.Health.check()
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(
product='satellite',
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('dnf -y module enable satellite:el8 && dnf -y install satellite')
if enable_fapolicyd:
assert satellite.execute('rpm -q foreman-fapolicyd').status == 0
assert satellite.execute('rpm -q foreman-proxy-fapolicyd').status == 0
# Configure Satellite firewall to open communication
satellite.execute(
'firewall-cmd --permanent --add-service RH-Satellite-6 && firewall-cmd --reload'
Expand All @@ -1381,31 +1391,32 @@ def sat_default_install(module_sat_ready_rhels):

@pytest.fixture(scope='module')
def sat_non_default_install(module_sat_ready_rhels):
"""Install Satellite with various options"""
"""Provides fapolicyd enabled Satellite with various options"""
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=True)
yield module_sat_ready_rhels[1]
common_sat_install_assertions(module_sat_ready_rhels[1])


@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
def test_capsule_installation(sat_non_default_install, cap_ready_rhel, default_org):
"""Run a basic Capsule installation with fapolicyd
:id: 64fa85b6-96e6-4fea-bea4-a30539d59e65
:steps:
1. Get a Satellite
1. Get a fapolicyd enabled Satellite
2. Configure capsule repos
3. Enable capsule module
4. Install and setup capsule
4. Install and enable fapolicyd
5. Install and setup capsule
:expectedresults:
1. Capsule is installed and setup correctly
Expand All @@ -1425,11 +1436,11 @@ def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org):
'dnf -y module enable satellite-capsule:el8 && dnf -y install satellite-capsule'
)
# Setup Capsule
org = sat_default_install.api.Organization().search(query={'search': f'name="{DEFAULT_ORG}"'})[
0
]
setup_capsule(sat_default_install, cap_ready_rhel, org)
assert sat_default_install.api.Capsule().search(
org = sat_non_default_install.api.Organization().search(
query={'search': f'name="{DEFAULT_ORG}"'}
)[0]
setup_capsule(sat_non_default_install, cap_ready_rhel, org, enable_fapolicyd=True)
assert sat_non_default_install.api.Capsule().search(
query={'search': f'name={cap_ready_rhel.hostname}'}
)[0]

Expand Down Expand Up @@ -1475,7 +1486,7 @@ def test_foreman_rails_cache_store(sat_non_default_install):
:customerscenario: true
:BZ: 2063717, 2165092
:BZ: 2063717, 2165092, 2244370
"""
# Verify foreman-rails-cache-store option works
assert sat_non_default_install.execute('rpm -q foreman-redis').status == 1
Expand Down

0 comments on commit 9fb008b

Please sign in to comment.