From 61529c17fb00b946dc2f1c88d1dbba3cbbefba9a Mon Sep 17 00:00:00 2001 From: Gaurav Talreja <gtalreja@redhat.com> Date: Thu, 15 Feb 2024 18:57:03 +0530 Subject: [PATCH] Add workaround for BZ:2255264 and extend for OS version check Signed-off-by: Gaurav Talreja <gtalreja@redhat.com> --- .../cli/test_computeresource_vmware.py | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/foreman/cli/test_computeresource_vmware.py b/tests/foreman/cli/test_computeresource_vmware.py index b72a5fca5c5..454b0b9e8f4 100644 --- a/tests/foreman/cli/test_computeresource_vmware.py +++ b/tests/foreman/cli/test_computeresource_vmware.py @@ -17,6 +17,8 @@ from robottelo.config import settings from robottelo.constants import FOREMAN_PROVIDERS +from robottelo.hosts import ContentHost +from robottelo.utils.issue_handlers import is_open @pytest.mark.tier1 @@ -150,6 +152,37 @@ def test_positive_provision_end_to_end( != 'Pending installation', timeout=1800, delay=30, + silent_failure=True, + handle_exception=True, ) + vcenter8_issue = provision_method == 'bootdisk' and vmware == '8' and is_open('BZ:2255264') host_info = sat.cli.Host.info({'id': host['id']}) - assert host_info['status']['build-status'] == 'Installed' + assert ( + host_info['status']['build-status'] == 'Pending installation' + if vcenter8_issue + else 'Installed' + ) + + # Perform OS version check and check if root password is properly updated + provisioning_host = ContentHost(host_info['network-interfaces'][0]['ipv4-address']) + expected_rhel_version = host_info['operating-system']['operating-system'][-3:] + + # Wait for the host to be rebooted and SSH daemon to be started. + provisioning_host.wait_for_connection() + + if int(expected_rhel_version.split('.')[0]) >= 9: + assert ( + provisioning_host.execute( + 'echo -e "\nPermitRootLogin yes" >> /etc/ssh/sshd_config; systemctl restart sshd' + ).status + == 0 + ) + host_ssh_os = sat.execute( + f'sshpass -p {settings.provisioning.host_root_password} ' + 'ssh -o StrictHostKeyChecking=no -o PubkeyAuthentication=no -o PasswordAuthentication=yes ' + f'-o UserKnownHostsFile=/dev/null root@{provisioning_host.hostname} cat /etc/redhat-release' + ) + assert host_ssh_os.status == 0 + assert ( + expected_rhel_version in host_ssh_os.stdout + ), f'The installed OS version differs from the expected version {expected_rhel_version}'