Skip to content

Commit

Permalink
Test leapp upgrade with non-admin user BZ#2257302
Browse files Browse the repository at this point in the history
  • Loading branch information
shweta83 committed Feb 16, 2024
1 parent 57db84f commit 9e5eb90
Showing 1 changed file with 115 additions and 0 deletions.
115 changes: 115 additions & 0 deletions tests/foreman/cli/test_leapp_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"""
from broker import Broker
from fauxfactory import gen_string
import pytest

from robottelo.config import settings
Expand Down Expand Up @@ -286,3 +287,117 @@ def test_leapp_upgrade_rhel(
custom_leapp_host.clean_cached_properties()
new_ver = str(custom_leapp_host.os_version)
assert new_ver == upgrade_path['target_version']


@pytest.mark.parametrize(
'upgrade_path',
[
{'source_version': RHEL8_VER, 'target_version': RHEL9_VER},
],
ids=lambda upgrade_path: f'{upgrade_path["source_version"]}'
f'_to_{upgrade_path["target_version"]}',
)
def test_leapp_upgrade_rhel_non_admin(
module_target_sat,
module_sca_manifest_org,
default_location,
custom_leapp_host,
upgrade_path,
verify_target_repo_on_satellite,
precondition_check_upgrade_and_install_leapp_tool,
):
"""Test to upgrade RHEL host to next major RHEL release using leapp preupgrade and leapp upgrade
job templates
:id: afd295ca-4b0e-439f-b880-ae92c300fd9f
:BZ: 2257302
:customerscenario: true
:steps:
1. Import a subscription manifest and enable, sync source & target repositories
2. Create LCE, Create CV, add repositories to it, publish and promote CV, Create AK, etc.
3. Register content host with AK
4. Verify that target rhel repositories are enabled on Satellite
5. Update all packages, install leapp tool and fix inhibitors
6. Create a non-admin user with "Organization admin" role assigned to it.
7. Run Leapp Preupgrade and Leapp Upgrade job template from the user created in step 6.
:expectedresults:
1. Update RHEL OS major version to another major version from non-admin user role.
"""
login = gen_string('alpha')
password = gen_string('alpha')
user = module_target_sat.cli_factory.user(
{'admin': False, 'login': login, 'password': password}
)
module_target_sat.cli.User.add_role(
{'id': user['id'], 'login': login, 'role': 'Organization admin'}
)
module_target_sat.cli.User.update(
{
'id': user['id'],
'organizations': module_sca_manifest_org.name,
}
)
# user = module_target_sat.api.User(role="Organization Admin").create()
# Fixing known inhibitors for source rhel version 8
if custom_leapp_host.os_version.major == 8:
# Inhibitor - Firewalld Configuration AllowZoneDrifting Is Unsupported
custom_leapp_host.run(
'sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf'
)
# Run LEAPP-PREUPGRADE Job Template-
template_id = (
module_target_sat.api.JobTemplate()
.search(query={'search': 'name="Run preupgrade via Leapp"'})[0]
.id
)
job = module_target_sat.api.JobInvocation().run(
synchronous=False,
data={
'job_template_id': template_id,
'targeting_type': 'static_query',
'search_query': f'name = {custom_leapp_host.hostname}',
'effective-user': f'{login}',
'effective-user-password': f'{password}',
'organization_id': module_sca_manifest_org.id,
},
)
module_target_sat.wait_for_tasks(
f'resource_type = JobInvocation and resource_id = {job["id"]}', poll_timeout=1800
)
result = module_target_sat.api.JobInvocation(id=job['id']).read()
assert result.succeeded == 1

# Run LEAPP-UPGRADE Job Template-
template_id = (
module_target_sat.api.JobTemplate()
.search(query={'search': 'name="Run upgrade via Leapp"'})[0]
.id
)
job = module_target_sat.api.JobInvocation().run(
synchronous=False,
data={
'job_template_id': template_id,
'targeting_type': 'static_query',
'search_query': f'name = {custom_leapp_host.hostname}',
'effective-user': f'{login}',
'effective-user-password': f'{password}',
'organization_id': module_sca_manifest_org.id,
'location_id': default_location.id,
'inputs': {'Reboot': 'true'},
},
)
module_target_sat.wait_for_tasks(
f'resource_type = JobInvocation and resource_id = {job["id"]}', poll_timeout=1800
)
result = module_target_sat.api.JobInvocation(id=job['id']).read()
assert result.succeeded == 1
# Wait for the host to be rebooted and SSH daemon to be started.
custom_leapp_host.wait_for_connection()

custom_leapp_host.clean_cached_properties()
new_ver = str(custom_leapp_host.os_version)
assert new_ver == upgrade_path['target_version']

0 comments on commit 9e5eb90

Please sign in to comment.