Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test the "--managed-save" option #6131

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- virsh.managedsave_undefine:
type = "virsh_managedsave_undefine"
start_vm = "yes"
58 changes: 58 additions & 0 deletions libvirt/tests/src/virsh_cmd/domain/virsh_managedsave_undefine.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import os
import logging
from virttest import virsh
from virttest.libvirt_xml import vm_xml

VIRSH_ARGS = {'debug': True, 'ignore_status': False}
LOG = logging.getLogger('avocado.' + __name__)


def run(test, params, env):
"""
Test option: --managed-save

Undefine a vm with or without --managed-save option
1. start a vm, and do managedsave
2. try to undefine the vm without "--managed-save" option, it should fail
3. try to undefine the vm with "--managed-save" option, it succeeds
"""

def vm_undefine_check(vm_name):
"""
Check if vm can be undefined with managed-save option
"""
if not os.path.exists(managed_save_file):
test.fail("Can't find managed save image")
LOG.info("Step2: Undefine the VM without --managed-save option:")
ret = virsh.undefine(vm_name, options='--nvram', ignore_status=True)
LOG.debug("%s", ret)
if not ret.exit_status:
test.fail("Guest shouldn't be undefined"
"while domain managed save image exists!")
LOG.info("Step3: Undefine the VM with --managed-save option:")
ret1 = virsh.undefine(vm_name, options="--managed-save --nvram",
ignore_status=True)
LOG.debug("%s", ret1)
if ret1.exit_status:
test.fail("Guest can't be undefined with "
"managed-save option!")

if os.path.exists(managed_save_file):
test.fail("Managed save image exists after undefining vm!")
# restore and start the vm
bk_xml.define()
vm.start()

vm_name = params.get('main_vm')
managed_save_file = "/var/lib/libvirt/qemu/save/%s.save" % vm_name
vmxml = vm_xml.VMXML.new_from_inactive_dumpxml(vm_name)
bk_xml = vmxml.copy()
try:
vm = env.get_vm(vm_name)
LOG.info("Step1: start the VM and do managedsave:")
if not vm.is_alive:
vm.start()
virsh.managedsave(vm_name, **VIRSH_ARGS)
vm_undefine_check(vm_name)
finally:
bk_xml.sync()