Skip to content

Commit 14d1f49

Browse files
committed
Refactor checks on whether vm is defomed 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 bdbf86f commit 14d1f49

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
@@ -654,7 +654,7 @@ def postprocess_vm(test, params, env, name):
654654

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

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

0 commit comments

Comments
 (0)