Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[6.14.z] Add CU scenario for puma worker count #13765

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions tests/foreman/destructive/test_installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

:Upstream: No
"""
import random

from fauxfactory import gen_domain, gen_string
import pytest

Expand Down Expand Up @@ -147,3 +149,40 @@ 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
2. Select a new worker count that is less than the default
2. Change answer's file to have new count for puma workers
3. Run satellite-installer --foreman-foreman-service-puma-workers new_count --foreman-foreman-service-puma-threads-max new_count

:expectedresults: aux should show there are only new_count puma workers after installer runs

:BZ: 2025760

:customerscenario: true
"""
count = int(target_sat.execute('pgrep --full "puma: cluster worker" | wc -l').stdout)
worker_count = str(random.randint(1, count - 1))
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 < int(worker_count):
assert f'cluster worker {i}' in result.stdout
else:
assert f'cluster worker {i}' not in result.stdout