本文整理汇总了Python中virttest.virsh.destroy函数的典型用法代码示例。如果您正苦于以下问题:Python destroy函数的具体用法?Python destroy怎么用?Python destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了destroy函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: edit_vcpu
def edit_vcpu(source, guest_name):
"""
Modify vm's cpu information by virsh edit command.
:param source : virsh edit's option.
:param guest_name : vm's name.
:return: True if edit successed,False if edit failed.
"""
dic_mode = {
"edit": r":%s /[0-9]*<\/vcpu>/" + expected_vcpu + r"<\/vcpu>",
"recover": r":%s /[0-9]*<\/vcpu>/" + original_vcpu + r"<\/vcpu>"}
status = modify_vcpu(source, dic_mode["edit"])
if not status:
return status
if params.get("paused_after_start_vm") == "yes":
virsh.resume(guest_name, ignore_status=True)
virsh.destroy(guest_name)
elif params.get("start_vm") == "yes":
virsh.destroy(guest_name)
vmxml = vm_xml.VMXML.new_from_inactive_dumpxml(vm_name)
vcpus = str(vmxml.vcpu)
# Recover cpuinfo
# Use name rather than source, since source could be domid
status = modify_vcpu(guest_name, dic_mode["recover"])
if status and vcpus != expected_vcpu:
return False
return status
示例2: edit_vcpu
def edit_vcpu(source, guest_name):
"""
Modify vm's cpu information by virsh edit command.
:param source : virsh edit's option.
:param guest_name : vm's name.
:return: True if edit successed,False if edit failed.
"""
dic_mode = {
"edit": ":%s /[0-9]*<\/vcpu>/" + expected_vcpu + "<\/vcpu>",
"recover": ":%s /[0-9]*<\/vcpu>/" + original_vcpu + "<\/vcpu>"}
status = modify_vcpu(source, dic_mode["edit"])
if not status:
return status
if params.get("paused_after_start_vm") == "yes":
virsh.resume(guest_name, ignore_status=True)
virsh.destroy(guest_name)
elif params.get("start_vm") == "yes":
virsh.destroy(guest_name)
vcpus = vm.dominfo()["CPU(s)"]
# Recover cpuinfo
status = modify_vcpu(source, dic_mode["recover"])
if status and vcpus != expected_vcpu:
return False
return status
示例3: run_and_check_vcpupin
def run_and_check_vcpupin(vm_name, vcpu, cpu_list, options, pid):
"""
Run the vcpupin command and then check the result.
"""
# Execute virsh vcpupin command.
cmdResult = virsh.vcpupin(vm_name, vcpu, cpu_list, options)
if cmdResult.exit_status:
if not status_error:
# Command fail and it is in positive case.
raise error.TestFail(cmdResult)
else:
# Command fail and it is in negative case.
return
else:
if status_error:
# Command success and it is in negative case.
raise error.TestFail(cmdResult)
else:
# Command success and it is in positive case.
# "--config" will take effect after VM destroyed.
if options == "--config":
virsh.destroy(vm_name)
pid = None
# Check the result of vcpupin command.
check_vcpupin(vm_name, vcpu, cpu_list, pid)
示例4: recover
def recover(self, params=None):
"""
Recover test environment
"""
cpu_enable = True if self.cpu_status else False
utils_misc.set_cpu_status(self.cpu_num, cpu_enable)
tmp_c_file = params.get("tmp_c_file", "/tmp/test.c")
tmp_exe_file = params.get("tmp_exe_file", "/tmp/test")
if os.path.exists(tmp_c_file):
os.remove(tmp_c_file)
if os.path.exists(tmp_exe_file):
os.remove(tmp_exe_file)
if 'memory_pid' in params:
pid = int(params.get('memory_pid'))
utils_misc.safe_kill(pid, signal.SIGKILL)
process.run("swapon -a", shell=True)
if 'cpu_pid' in params:
pid = int(params.get('cpu_pid'))
utils_misc.safe_kill(pid, signal.SIGKILL)
tmp_sh_file = params.get("tmp_sh_file")
if os.path.exists(tmp_sh_file):
os.remove(tmp_sh_file)
virsh.destroy(self.vm_name)
if len(self.snp_list) < len(self.current_snp_list):
self.diff_snp_list = list(set(self.current_snp_list) -
set(self.snp_list))
for item in self.diff_snp_list:
virsh.snapshot_delete(self.vm_name, item)
remove_machine_cgroup()
示例5: attach_hook
def attach_hook():
"""
Check attach hooks.
"""
# Start a domain with qemu command.
disk_src = vm.get_first_disk_devices()['source']
vm_test = "foo"
prepare_hook_file(hook_script %
(vm_test, hook_log))
qemu_bin = params.get("qemu_bin", "/usr/libexec/qemu-kvm")
if "ppc" in platform.machine():
qemu_bin = "%s -machine pseries" % qemu_bin
qemu_cmd = ("%s -drive file=%s,if=none,bus=0,unit=1"
" -monitor unix:/tmp/demo,"
"server,nowait -name %s" %
(qemu_bin, disk_src, vm_test))
ret = utils.run("%s &" % qemu_cmd)
pid = utils.run("ps -ef | grep '%s' | grep -v grep | awk"
" '{print $2}'" % qemu_cmd).stdout.strip()
if not pid:
raise error.TestFail("Cannot get pid of qemu command")
ret = virsh.qemu_attach(pid, **virsh_dargs)
if ret.exit_status:
utils_misc.kill_process_tree(pid)
raise error.TestFail("Cannot attach qemu process")
else:
virsh.destroy(vm_test)
hook_str = hook_file + " " + vm_test + " attach begin -"
if not check_hooks(hook_str):
raise error.TestFail("Failed to check"
" attach hooks")
示例6: run_and_check_vcpupin
def run_and_check_vcpupin(vm, vm_ref, vcpu, cpu_list, options):
"""
Run the vcpupin command and then check the result.
"""
if vm_ref == "name":
vm_ref = vm.name
elif vm_ref == "uuid":
vm_ref = vm.get_uuid()
# Execute virsh vcpupin command.
cmdResult = virsh.vcpupin(vm_ref, vcpu, cpu_list, options, debug=True)
if cmdResult.exit_status:
if not status_error:
# Command fail and it is in positive case.
raise error.TestFail(cmdResult)
else:
# Command fail and it is in negative case.
return
else:
if status_error:
# Command success and it is in negative case.
raise error.TestFail(cmdResult)
else:
# Command success and it is in positive case.
# "--config" will take effect after VM destroyed.
pid = None
vcpu_pid = None
if options == "--config":
virsh.destroy(vm.name)
else:
pid = vm.get_pid()
logging.debug("vcpus_pid: %s", vm.get_vcpus_pid())
vcpu_pid = vm.get_vcpus_pid()[vcpu]
# Check the result of vcpupin command.
check_vcpupin(vm.name, vcpu, cpu_list, pid, vcpu_pid)
示例7: make_unclean_fs
def make_unclean_fs():
"""
Use force off to make unclean file system of win8
"""
if virsh.start(vm_name, ignore_status=True).exit_status:
raise exceptions.TestError('Start vm failed')
time.sleep(10)
virsh.destroy(vm_name, debug=True)
示例8: add_cdrom_device
def add_cdrom_device(vm_name, init_cdrom):
"""
Add cdrom device for test vm
"""
if vm.is_alive():
virsh.destroy(vm_name)
virsh.attach_disk(vm_name, init_cdrom,
" hdc", " --type cdrom --sourcetype file --config",
debug=True)
示例9: edit_vcpu
def edit_vcpu(source):
"""
Modify vm's cpu information by virsh edit command.
:param source : virsh edit's option.
:return: True if edit successed,False if edit failed.
"""
vcpucount_result = virsh.vcpucount(vm_name,
options="--config --maximum")
if vcpucount_result.exit_status:
# Fail back to libvirt_xml way to test vcpucount.
original_vcpu = str(vmxml.vcpu)
else:
original_vcpu = vcpucount_result.stdout.strip()
expected_vcpu = str(int(original_vcpu) + 1)
if not status_error == "yes":
# check if topology is defined and change vcpu accordingly
try:
vmxml_backup = vm_xml.VMXML.new_from_inactive_dumpxml(source)
topology = vmxml_backup.get_cpu_topology()
sockets = str(int(topology['sockets']) + 1)
cores = topology['cores']
threads = topology['threads']
vmcpu_xml = vm_xml.VMCPUXML()
vmcpu_xml['topology'] = {'sockets': sockets, 'cores': cores,
'threads': threads}
vmxml_backup['cpu'] = vmcpu_xml
vmxml_backup.sync()
expected_vcpu = str(int(sockets) * int(cores) * int(threads))
except:
expected_vcpu = str(int(original_vcpu) + 1)
dic_mode = {
"edit": r":%s /[0-9]*<\/vcpu>/" + expected_vcpu + r"<\/vcpu>",
"recover": r":%s /[0-9]*<\/vcpu>/" + original_vcpu + r"<\/vcpu>"}
status = libvirt.exec_virsh_edit(source, [dic_mode["edit"]])
logging.info(status)
if not status:
vmxml.sync()
return status
if libvirtd_stat == "off":
return False
if params.get("paused_after_start_vm") == "yes":
virsh.resume(vm_name, ignore_status=True)
virsh.destroy(vm_name)
elif params.get("start_vm") == "yes":
virsh.destroy(vm_name)
new_vcpus = str(vm_xml.VMXML.new_from_inactive_dumpxml(vm_name).vcpu)
# Recover cpuinfo
# Use name rather than source, since source could be domid
status = libvirt.exec_virsh_edit(vm_name, [dic_mode["recover"]])
vmxml.sync()
if status and new_vcpus != expected_vcpu:
return False
return status
示例10: reset_env
def reset_env(vm_name, xml_file):
"""
Reset env
:param vm_name: the vm name
:xml_file: domain xml file
"""
virsh.destroy(vm_name)
virsh.undefine(vm_name)
virsh.define(xml_file)
if os.path.exists(xml_file):
os.remove(xml_file)
示例11: clean_clone_vm
def clean_clone_vm():
"""
Clean up cloned domain.
"""
try:
if virsh.domain_exists(vm_clone_name):
if virsh.is_alive(vm_clone_name):
virsh.destroy(vm_clone_name, ignore_status=False)
virsh.undefine(vm_clone_name, ignore_status=False)
if os.path.exists(clone_image):
os.remove(clone_image)
except error.CmdError, detail:
raise error.TestFail("Clean clone guest failed!:%s" % detail)
示例12: add_cdrom_device
def add_cdrom_device(vm_name, init_cdrom):
"""
Add cdrom device for test vm
@param: vm_name: guest name
@param: init_cdrom: source file
"""
if vm.is_alive():
virsh.destroy(vm_name)
virsh.attach_disk(vm_name, init_cdrom,
disk_device, " --type cdrom --sourcetype file --config",
debug=True)
示例13: run
def run(test, params, env):
"""
Verify various kernel panic methods
1.Prepare test environment.
2.Execute any needed setup commands
3.Execute kernel panic command
4.Verify panic was detected
5.restore environment
"""
vm_name = params.get("main_vm", "vm1")
vm = env.get_vm(vm_name)
if not vm.is_alive():
vm.start()
panic_cmd = params.get("panic_cmd", None)
status = None
output = None
# Setup environment
session = vm.wait_for_login()
# Subsequent logins should timeout quickly
vm.LOGIN_WAIT_TIMEOUT = 10
# run test case
try:
logging.info("Sending panic_cmd command: %s" % panic_cmd)
status, output = session.cmd_status_output(panic_cmd, timeout=5,
internal_timeout=5)
except aexpect.ShellTimeoutError:
pass # This is expected
except Exception:
# This is unexpected
raise
try:
vm.verify_kernel_crash()
status = 1 # bad
except virt_vm.VMDeadKernelCrashError:
status = 0 # good
# Restore environment to stable state
session.close()
vm.serial_console.close()
virsh.destroy(vm_name)
# check status_error
if status:
test.fail("Panic command failed to cause panic")
示例14: attach_interface
def attach_interface():
"""
Attach interface:
1.Attach interface from xml;
2.Check the vf driver after attach interface;
3.Check the live xml after attach interface;
"""
if managed == "no":
result = virsh.nodedev_detach(nodedev_pci_addr)
utils_test.libvirt.check_exit_status(result, expect_error=False)
logging.debug("attach interface xml:\n %s", new_iface)
result = virsh.attach_device(vm_name, file_opt=new_iface.xml, flagstr=option, debug=True)
utils_test.libvirt.check_exit_status(result, expect_error=False)
if option == "--config":
result = virsh.start(vm_name)
utils_test.libvirt.check_exit_status(result, expect_error=False)
# For option == "--persistent", after VM destroyed and then start, the device should still be there.
if option == "--persistent":
virsh.destroy(vm_name)
result = virsh.start(vm_name, debug=True)
utils_test.libvirt.check_exit_status(result, expect_error=False)
live_xml = vm_xml.VMXML.new_from_dumpxml(vm_name)
logging.debug(live_xml)
get_ip_by_mac(mac_addr, timeout=60)
device = live_xml.devices
if vf_type == "vf" or vf_type == "vf_pool":
for interface in device.by_device_tag("interface"):
if interface.type_name == "hostdev":
if interface.driver.driver_attr['name'] != 'vfio':
test.fail("The driver of the hostdev interface is not vfio\n")
break
vf_addr_attrs = interface.hostdev_address.attrs
pci_addr = addr_to_pci(vf_addr_attrs)
nic_driver = os.readlink(os.path.join(pci_device_dir, vf_addr, "driver")).split('/')[-1]
if nic_driver != "vfio-pci":
test.fail("The driver of the hostdev interface is not vfio\n")
elif vf_type == "macvtap" or vf_type == "macvtap_network":
for interface in device.by_device_tag("interface"):
if interface.type_name == "direct":
if vf_type == "macvtap":
if interface.source["dev"] == new_iface.source["dev"]:
match = "yes"
vf_name = interface.source["dev"]
elif interface.source['dev'] in vf_name_list:
match = "yes"
vf_name = interface.source["dev"]
if match != "yes":
test.fail("The dev name or mode of macvtap interface is wrong after attach\n")
return interface
示例15: add_device
def add_device(vm_name, init_source="''"):
"""
Add device for test vm
:param vm_name: guest name
:param init_source: source file
"""
if vm.is_alive():
virsh.destroy(vm_name)
virsh.attach_disk(vm_name, init_source,
target_device,
"--type %s --sourcetype file --config" % device_type,
debug=True)