Skip to content

Commit 108fec8

Browse files
committed
Refactor checks on whether vm is defined during post-processing
The vm being defined is something done at the very beginning of postprocessing. Only is_alive() checks make sense at each separate stage, including the handling of extra file dumps from the vms. Signed-off-by: Plamen Dimitrov <plamen.dimitrov@intra2net.com>
1 parent 49c67a9 commit 108fec8

1 file changed

Lines changed: 39 additions & 34 deletions

File tree

virttest/env_process.py

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ def postprocess_vm(test, params, env, name):
656656

657657
if kernel_extra_params_add or kernel_extra_params_remove:
658658
# VM might be brought down after test
659-
if vm and not vm.is_alive():
659+
if not vm.is_alive():
660660
if params.get("vm_type") == "libvirt":
661661
vm.start()
662662
elif params.get("vm_type") == "qemu":
@@ -671,40 +671,45 @@ def postprocess_vm(test, params, env, name):
671671
if params.get("vm_extra_dump_paths") is not None:
672672
# even if there is previously existing session we cannot guarantee its state
673673
# is viable, e.g. it may be in python .env or SMTP sub-session, etc.
674-
session = vm.wait_for_login(timeout=vm.LOGIN_WAIT_TIMEOUT)
675-
vm_extra_dumps = os.path.join(test.outputdir, "vm_extra_dumps")
676-
if not os.path.exists(vm_extra_dumps):
677-
os.makedirs(vm_extra_dumps)
678-
for i, dump_path in enumerate(
679-
params.get_list("vm_extra_dump_paths", delimiter=";")
680-
):
681-
try:
682-
vm.copy_files_from(dump_path, vm_extra_dumps)
683-
except:
684-
LOG.error(
685-
"Could not copy the extra dump '%s' from the vm '%s'",
686-
dump_path,
687-
vm.name,
688-
)
689-
if params.get_boolean(f"verify_vm_extra_dump_{i}"):
690-
for message in params.get_list(
691-
f"expected_vm_extra_dump_{i}", delimiter=";"
692-
):
693-
LOG.info(f"Checking for expected message in {dump_path}")
694-
if not ops.grep(
695-
session, message, dump_path, check=True, flags="-aP"
674+
if not vm.is_alive():
675+
LOG.warning("VM is not alive so we cannot download extra dump paths")
676+
else:
677+
session = vm.wait_for_login(timeout=vm.LOGIN_WAIT_TIMEOUT)
678+
vm_extra_dumps = os.path.join(test.outputdir, "vm_extra_dumps")
679+
if not os.path.exists(vm_extra_dumps):
680+
os.makedirs(vm_extra_dumps)
681+
for i, dump_path in enumerate(
682+
params.get_list("vm_extra_dump_paths", delimiter=";")
683+
):
684+
try:
685+
vm.copy_files_from(dump_path, vm_extra_dumps)
686+
except:
687+
LOG.error(
688+
"Could not copy the extra dump '%s' from the vm '%s'",
689+
dump_path,
690+
vm.name,
691+
)
692+
if params.get_boolean(f"verify_vm_extra_dump_{i}"):
693+
for message in params.get_list(
694+
f"expected_vm_extra_dump_{i}", delimiter=";"
696695
):
697-
raise exceptions.TestFail(
698-
f"Missing expected message '{message}' in {vm.name} extra dump {dump_path}"
699-
)
700-
for message in params.get_list(
701-
f"unexpected_vm_extra_dump_{i}", delimiter=";"
702-
):
703-
LOG.info(f"Checking for unexpected message in {dump_path}")
704-
if ops.grep(session, message, dump_path, check=True, flags="-aP"):
705-
raise exceptions.TestFail(
706-
f"Redundant unexpected message '{message}' in {vm.name} extra dump {dump_path}"
707-
)
696+
LOG.info(f"Checking for expected message in {dump_path}")
697+
if not ops.grep(
698+
session, message, dump_path, check=True, flags="-aP"
699+
):
700+
raise exceptions.TestFail(
701+
f"Missing expected message '{message}' in {vm.name} extra dump {dump_path}"
702+
)
703+
for message in params.get_list(
704+
f"unexpected_vm_extra_dump_{i}", delimiter=";"
705+
):
706+
LOG.info(f"Checking for unexpected message in {dump_path}")
707+
if ops.grep(
708+
session, message, dump_path, check=True, flags="-aP"
709+
):
710+
raise exceptions.TestFail(
711+
f"Redundant unexpected message '{message}' in {vm.name} extra dump {dump_path}"
712+
)
708713

709714
# Close all SSH sessions that might be active to this VM
710715
for s in vm.remote_sessions[:]:

0 commit comments

Comments
 (0)