From 13c5419b0ef6d4e83d6966b6a34dc2b7e7d42646 Mon Sep 17 00:00:00 2001 From: Griffin Sullivan Date: Thu, 28 Sep 2023 15:46:52 -0400 Subject: [PATCH] Add coverage for 1964037 installer cert regen (cherry picked from commit 8d98645c4b53b53d0f983a0752506c8fa3fa5db7) --- robottelo/cli/base.py | 12 +++++++- tests/foreman/destructive/test_installer.py | 34 +++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/robottelo/cli/base.py b/robottelo/cli/base.py index 4f66a05a089..d5ce2ae224f 100644 --- a/robottelo/cli/base.py +++ b/robottelo/cli/base.py @@ -119,6 +119,16 @@ def add_operating_system(cls, options=None): return cls.execute(cls._construct_command(options)) + @classmethod + def ping(cls, options=None): + """ + Display status of Satellite. + """ + + cls.command_sub = 'ping' + + return cls.execute(cls._construct_command(options)) + @classmethod def create(cls, options=None, timeout=None): """ @@ -419,6 +429,6 @@ def _construct_command(cls, options=None): if isinstance(val, list): val = ','.join(str(el) for el in val) tail += f' --{key}="{val}"' - cmd = f"{cls.command_base} {cls.command_sub or ''} {tail.strip()} {cls.command_end or ''}" + cmd = f"{cls.command_base or ''} {cls.command_sub or ''} {tail.strip()} {cls.command_end or ''}" return cmd diff --git a/tests/foreman/destructive/test_installer.py b/tests/foreman/destructive/test_installer.py index 19459340458..aa683870591 100644 --- a/tests/foreman/destructive/test_installer.py +++ b/tests/foreman/destructive/test_installer.py @@ -20,6 +20,7 @@ import pytest from robottelo.config import settings +from robottelo.constants import SATELLITE_ANSWER_FILE from robottelo.utils.installer import InstallerCommand pytestmark = pytest.mark.destructive @@ -154,3 +155,36 @@ def test_positive_mismatched_satellite_fqdn(target_sat, set_random_fqdn): ) installer_command_output = target_sat.execute('satellite-installer').stderr assert warning_message in str(installer_command_output) + + +def test_positive_installer_certs_regenerate(target_sat): + """Ensure "satellite-installer --certs-regenerate true" command correctly generates + /etc/tomcat/cert-users.properties after editing answers file + + :id: db6152c3-4459-425b-998d-4a7992ca1f72 + + :steps: + 1. Update /etc/foreman-installer/scenarios.d/satellite-answers.yaml + 2. Fill some empty strings in certs category for 'state' + 3. Run satellite-installer --certs-regenerate true + 4. hammer ping + + :expectedresults: Correct generation of /etc/tomcat/cert-users.properties + + :BZ: 1964037 + + :customerscenario: true + """ + target_sat.execute(f'sed -i "s/state: North Carolina/state: \'\'/g" {SATELLITE_ANSWER_FILE}') + result = target_sat.execute(f'grep state: {SATELLITE_ANSWER_FILE}') + assert "state: ''" in result.stdout + result = target_sat.install( + InstallerCommand( + 'certs-update-all', + 'certs-update-server', + 'certs-update-server-ca', + certs_regenerate=['true'], + ) + ) + assert result.status == 0 + assert 'FAIL' not in target_sat.cli.Base.ping()