From d610fd390155992f681af9df4e1ea225aaf52a84 Mon Sep 17 00:00:00 2001 From: Griffin Sullivan Date: Thu, 21 Dec 2023 13:52:53 -0500 Subject: [PATCH] Add CU scenario for puma worker count --- tests/foreman/destructive/test_installer.py | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/foreman/destructive/test_installer.py b/tests/foreman/destructive/test_installer.py index b06df33d968..9a17b1ce7df 100644 --- a/tests/foreman/destructive/test_installer.py +++ b/tests/foreman/destructive/test_installer.py @@ -16,6 +16,8 @@ :Upstream: No """ +import random + from fauxfactory import gen_domain, gen_string import pytest @@ -147,3 +149,44 @@ def test_positive_installer_certs_regenerate(target_sat): ) assert result.status == 0 assert 'FAIL' not in target_sat.cli.Base.ping() + + +def test_positive_installer_puma_worker_count(target_sat): + """Installer should set the puma worker count and thread max without having to manually + restart the foreman service. + + :id: d0e7d958-dd3e-4962-bf5a-8d7ec36f3485 + + :steps: + 1. Check how many puma workers there are by default (9) + 2. Change answer's file to have 5 puma workers + 3. Run satellite-installer --foreman-foreman-service-puma-workers 5 --foreman-foreman-service-puma-threads-max 5 + + :expectedresults: aux should show there are only 5 puma workers after installer runs + + :BZ: 2025760 + + :customerscenario: true + """ + result = target_sat.execute('ps aux | grep -v grep | grep -e USER -e puma') + count = 0 + for line in result.stdout: + if 'puma: cluster worker' in line: + count += 1 + numbers = range(1, count)[:-1] + worker_count = str(random.choice(numbers)) + result = target_sat.install( + InstallerCommand( + foreman_foreman_service_puma_workers=worker_count, + foreman_foreman_service_puma_threads_max=worker_count, + ) + ) + assert result.status == 0 + result = target_sat.execute(f'grep "foreman_service_puma_workers" {SATELLITE_ANSWER_FILE}') + assert worker_count in result.stdout + result = target_sat.execute('ps aux | grep -v grep | grep -e USER -e puma') + for i in range(count): + if i < worker_count: + assert f'cluster worker {i}' in result.stdout + else: + assert f'cluster worker {i}' not in result.stdout