Skip to content

Commit

Permalink
Add test for fapolicyd installation (#13488)
Browse files Browse the repository at this point in the history
Update tests to cover fapolicyd installation
  • Loading branch information
jameerpathan111 authored Jan 4, 2024
1 parent 8d9af78 commit 963700e
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 18 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
4 changes: 2 additions & 2 deletions robottelo/hosts.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,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 @@ -151,7 +151,7 @@ def setup_capsule(satellite, capsule, org, registration_args=None, installation_
f'{file} root@{capsule.hostname}:{file}'
)
capsule.install_katello_ca(satellite)
capsule.register_contenthost(**registration_args)
capsule.register_contenthost(org=org.label, **registration_args)
return capsule.install(cmd_args)


Expand Down
47 changes: 32 additions & 15 deletions tests/foreman/installer/test_installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

from robottelo import ssh
from robottelo.config import settings
from robottelo.constants import DEFAULT_ORG, FOREMAN_SETTINGS_YML, PRDS, REPOS, REPOSET
from robottelo.constants import FOREMAN_SETTINGS_YML, PRDS, REPOS, REPOSET
from robottelo.hosts import setup_capsule
from robottelo.utils.installer import InstallerCommand
from robottelo.utils.issue_handlers import is_open
Expand Down 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):
"""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
3. Install and enable fapolicyd
4. Enable capsule module
5. Install and setup capsule
:expectedresults:
1. Capsule is installed and setup correctly
Expand All @@ -1415,21 +1426,27 @@ def test_capsule_installation(sat_default_install, cap_ready_rhel, default_org):
:CaseImportance: Critical
"""
# Get Capsule repofile, and enable and download satellite-capsule
org = sat_non_default_install.api.Organization().create()
cap_ready_rhel.register_to_cdn()
cap_ready_rhel.download_repofile(
product='capsule',
release=settings.server.version.release,
snap=settings.server.version.snap,
)
# Enable fapolicyd
assert (
cap_ready_rhel.execute(
'dnf -y install fapolicyd && systemctl enable --now fapolicyd'
).status
== 0
)
cap_ready_rhel.execute(
'dnf -y module enable satellite-capsule:el8 && dnf -y install satellite-capsule'
)
assert cap_ready_rhel.execute('rpm -q foreman-proxy-fapolicyd').status == 0
# 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(
setup_capsule(sat_non_default_install, cap_ready_rhel, org)
assert sat_non_default_install.api.Capsule().search(
query={'search': f'name={cap_ready_rhel.hostname}'}
)[0]

Expand Down Expand Up @@ -1475,7 +1492,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 963700e

Please sign in to comment.