本文整理汇总了Python中virttest.virsh.qemu_monitor_command函数的典型用法代码示例。如果您正苦于以下问题:Python qemu_monitor_command函数的具体用法?Python qemu_monitor_command怎么用?Python qemu_monitor_command使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qemu_monitor_command函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: hotplug_device
def hotplug_device(hotplug_type, char_dev, index=1, id=0):
if hotplug_type == "qmp":
char_add_opt = "chardev-add "
dev_add_opt = "device_add virtserialport,chardev="
if char_dev == "file":
char_add_opt += ("file,path=%s/file%s,id=file%s"
% (tmp_dir, index, index))
dev_add_opt += ("file%s,name=file%s,bus=virtio-serial0.0,id=file%s"
% (index, index, index))
elif char_dev == "socket":
char_add_opt += ("socket,path=%s/socket%s,server,nowait,id=socket%s"
% (tmp_dir, index, index))
dev_add_opt += ("socket%s,name=socket%s,bus=virtio-serial0.0,id=socket%s"
% (index, index, index))
elif char_dev == "pty":
char_add_opt += "pty,path=/dev/pts/%s,id=pty%s" % (id, index)
dev_add_opt += ("pty%s,name=pty%s,bus=virtio-serial0.0,id=pty%s"
% (index, index, index))
virsh.qemu_monitor_command(vm_name, char_add_opt, "--hmp")
virsh.qemu_monitor_command(vm_name, dev_add_opt, "--hmp")
elif hotplug_type == "attach":
xml_file = "%s/xml_%s%s" % (tmp_dir, char_dev, index)
if char_dev in ["file", "socket"]:
prepare_channel_xml(xml_file, char_dev, index)
elif char_dev == "pty":
prepare_channel_xml(xml_file, char_dev, index, id)
virsh.attach_device(vm_name, xml_file, flagstr="--live")
开发者ID:will-Do,项目名称:tp-libvirt_v2v,代码行数:27,代码来源:libvirt_bench_serial_hotplug.py
示例2: hotplug_device
def hotplug_device(type, char_dev, id=0):
tmp_file = os.path.join(tmp_dir, char_dev)
if type == "qmp":
char_add_opt = "chardev-add "
dev_add_opt = "device_add virtserialport,chardev="
if char_dev == "file":
char_add_opt += "file,path=%s,id=file" % tmp_file
dev_add_opt += "file,name=file,bus=virtio-serial0.0,id=file"
elif char_dev == "socket":
char_add_opt += "socket,path=%s,server,nowait,id=socket" % tmp_file
dev_add_opt += "socket,name=socket,bus=virtio-serial0.0,id=socket"
elif char_dev == "pty":
char_add_opt += ("pty,path=/dev/pts/%s,id=pty" % id)
dev_add_opt += "pty,name=pty,bus=virtio-serial0.0,id=pty"
result = virsh.qemu_monitor_command(vm_name, char_add_opt, "--hmp")
if result.exit_status:
raise error.TestError('Failed to add chardev %s to %s. Result:\n %s'
% (char_dev, vm_name, result))
result = virsh.qemu_monitor_command(vm_name, dev_add_opt, "--hmp")
if result.exit_status:
raise error.TestError('Failed to add device %s to %s. Result:\n %s'
% (char_dev, vm_name, result))
elif type == "attach":
xml_file = os.path.join(tmp_dir, "xml_%s" % char_dev)
if char_dev in ["file", "socket"]:
prepare_channel_xml(xml_file, char_dev)
elif char_dev == "pty":
prepare_channel_xml(xml_file, char_dev, id)
result = virsh.attach_device(vm_name, xml_file)
return result
开发者ID:Antique,项目名称:tp-libvirt,代码行数:30,代码来源:hotplug_serial.py
示例3: hotplug_device
def hotplug_device(type, char_dev, id=0):
tmp_file = "/tmp/%s" % char_dev
if type == "qmp":
char_add_opt = "chardev-add "
dev_add_opt = "device_add virtserialport,chardev="
if char_dev == "file":
char_add_opt += "file,path=/tmp/file,id=file"
dev_add_opt += "file,name=file,bus=virtio-serial0.0,id=file"
elif char_dev == "socket":
char_add_opt += "socket,path=/tmp/socket,server,nowait,id=socket"
dev_add_opt += "socket,name=socket,bus=virtio-serial0.0,id=socket"
elif char_dev == "pty":
char_add_opt += ("pty,path=/dev/pts/%s,id=pty" % id)
dev_add_opt += "pty,name=pty,bus=virtio-serial0.0,id=pty"
result = virsh.qemu_monitor_command(vm_name, char_add_opt, "--hmp")
if result.exit_status:
raise error.TestError('Failed to add chardev %s to %s. Result:\n %s'
% (char_dev, vm_name, result))
result = virsh.qemu_monitor_command(vm_name, dev_add_opt, "--hmp")
if result.exit_status:
raise error.TestError('Failed to add device %s to %s. Result:\n %s'
% (char_dev, vm_name, result))
elif type == "attach":
if char_dev in ["file", "socket"]:
xml_info = create_channel_xml(vm_name, char_dev)
elif char_dev == "pty":
xml_info = create_channel_xml(vm_name, char_dev, id)
f = open(xml_file, "w")
f.write(xml_info)
f.close()
if os.path.exists(tmp_file):
os.chmod(tmp_file, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
result = virsh.attach_device(vm_name, xml_file)
return result
开发者ID:zcyes,项目名称:tp-libvirt,代码行数:34,代码来源:hotplug_serial.py
示例4: dup_hotplug
def dup_hotplug(type, char_dev, id, dup_charid=False, dup_devid=False, diff_devid=False):
tmp_file = os.path.join(tmp_dir, char_dev)
if type == "qmp":
char_add_opt = "chardev-add "
dev_add_opt = "device_add virtserialport,chardev="
if char_dev == "file":
if dup_charid:
char_add_opt += "file,path=%s,id=file" % tmp_file
if dup_devid:
dev_add_opt += "file,name=file,bus=virtio-serial0.0,id=file"
if diff_devid:
dev_add_opt += "file,name=file,bus=virtio-serial0.0,id=file1"
elif char_dev == "socket":
if dup_charid:
char_add_opt += "socket,path=%s,server,nowait,id=socket" % tmp_file
if dup_devid:
dev_add_opt += "socket,name=socket,bus=virtio-serial0.0,id=socket"
if diff_devid:
dev_add_opt += "socket,name=socket,bus=virtio-serial0.0,id=socket1"
elif char_dev == "pty":
if dup_charid:
char_add_opt += "pty,path=/dev/pts/%s,id=pty" % id
if dup_devid:
dev_add_opt += "pty,name=pty,bus=virtio-serial0.0,id=pty"
if diff_devid:
dev_add_opt += "pty,name=pty,bus=virtio-serial0.0,id=pty1"
if dup_charid:
result = virsh.qemu_monitor_command(vm_name, char_add_opt, "--hmp")
if dup_devid or diff_devid:
result = virsh.qemu_monitor_command(vm_name, dev_add_opt, "--hmp")
elif type == "attach":
if dup_devid:
result = hotplug_device(type, char_dev, id)
return result
开发者ID:Hao-Liu,项目名称:tp-libvirt,代码行数:34,代码来源:hotplug_serial.py
示例5: hotplug_device
def hotplug_device(type, char_dev, id=0):
tmp_file = os.path.join(tmp_dir, char_dev)
if type == "qmp":
char_add_opt = "chardev-add "
dev_add_opt = "device_add virtserialport,chardev="
if char_dev == "file":
char_add_opt += "file,path=%s,id=file" % tmp_file
dev_add_opt += "file,name=file,bus=virtio-serial0.0,id=file"
elif char_dev == "socket":
char_add_opt += "socket,path=%s,server,nowait,id=socket" % tmp_file
dev_add_opt += "socket,name=socket,bus=virtio-serial0.0,id=socket"
elif char_dev == "pty":
char_add_opt += "pty,path=/dev/pts/%s,id=pty" % id
dev_add_opt += "pty,name=pty,bus=virtio-serial0.0,id=pty"
result = virsh.qemu_monitor_command(vm_name, char_add_opt, "--hmp")
if result.exit_status:
raise error.TestError("Failed to add chardev %s to %s. Result:\n %s" % (char_dev, vm_name, result))
result = virsh.qemu_monitor_command(vm_name, dev_add_opt, "--hmp")
if result.exit_status:
raise error.TestError("Failed to add device %s to %s. Result:\n %s" % (char_dev, vm_name, result))
elif type == "attach":
xml_file = os.path.join(tmp_dir, "xml_%s" % char_dev)
if char_dev in ["file", "socket"]:
prepare_channel_xml(xml_file, char_dev)
elif char_dev == "pty":
prepare_channel_xml(xml_file, char_dev, id)
result = virsh.attach_device(vm_name, xml_file)
# serial device was introduced by the following commit,
# http://libvirt.org/git/?
# p=libvirt.git;a=commit;h=b63ea467617e3cbee4282ab2e5e780b4119cef3d
if "unknown device type" in result.stderr:
raise error.TestNAError("Failed to attach %s to %s. Result:\n %s" % (char_dev, vm_name, result))
return result
开发者ID:chloerh,项目名称:tp-libvirt,代码行数:33,代码来源:hotplug_serial.py
示例6: unhotplug_serial_device
def unhotplug_serial_device(hotplug_type, char_dev, index=1):
if hotplug_type == "qmp":
del_dev_opt = "device_del %s%s" % (char_dev, index)
del_char_opt = "chardev-remove %s%s" % (char_dev, index)
virsh.qemu_monitor_command(vm_name, del_dev_opt, "--hmp")
virsh.qemu_monitor_command(vm_name, del_char_opt, "--hmp")
elif hotplug_type == "attach":
xml_file = "%s/xml_%s%s" % (tmp_dir, char_dev, index)
virsh.detach_device(vm_name, xml_file, flagstr="--live")
开发者ID:will-Do,项目名称:tp-libvirt_v2v,代码行数:9,代码来源:libvirt_bench_serial_hotplug.py
示例7: unhotplug_serial_device
def unhotplug_serial_device(type, char_dev):
if type == "qmp":
del_dev_opt = "device_del %s" % char_dev
del_char_opt = "chardev-remove %s" % char_dev
result = virsh.qemu_monitor_command(vm_name, del_dev_opt, "--hmp")
if result.exit_status:
raise error.TestError('Failed to del device %s from %s.Result:\n%s'
% (char_dev, vm_name, result))
result = virsh.qemu_monitor_command(vm_name, del_char_opt, "--hmp")
elif type == "attach":
result = virsh.detach_device(vm_name, xml_file)
开发者ID:zcyes,项目名称:tp-libvirt,代码行数:11,代码来源:hotplug_serial.py
示例8: confirm_hotplug_result
def confirm_hotplug_result(char_dev, id=0):
tmp_file = os.path.join(tmp_dir, char_dev)
serial_file = os.path.join("/dev/virtio-ports", char_dev)
result = virsh.qemu_monitor_command(vm_name, "info qtree", "--hmp")
h_o = result.stdout.strip()
if not h_o.count('name = "%s"' % char_dev):
raise error.TestFail("Cann't find device(%s) from:\n%s" % (char_dev, h_o))
if char_dev == "file":
session.cmd("echo test > %s" % serial_file)
f = open(tmp_file, "r")
r_o = f.read()
f.close()
elif char_dev == "socket":
session.cmd("echo test > /tmp/file")
sock = socket.socket(socket.AF_UNIX)
sock.connect(tmp_file)
session.cmd("dd if=/tmp/file of=%s" % serial_file)
r_o = sock.recv(1024)
elif char_dev == "pty":
session.cmd("echo test > /tmp/file")
session.cmd("dd if=/tmp/file of=%s &" % serial_file)
dev_file = "/dev/pts/%s" % id
if not os.path.exists(dev_file):
raise error.TestFail("%s doesn't exist." % dev_file)
p = subprocess.Popen(["/usr/bin/cat", dev_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
session.cmd("echo test >> /tmp/file &")
while True:
r_o = p.stdout.readline()
if r_o or p.poll():
break
time.sleep(0.2)
p.kill()
if not r_o.count("test"):
err_info = "%s device file doesn't match 'test':%s" % (char_dev, r_o)
raise error.TestFail(err_info)
开发者ID:chloerh,项目名称:tp-libvirt,代码行数:35,代码来源:hotplug_serial.py
示例9: hotplug_supported
def hotplug_supported(vm_name, mtype):
"""
hotplug support check for ppc64le
:param vm_name: VM name
:param mtype: machine type
:return: True if supported and False in all other cases
"""
supported = False
if "ppc64" in platform.machine():
cmd = '{\"execute\":\"query-machines\"}'
json_result = virsh.qemu_monitor_command(vm_name, cmd, "--pretty",
debug=False)
try:
result = json.loads(results_stdout_52lts(json_result))
except Exception:
# Failure to parse json output and default support to False
# TODO: Handle for failure cases
return supported
for item in result['return']:
try:
if item['name'] == mtype:
try:
if item['hotpluggable-cpus'] == 'True':
supported = True
except KeyError:
pass
except KeyError:
pass
else:
# For now returning for other arch by default true
supported = True
return supported
开发者ID:ldoktor,项目名称:avocado-vt,代码行数:34,代码来源:utils_hotplug.py
示例10: confirm_unhotplug_result
def confirm_unhotplug_result(char_dev):
serial_file = os.path.join("/dev/virtio-ports", char_dev)
result = virsh.qemu_monitor_command(vm_name, "info qtree", "--hmp")
uh_o = result.stdout.strip()
if uh_o.count('chardev = "%s"' % char_dev):
raise error.TestFail("Still can get serial device(%s) from: '%s'" % (char_dev, uh_o))
if os.path.exists(serial_file):
raise error.TestFail("File '%s' still exists after unhotplug" % serial_file)
开发者ID:chloerh,项目名称:tp-libvirt,代码行数:8,代码来源:hotplug_serial.py
示例11: confirm_unhotplug_result
def confirm_unhotplug_result(char_dev, index=1):
serial_file = "/dev/virtio-ports/%s%s" % (char_dev, index)
result = virsh.qemu_monitor_command(vm_name, "info qtree", "--hmp")
uh_o = result.stdout.strip()
if uh_o.count("chardev = %s%s" % (char_dev, index)):
raise error.TestFail("Still can get serial device info: '%s'" % uh_o)
if not session.cmd_status("test -e %s" % serial_file):
raise error.TestFail("File '%s' still exists after unhotplug" % serial_file)
开发者ID:will-Do,项目名称:tp-libvirt_v2v,代码行数:8,代码来源:libvirt_bench_serial_hotplug.py
示例12: run_job_acquire
def run_job_acquire(params, libvirtd, vm):
"""
Save domain after queried block info
"""
vm.start()
res = virsh.qemu_monitor_command(vm.name, 'info block', '--hmp')
logging.debug(res)
save_path = os.path.join(data_dir.get_tmp_dir(), 'tmp.save')
virsh.save(vm.name, save_path)
vm.wait_for_shutdown()
开发者ID:balamuruhans,项目名称:tp-libvirt,代码行数:10,代码来源:crash_regression.py
示例13: check_dom_iothread
def check_dom_iothread():
"""
Check iothread by qemu-monitor-command.
"""
ret = virsh.qemu_monitor_command(vm_name,
'{"execute": "query-iothreads"}',
"--pretty")
libvirt.check_exit_status(ret)
logging.debug("Domain iothreads: %s", ret.stdout)
iothreads_ret = json.loads(ret.stdout)
if len(iothreads_ret['return']) != int(dom_iothreads):
raise error.TestFail("Failed to check domain iothreads")
开发者ID:nertpinx,项目名称:tp-libvirt,代码行数:12,代码来源:virtual_disks_multidisks.py
示例14: confirm_hotplug_result
def confirm_hotplug_result(char_dev, index=1, id=0):
result = virsh.qemu_monitor_command(vm_name, "info qtree", "--hmp")
h_o = result.stdout.strip()
chardev_c = h_o.count("chardev = %s%s" % (char_dev, index))
name_c = h_o.count("name = \"%s%s\"" % (char_dev, index))
if chardev_c == 0 and name_c == 0:
raise error.TestFail("Cannot get serial device info: '%s'" % h_o)
tmp_file = "%s/%s%s" % (tmp_dir, char_dev, index)
serial_file = "/dev/virtio-ports/%s%s" % (char_dev, index)
if char_dev == "file":
session.cmd("echo test > %s" % serial_file)
f = open(tmp_file, "r")
output = f.read()
f.close()
elif char_dev == "socket":
session.cmd("echo test > /tmp/file")
sock = socket.socket(socket.AF_UNIX)
sock.connect(tmp_file)
session.cmd("dd if=/tmp/file of=%s" % serial_file)
output = sock.recv(1024)
sock.close()
elif char_dev == "pty":
session.cmd("echo test > /tmp/file")
session.cmd("dd if=/tmp/file of=%s &" % serial_file)
dev_file = "/dev/pts/%s" % id
if not os.path.exists(dev_file):
raise error.TestFail("%s doesn't exist." % dev_file)
p = subprocess.Popen(["/usr/bin/cat", dev_file],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while True:
output = p.stdout.readline()
if output or p.poll():
break
time.sleep(0.2)
p.kill()
if not output.count("test"):
err_info = "%s device file doesn't match 'test':%s" % (char_dev, output)
raise error.TestFail(err_info)
开发者ID:will-Do,项目名称:tp-libvirt_v2v,代码行数:39,代码来源:libvirt_bench_serial_hotplug.py
示例15: run
def run(test, params, env):
"""
1. Configure kernel cmdline to support kdump
2. Start kdump service
3. Inject NMI to the guest
4. Check NMI times
"""
for cmd in 'inject-nmi', 'qemu-monitor-command':
if not virsh.has_help_command(cmd):
raise error.TestNAError("This version of libvirt does not "
" support the %s test", cmd)
vm_name = params.get("main_vm", "virt-tests-vm1")
vm = env.get_vm(vm_name)
start_vm = params.get("start_vm")
expected_nmi_times = params.get("expected_nmi_times", '0')
unprivileged_user = params.get('unprivileged_user')
if unprivileged_user:
if unprivileged_user.count('EXAMPLE'):
unprivileged_user = 'testacl'
if not libvirt_version.version_compare(1, 1, 1):
if params.get('setup_libvirt_polkit') == 'yes':
raise error.TestNAError("API acl test not supported in current"
" libvirt version.")
if start_vm == "yes":
# start kdump service in the guest
cmd = "which kdump"
try:
run_cmd_in_guest(vm, cmd)
except:
try:
# try to install kexec-tools on fedoraX/rhelx.y guest
run_cmd_in_guest(vm, "yum install -y kexec-tools")
except:
raise error.TestNAError("Requires kexec-tools(or the "
"equivalent for your distro)")
# enable kdump service in the guest
cmd = "service kdump start"
run_cmd_in_guest(vm, cmd)
# filter original 'NMI' information from the /proc/interrupts
cmd = "grep NMI /proc/interrupts"
nmi_str = run_cmd_in_guest(vm, cmd)
# filter CPU from the /proc/cpuinfo and count number
cmd = "grep -E '^process' /proc/cpuinfo | wc -l"
vcpu_num = run_cmd_in_guest(vm, cmd).strip()
logging.info("Inject NMI to the guest via virsh inject_nmi")
virsh.inject_nmi(vm_name, debug=True, ignore_status=False)
logging.info("Inject NMI to the guest via virsh qemu_monitor_command")
virsh.qemu_monitor_command(vm_name, '{"execute":"inject-nmi"}')
# injects a Non-Maskable Interrupt into the default CPU (x86/s390)
# or all CPUs (ppc64), as usual, the default CPU index is 0
cmd = "grep NMI /proc/interrupts | awk '{print $2}'"
nmi_from_default_vcpu = run_cmd_in_guest(vm, cmd)
real_nmi_times = nmi_from_default_vcpu.splitlines()[0]
logging.debug("The current Non-Maskable Interrupts: %s", real_nmi_times)
# check Non-maskable interrupts times
if real_nmi_times != expected_nmi_times:
raise error.TestFail("NMI times aren't expected %s:%s",
real_nmi_times, expected_nmi_times)
开发者ID:Antique,项目名称:tp-libvirt,代码行数:68,代码来源:nmi_test.py
示例16: range
try:
result = None
dev_xml = None
opt = "--hmp"
for i in range(attach_count):
if usb_type == "storage":
path = os.path.join(tmp_dir, "%s.img" % i)
libvirt.create_local_disk("file", path, size="1M", disk_format="qcow2")
os.chmod(path, 0666)
if attach_type == "qemu_monitor":
if usb_type == "storage":
attach_cmd = "drive_add"
attach_cmd += (" 0 id=drive-usb-%s,if=none,file=%s" % (i, path))
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=opt)
if result.exit_status or (result.stdout.find("OK") == -1):
raise error.CmdError(result.command, result)
attach_cmd = "device_add usb-storage,"
attach_cmd += ("id=drive-usb-%s,bus=usb1.0,drive=drive-usb-%s" % (i, i))
else:
attach_cmd = "device_add"
attach_cmd += " usb-%s,bus=usb1.0,id=%s%s" % (usb_type, usb_type, i)
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=opt)
if result.exit_status:
raise error.CmdError(result.command, result)
else:
attributes = {'type_name': "usb", 'bus': "1", 'port': "0"}
if usb_type == "storage":
开发者ID:noxdafox,项目名称:tp-libvirt,代码行数:31,代码来源:libvirt_usb_hotplug_device.py
示例17: len
# Configure dump_image_format in /etc/libvirt/qemu.conf.
qemu_config = utils_config.LibvirtQemuConfig()
libvirtd = utils_libvirtd.Libvirtd()
if len(dump_image_format):
qemu_config.dump_image_format = dump_image_format
libvirtd.restart()
# Deal with memory-only dump format
if len(memory_dump_format):
# Make sure libvirt support this option
if virsh.has_command_help_match("dump", "--format") is None:
test.cancel("Current libvirt version doesn't support"
" --format option for dump command")
# Make sure QEMU support this format
query_cmd = '{"execute":"query-dump-guest-memory-capability"}'
qemu_capa = virsh.qemu_monitor_command(vm_name, query_cmd).stdout
if (memory_dump_format not in qemu_capa) and not status_error:
test.cancel("Unsupported dump format '%s' for"
" this QEMU binary" % memory_dump_format)
options += " --format %s" % memory_dump_format
if memory_dump_format == 'elf':
dump_image_format = 'elf'
if memory_dump_format in ['kdump-zlib', 'kdump-lzo', 'kdump-snappy']:
dump_image_format = 'data'
# Back up xml file
vmxml = vm_xml.VMXML.new_from_inactive_dumpxml(vm_name)
backup_xml = vmxml.copy()
dump_guest_core = params.get("dump_guest_core", "")
if dump_guest_core not in ["", "on", "off"]:
开发者ID:lento-sun,项目名称:tp-libvirt,代码行数:31,代码来源:virsh_dump.py
示例18: run
def run(test, params, env):
"""
Stress test for the hotplug feature of usb device.
"""
# get the params from params
vm_name = params.get("main_vm", "avocado-vt-vm1")
vm = env.get_vm(vm_name)
keyboard = "yes" == params.get("usb_hotplug_keyboard", "no")
mouse = "yes" == params.get("usb_hotplug_mouse", "no")
tablet = "yes" == params.get("usb_hotplug_tablet", "no")
disk = "yes" == params.get("usb_hotplug_disk", "no")
attach_count = int(params.get("attach_count", "1"))
attach_type = params.get("attach_type", "attach_device")
bench_type = params.get("guest_bench", None)
control_file = params.get("control_file", None)
status_error = "yes" == params.get("status_error", "no")
vm_xml = VMXML.new_from_inactive_dumpxml(vm_name)
vm_xml_backup = vm_xml.copy()
tmp_dir = os.path.join(data_dir.get_tmp_dir(), "usb_hotplug_files")
if control_file is not None:
params["test_control_file"] = control_file
params["main_vm"] = vm_name
control_path = os.path.join(test.virtdir, "control", control_file)
session = vm.wait_for_login()
command = utils_test.run_autotest(vm, session, control_path, None, None, params, copy_only=True)
session.cmd("%s &" % command)
def _is_iozone_running():
session_tmp = vm.wait_for_login()
return not session_tmp.cmd_status("ps -ef|grep iozone|grep -v grep")
def _is_stress_running():
session_tmp = vm.wait_for_login()
return not session_tmp.cmd_status("ps -ef|grep stress|grep -v grep")
if bench_type == "stress":
if not utils_misc.wait_for(_is_stress_running, timeout=160):
raise error.TestNAError(
"Failed to run stress in guest.\n"
"Since we need to run a autotest of iozone "
"in guest, so please make sure there are "
"some necessary packages in guest,"
"such as gcc, tar, bzip2"
)
elif bench_type == "iozone":
if not utils_misc.wait_for(_is_iozone_running, timeout=160):
raise error.TestNAError(
"Failed to run iozone in guest.\n"
"Since we need to run a autotest of iozone "
"in guest, so please make sure there are "
"some necessary packages in guest,"
"such as gcc, tar, bzip2"
)
logging.debug("bench is already running in guest.")
try:
try:
result = None
disk_xml = None
tablet_xml = None
mouse_xml = None
if not os.path.isdir(tmp_dir):
os.mkdir(tmp_dir)
for i in range(attach_count):
path = os.path.join(tmp_dir, "%s.img" % i)
if attach_type == "qemu_monitor":
options = "--hmp"
if disk:
utils_test.libvirt.create_local_disk("file", path, size="1M")
attach_cmd = "drive_add"
attach_cmd += " 0 id=drive-usb-disk%s,if=none,file=%s" % (i, path)
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=options)
if result.exit_status:
raise process.CmdError(result.command, result)
if keyboard:
attach_cmd = "device_add"
attach_cmd += " usb-kdb,bus=usb1.0,id=kdb"
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=options)
if result.exit_status:
raise process.CmdError(result.command, result)
if mouse:
attach_cmd = "device_add"
attach_cmd += " usb-mouse,bus=usb1.0,id=mouse"
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=options)
if result.exit_status:
raise process.CmdError(result.command, result)
if tablet:
attach_cmd = "device_add"
attach_cmd += " usb-tablet,bus=usb1.0,id=tablet"
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=options)
#.........这里部分代码省略.........
开发者ID:chloerh,项目名称:tp-libvirt,代码行数:101,代码来源:libvirt_bench_usb_hotplug.py
示例19: run
def run(test, params, env):
"""
Test for hotplug usb device.
"""
# get the params from params
vm_name = params.get("main_vm", "avocado-vt-vm1")
vm = env.get_vm(vm_name)
usb_type = params.get("usb_type", "kbd")
attach_type = params.get("attach_type", "attach_device")
attach_count = int(params.get("attach_count", "1"))
if usb_type == "storage":
model = params.get("model", "nec-xhci")
index = params.get("index", "1")
status_error = ("yes" == params.get("status_error", "no"))
vm_xml = VMXML.new_from_inactive_dumpxml(vm_name)
vm_xml_backup = vm_xml.copy()
# Set selinux of host.
backup_sestatus = utils_selinux.get_status()
utils_selinux.set_status("permissive")
if usb_type == "storage":
controllers = vm_xml.get_devices(device_type="controller")
devices = vm_xml.get_devices()
for dev in controllers:
if dev.type == "usb" and dev.index == "1":
devices.remove(dev)
controller = Controller("controller")
controller.type = "usb"
controller.index = index
controller.model = model
devices.append(controller)
vm_xml.set_devices(devices)
try:
session = vm.wait_for_login()
except (LoginError, VMError, ShellError) as e:
test.fail("Test failed: %s" % str(e))
def is_hotplug_ok():
try:
output = session.cmd_output("fdisk -l | grep -c '^Disk /dev/.* 1 M'")
if int(output.strip()) != attach_count:
return False
else:
return True
except ShellTimeoutError as detail:
test.fail("unhotplug failed: %s, " % detail)
tmp_dir = os.path.join(data_dir.get_tmp_dir(), "usb_hotplug_files")
if not os.path.isdir(tmp_dir):
os.mkdir(tmp_dir)
try:
result = None
dev_xml = None
opt = "--hmp"
for i in range(attach_count):
if usb_type == "storage":
path = os.path.join(tmp_dir, "%s.img" % i)
libvirt.create_local_disk("file", path, size="1M", disk_format="qcow2")
os.chmod(path, 0o666)
if attach_type == "qemu_monitor":
if usb_type == "storage":
attach_cmd = "drive_add"
attach_cmd += (" 0 id=drive-usb-%s,if=none,file=%s" % (i, path))
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=opt)
if result.exit_status or (result.stdout.strip().find("OK") == -1):
raise process.CmdError(result.command, result)
attach_cmd = "device_add usb-storage,"
attach_cmd += ("id=drive-usb-%s,bus=usb1.0,drive=drive-usb-%s" % (i, i))
else:
attach_cmd = "device_add"
attach_cmd += " usb-%s,bus=usb1.0,id=%s%s" % (usb_type, usb_type, i)
result = virsh.qemu_monitor_command(vm_name, attach_cmd, options=opt)
if result.exit_status:
raise process.CmdError(result.command, result)
else:
attributes = {'type_name': "usb", 'bus': "1", 'port': "0"}
if usb_type == "storage":
dev_xml = Disk(type_name="file")
dev_xml.device = "disk"
dev_xml.source = dev_xml.new_disk_source(**{"attrs": {'file': path}})
dev_xml.driver = {"name": "qemu", "type": 'qcow2', "cache": "none"}
dev_xml.target = {"dev": 'sdb', "bus": "usb"}
dev_xml.address = dev_xml.new_disk_address(**{"attrs": attributes})
else:
if usb_type == "mouse":
dev_xml = Input("mouse")
elif usb_type == "tablet":
dev_xml = Input("tablet")
else:
dev_xml = Input("keyboard")
#.........这里部分代码省略.........
开发者ID:balamuruhans,项目名称:tp-libvirt,代码行数:101,代码来源:libvirt_usb_hotplug_device.py
示例20: run
def run(test, params, env):
"""
Test command: virsh qemu-monitor-command.
"""
vm_name = params.get("main_vm")
vm = env.get_vm(vm_name)
vm_ref = params.get("vm_ref", "domname")
vm_state = params.get("vm_state", "running")
cmd = params.get("qemu_cmd", "")
options = params.get("options", "")
status_error = "yes" == params.get("status_error", "no")
domuuid = vm.get_uuid()
domid = ""
libvirtd_inst = utils_libvirtd.Libvirtd()
help_info = virsh.help("qemu-monitor-command").stdout.strip()
if "--pretty" in options:
if "--pretty" not in help_info:
raise error.TestNAError("--pretty option is not supported in"
" current version")
try:
# Prepare vm state for test
if vm_state != "shutoff":
vm.start()
vm.wait_for_login()
domid = vm.get_id()
if vm_state == "paused":
vm.pause()
if vm_ref == "domname":
vm_ref = vm_name
elif vm_ref == "domid":
vm_ref = domid
elif vm_ref == "domuuid":
vm_ref = domuuid
elif domid and vm_ref == "hex_id":
vm_ref = hex(int(domid))
# Run virsh command
cmd_result = virsh.qemu_monitor_command(vm_ref, cmd, options,
ignore_status=True,
debug=True)
output = cmd_result.stdout.strip()
status = cmd_result.exit_status
# Check result
if not libvirtd_inst.is_running():
raise error.TestFail("Libvirtd is not running after run command.")
if status_error:
if not status:
# Return status is 0 with unknown command
if "unknown command:" in output:
logging.debug("Command failed: %s" % output)
else:
raise error.TestFail("Expect fail, but run successfully.")
else:
logging.debug("Command failed as expected.")
else:
if status:
raise error.TestFail("Expect succeed, but run fail.")
finally:
# Cleanup
if not libvirtd_inst.is_running():
libv
|
请发表评论