From ae2d2812834a32c19ce47c3f8d1041579f862eef Mon Sep 17 00:00:00 2001 From: Gaurav Talreja Date: Fri, 5 Jul 2024 11:50:05 +0530 Subject: [PATCH] Add preconversion check and Remove Data telemetry option from convert2rhel tests * Remove Data telemetry option from convert2rhel tests Signed-off-by: Gaurav Talreja * Add check to vefify convert2rhel conversion facts Signed-off-by: Gaurav Talreja --------- Signed-off-by: Gaurav Talreja (cherry picked from commit b8ca3eecda21e9f17026dc8ef6599850f388e962) --- tests/foreman/api/test_convert2rhel.py | 74 ++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 4 deletions(-) diff --git a/tests/foreman/api/test_convert2rhel.py b/tests/foreman/api/test_convert2rhel.py index 2568db7564a..c764b80f5e1 100644 --- a/tests/foreman/api/test_convert2rhel.py +++ b/tests/foreman/api/test_convert2rhel.py @@ -251,7 +251,9 @@ def version(request): @pytest.mark.e2e @pytest.mark.parametrize('version', ['oracle7', 'oracle8'], indirect=True) -def test_convert2rhel_oracle(module_target_sat, oracle, activation_key_rhel, version): +def test_convert2rhel_oracle_with_pre_conversion_template_check( + module_target_sat, oracle, activation_key_rhel, version +): """Convert Oracle linux to RHEL :id: 7fd393f0-551a-4de0-acdd-7f026b485f79 @@ -265,6 +267,8 @@ def test_convert2rhel_oracle(module_target_sat, oracle, activation_key_rhel, ver and subscription status :parametrized: yes + + Verifies: SAT-24654 """ major = version.split('.')[0] assert oracle.execute('yum -y update').status == 0 @@ -278,6 +282,29 @@ def test_convert2rhel_oracle(module_target_sat, oracle, activation_key_rhel, ver host_content = module_target_sat.api.Host(id=oracle.hostname).read_json() assert host_content['operatingsystem_name'] == f"OracleLinux {version}" + # Pre-conversion template job + template_id = ( + module_target_sat.api.JobTemplate() + .search(query={'search': 'name="Convert2RHEL analyze"'})[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 = {oracle.hostname}', + }, + ) + + # wait for job to complete + module_target_sat.wait_for_tasks( + f'resource_type = JobInvocation and resource_id = {job["id"]}', + poll_timeout=5500, + search_rate=20, + ) + result = module_target_sat.api.JobInvocation(id=job['id']).read() + assert result.succeeded == 1 # execute job 'Convert 2 RHEL' on host template_id = ( module_target_sat.api.JobTemplate().search(query={'search': 'name="Convert to RHEL"'})[0].id @@ -289,7 +316,6 @@ def test_convert2rhel_oracle(module_target_sat, oracle, activation_key_rhel, ver 'inputs': { 'Activation Key': activation_key_rhel.id, 'Restart': 'yes', - 'Data telemetry': 'yes', }, 'targeting_type': 'static_query', 'search_query': f'name = {oracle.hostname}', @@ -311,11 +337,19 @@ def test_convert2rhel_oracle(module_target_sat, oracle, activation_key_rhel, ver or host_content['operatingsystem_name'].startswith(f'RHEL {version}') ) assert host_content['subscription_status'] == 0 + # Wait for the host to be rebooted and SSH daemon to be started. + oracle.wait_for_connection() + + # Verify convert2rhel facts are generated, and verify fact conversions.success is true + assert oracle.execute('test -f /etc/rhsm/facts/convert2rhel.facts').status == 0 + assert host_content['facts']['conversions::success'] == 'true' @pytest.mark.e2e @pytest.mark.parametrize('version', ['centos7', 'centos8'], indirect=True) -def test_convert2rhel_centos(module_target_sat, centos, activation_key_rhel, version): +def test_convert2rhel_centos_with_pre_conversion_template_check( + module_target_sat, centos, activation_key_rhel, version +): """Convert CentOS linux to RHEL :id: 6f698440-7d85-4deb-8dd9-363ea9003b92 @@ -329,10 +363,36 @@ def test_convert2rhel_centos(module_target_sat, centos, activation_key_rhel, ver and subscription status :parametrized: yes + + Verifies: SAT-24654 """ host_content = module_target_sat.api.Host(id=centos.hostname).read_json() major = version.split('.')[0] assert host_content['operatingsystem_name'] == f'CentOS {major}' + + # Pre-conversion template job + template_id = ( + module_target_sat.api.JobTemplate() + .search(query={'search': 'name="Convert2RHEL analyze"'})[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 = {centos.hostname}', + }, + ) + # wait for job to complete + module_target_sat.wait_for_tasks( + f'resource_type = JobInvocation and resource_id = {job["id"]}', + poll_timeout=5500, + search_rate=20, + ) + result = module_target_sat.api.JobInvocation(id=job['id']).read() + assert result.succeeded == 1 + # execute job 'Convert 2 RHEL' on host template_id = ( module_target_sat.api.JobTemplate().search(query={'search': 'name="Convert to RHEL"'})[0].id @@ -344,7 +404,6 @@ def test_convert2rhel_centos(module_target_sat, centos, activation_key_rhel, ver 'inputs': { 'Activation Key': activation_key_rhel.id, 'Restart': 'yes', - 'Data telemetry': 'yes', }, 'targeting_type': 'static_query', 'search_query': f'name = {centos.hostname}', @@ -368,3 +427,10 @@ def test_convert2rhel_centos(module_target_sat, centos, activation_key_rhel, ver or host_content['operatingsystem_name'].startswith(f'RHEL {version}') ) assert host_content['subscription_status'] == 0 + + # Wait for the host to be rebooted and SSH daemon to be started. + centos.wait_for_connection() + + # Verify convert2rhel facts are generated, and verify fact conversions.success is true + assert centos.execute('test -f /etc/rhsm/facts/convert2rhel.facts').status == 0 + assert host_content['facts']['conversions::success'] == 'true'