本文整理汇总了Python中virttest.utils_spice.wait_timeout函数的典型用法代码示例。如果您正苦于以下问题:Python wait_timeout函数的具体用法?Python wait_timeout怎么用?Python wait_timeout使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wait_timeout函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run_rv_connect
def run_rv_connect(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
@param test: QEMU test object. @param params: Dictionary with the test parameters.
@param env: Dictionary with test environment.
"""
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
utils_spice.wait_timeout(15)
launch_rv(client_vm, guest_vm, params)
client_session.close()
guest_session.close()
示例2: test_leds_migration
def test_leds_migration(client_vm, guest_vm, guest_session, params):
"""
Check LEDS after migration.
Function sets LEDS (caps, num) to ON and send scancodes of "a" and "1 (num)"
and expected to get keycodes of "A" and "1" after migration.
@param client_vm - vm object
@param guest_vm - vm object
@param guest_session - ssh session to guest VM
@param params
"""
#Run wxPython form catching KeyEvents on guest
run_test_form(guest_session, params)
utils_spice.wait_timeout(3)
#Tested keys before migration
test_keys = ['a', 'kp_1', 'caps_lock', 'num_lock', 'a', 'kp_1']
logging.info("Sending leds keys to client machine before migration")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
guest_vm.migrate()
utils_spice.wait_timeout(5)
#Tested keys after migration
test_keys = ['a', 'kp_1']
logging.info("Sending leds keys to client machine after migration")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
utils_spice.wait_timeout(30)
示例3: test_leds_and_esc_keys
def test_leds_and_esc_keys(client_vm, guest_session, params):
"""
Test LEDS and Escaped keys.
Function sends various keys through qemu monitor to client VM.
@param client_vm - vm object
@param guest_session - ssh session to guest VM
@param params
"""
#Run wxPython form catching KeyEvents on guest
run_test_form(guest_session, params)
utils_spice.wait_timeout(3)
#Prepare lists with the keys to be sent to client machine
leds = ['a', 'caps_lock', 'a', 'caps_lock', 'num_lock', 'kp_1', 'num_lock',
'kp_1']
shortcuts = ['a', 'shift-a', 'shift_r-a', 'ctrl-a', 'ctrl-c', 'ctrl-v',
'alt-x']
escaped = ['insert', 'delete', 'home', 'end', 'pgup', 'pgdn', 'up',
'down', 'right', 'left']
test_keys = leds + shortcuts + escaped
#Send keys to client machine
logging.info("Sending leds and escaped keys to client machine")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
示例4: run_smartcard_setup
def run_smartcard_setup(test, params, env):
"""
Simple setup test to create certs on the client to be passed to VM's
smartcard.
@param test: QEMU test object.
@param params: Dictionary with the test parameters.
@param env: Dictionary with test environment.
"""
# Get necessary params
cert_list = params.get("gencerts").split(",")
cert_db = params.get("certdb")
self_sign = params.get("self_sign")
cert_trustargs = params.get("trustargs")
logging.debug("Cert List:")
for cert in cert_list:
logging.debug(cert)
logging.debug(cert_trustargs)
logging.debug("CN=" + cert)
logging.debug(cert_db)
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)),
username="root", password="123456")
#generate a random string, used to create a random key for the certs
randomstring = utils_misc.generate_random_string(2048)
cmd = "echo '" + randomstring + "' > /tmp/randomtext.txt"
output = client_session.cmd(cmd)
#output2 = client_session.cmd("cat /tmp/randomtext.txt")
utils_spice.wait_timeout(5)
#for each cert listed by the test, create it on the client
for cert in cert_list:
cmd = "certutil "
if self_sign:
cmd += " -x "
cmd += "-t '" + cert_trustargs + "' -S -s " + "'CN=" + cert
cmd += "' -n '" + cert + "' -d " + cert_db
cmd += " -z " + "/tmp/randomtext.txt"
logging.debug(cmd)
output = client_session.cmd(cmd)
logging.debug("Cert Created: " + output)
cmd = "certutil -L -d " + cert_db
output = client_session.cmd(cmd)
logging.info("Listing all certs on the client: " + output)
#Verify that all the certs have been generated on the client
for cert in cert_list:
if not(cert in output):
raise error.TestFail("Certificate %s not found" % cert)
client_session.close()
示例5: run_fullscreen_setup
def run_fullscreen_setup(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
@param test: QEMU test object.
@param params: Dictionary with the test parameters.
@param env: Dictionary with test environment.
"""
# Get necessary params
test_timeout = float(params.get("test_timeout", 600))
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(timeout=int(params.get("login_timeout", 360)))
utils_spice.wait_timeout(10)
logging.debug("Exporting guest display")
guest_session.cmd("export DISPLAY=:0.0")
# Get the min, current, and max resolution on the guest
output = guest_session.cmd("xrandr | grep Screen")
outputlist = output.split()
minimum = "640x480"
current_index = outputlist.index("current")
current = outputlist[current_index + 1]
current += outputlist[current_index + 2]
# Remove trailing comma
current += outputlist[current_index + 3].replace(",", "")
maximum = "2560x1600"
logging.info("Minimum: " + minimum + " Current: " + current + " Maximum: " + maximum)
if current != minimum:
resolution = minimum
else:
resolution = maximum
# Changing the guest resolution
guest_session.cmd("xrandr -s " + resolution)
logging.info("The resolution on the guest has been changed from " + current + " to: " + resolution)
# Start vdagent daemon
utils_spice.start_vdagent(guest_session, test_timeout)
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(timeout=int(params.get("login_timeout", 360)))
client_session.close()
guest_session.close()
示例6: run
def run(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
:param test: QEMU test object. :param params: Dictionary with the test parameters.
:param env: Dictionary with test environment.
"""
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
if (client_vm.params.get("os_type") == "windows" and
client_vm.params.get("rv_installer", None)):
utils_spice.install_rv_win(client_vm, params.get("rv_installer"))
return
if params.get("clear_interface", "yes") == "yes":
for vm in params.get("vms").split():
try:
session = env.get_vm(vm).wait_for_login(timeout=360)
output = session.cmd('cat /etc/redhat-release')
logging.info(output)
except ShellCmdError:
raise error.TestNAError("Test is only currently supported on "
"RHEL and Fedora operating systems")
if "release 6." in output:
waittime = 15
else:
waittime = 60
utils_spice.clear_interface(env.get_vm(vm),
int(params.get("login_timeout", "360")))
utils_spice.wait_timeout(waittime)
launch_rv(client_vm, guest_vm, params)
client_session.close()
guest_session.close()
示例7: test_leds_migration
def test_leds_migration(client_vm, guest_vm, guest_session, params):
"""
Check LEDS after migration.
Function sets LEDS (caps, num) to ON and send scancodes of "a" and "1 (num)"
and expected to get keycodes of "A" and "1" after migration.
:param client_vm - vm object
:param guest_vm - vm object
:param guest_session - ssh session to guest VM
:param params
"""
# Turn numlock on RHEL6 on before the test begins:
grep_ver_cmd = "grep -o 'release [[:digit:]]' /etc/redhat-release"
rhel_ver = guest_session.cmd(grep_ver_cmd).strip()
logging.info("RHEL version: #{0}#".format(rhel_ver))
if rhel_ver == "release 6":
client_vm.send_key('num_lock')
#Run PyGTK form catching KeyEvents on guest
run_test_form(guest_session, params)
utils_spice.wait_timeout(3)
# Tested keys before migration
test_keys = ['a', 'kp_1', 'caps_lock', 'num_lock', 'a', 'kp_1']
logging.info("Sending leds keys to client machine before migration")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
guest_vm.migrate()
utils_spice.wait_timeout(8)
#Tested keys after migration
test_keys = ['a', 'kp_1', 'caps_lock', 'num_lock']
logging.info("Sending leds keys to client machine after migration")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
utils_spice.wait_timeout(30)
示例8: test_nonus_layout
def test_nonus_layout(client_vm, guest_session, params):
"""
Test some keys of non-us keyboard layouts (de, cz).
Function sends various keys through qemu monitor to client VM.
:param client_vm - vm object
:param guest_session - ssh session to guest VM
:param params
"""
#Run PyGTK form catching KeyEvents on guest
run_test_form(guest_session, params)
utils_spice.wait_timeout(3)
# Czech layout - test some special keys
cmd = "setxkbmap cz"
guest_session.cmd(cmd)
test_keys = ['7', '8', '9', '0', 'alt_r-x', 'alt_r-c', 'alt_r-v']
logging.info("Sending czech keys to client machine")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
# German layout - test some special keys
cmd = "setxkbmap de"
guest_session.cmd(cmd)
test_keys = ['minus', '0x1a', 'alt_r-q', 'alt_r-m']
logging.info("Sending german keys to client machine")
for key in test_keys:
client_vm.send_key(key)
utils_spice.wait_timeout(0.3)
cmd = "setxkbmap us"
guest_session.cmd(cmd)
示例9: run_rv_connect
def run_rv_connect(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
:param test: QEMU test object. :param params: Dictionary with the test parameters.
:param env: Dictionary with test environment.
"""
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
if (client_vm.params.get("os_type") == "windows" and
client_vm.params.get("rv_installer", None)):
utils_spice.install_rv_win(client_vm, params.get("rv_installer"))
return
if params.get("clear_interface", "yes") == "yes":
for vm in params.get("vms").split():
utils_spice.clear_interface(env.get_vm(vm),
int(params.get("login_timeout", "360")))
utils_spice.wait_timeout(15)
launch_rv(client_vm, guest_vm, params)
client_session.close()
guest_session.close()
示例10: setup_vm_windows
def setup_vm_windows(test, params, env, vm):
setup_type = vm.params.get("setup_type", None)
logging.info("Setup type: %s" % setup_type)
if vm.params.get("display", None) == "vnc":
logging.info("Display of VM is VNC; assuming it is client")
utils_spice.install_rv_win(vm, params.get("rv_installer"), env)
utils_spice.install_usbclerk_win(vm, params.get("usb_installer"), env)
return
if setup_type == "guest_tools":
logging.info("Installing Windows guest tools")
session = vm.wait_for_login(
timeout = int(params.get("login_timeout", 360)))
winqxl = params.get("winqxl")
winvdagent = params.get("winvdagent")
vioserial = params.get("vioserial")
pnputil = params.get("pnputil")
winp7 = params.get("winp7zip")
guest_script_req = params.get("guest_script_req")
md5sumwin = params.get("md5sumwin")
md5sumwin_dir = os.path.join("scripts", md5sumwin)
guest_sr_dir = os.path.join("scripts", guest_script_req)
guest_sr_path = utils_misc.get_path(test.virtdir, guest_sr_dir)
md5sumwin_path = utils_misc.get_path(test.virtdir, md5sumwin_dir)
winp7_path = os.path.join(test.virtdir, 'deps', winp7)
winqxlzip = os.path.join(test.virtdir, 'deps', winqxl)
winvdagentzip = os.path.join(test.virtdir, 'deps', winvdagent)
vioserialzip = os.path.join(test.virtdir, 'deps', vioserial)
#copy p7zip to windows and install it silently
logging.info("Installing 7zip")
vm.copy_files_to(winp7_path, "C:\\")
session.cmd_status("start /wait msiexec /i C:\\7z920-x64.msi /qn")
#copy over the winqxl, winvdagent, virtio serial
vm.copy_files_to(winqxlzip, "C:\\")
vm.copy_files_to(winvdagentzip, "C:\\")
vm.copy_files_to(vioserialzip, "C:\\")
vm.copy_files_to(guest_sr_path, "C:\\")
vm.copy_files_to(md5sumwin_path, "C:\\")
#extract winvdagent zip and start service if vdservice is not installed
try:
output = session.cmd('sc queryex type= service state= all' +
' | FIND "vdservice"')
except aexpect.ShellCmdError:
session.cmd_status('"C:\\Program Files\\7-Zip\\7z.exe" e C:\\wvdagent.zip -oC:\\')
utils_spice.wait_timeout(2)
session.cmd_status("C:\\vdservice.exe install")
#wait for vdservice to come up
utils_spice.wait_timeout(5)
logging.info(session.cmd("net start vdservice"))
logging.info(session.cmd("chdir"))
#extract winqxl driver, place drivers in correct location & reboot
#Note pnputil only works win 7+, need to find a way for win xp
#Verify if virtio serial is already installed
output = session.cmd(pnputil + " /e")
if("System devices" in output):
logging.info( "Virtio Serial already installed")
else:
session.cmd_status('"C:\\Program Files\\7-Zip\\7z.exe" e C:\\vioserial.zip -oC:\\')
output = session.cmd(pnputil + " -i -a C:\\vioser.inf")
logging.info("Virtio Serial status: " + output)
#Make sure virtio install is complete
utils_spice.wait_timeout(5)
output = session.cmd(pnputil + " /e")
if("Display adapters" in output):
logging.info("QXL already installed")
else:
#winqxl
session.cmd_status('"C:\\Program Files\\7-Zip\\7z.exe" e C:\\wqxl.zip -oC:\\')
output = session.cmd(pnputil + " -i -a C:\\qxl.inf")
logging.info( "Win QXL status: " + output )
#Make sure qxl install is complete
utils_spice.wait_timeout(5)
vm.reboot()
logging.info("Installation of Windows guest tools completed")
logging.info("Setup complete")
示例11: run_rv_gui
#.........这里部分代码省略.........
#Verification of the printscreen test prior to the test being run
if "printscreen" in i:
output = client_session.cmd('cat /etc/redhat-release')
if "release 7." in output:
output = guest_session.cmd('rm -vf /home/test/Pictures/Screen*')
logging.info("Screenshots removed: " + output)
#Adding parameters to the test
if (i == "connect"):
cmd += " 'spice://%s:%s'" % (host_ip, host_port)
if ticket:
cmd += " %s > /dev/null 2>&1" % ticket
#Run the test
client_session_dt = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_session_dt.cmd("export DISPLAY=:0.0")
client_session_dt.cmd('. /home/test/.dbus/session-bus/`cat ' + \
'/var/lib/dbus/machine-id`-0')
client_session_dt.cmd('export DBUS_SESSION_BUS_ADDRESS ' + \
'DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID')
print "Running test: " + cmd
try:
logging.info(client_session_dt.cmd(cmd))
except:
logging.error("Status: FAIL")
errors += 1
else:
logging.info("Status: PASS")
client_session_dt.close()
#Wait before doing any verification
utils_spice.wait_timeout(5)
#Verification Needed after the gui test was run
if "zoom" in i:
guest_res2 = getres(guest_session)
rv_res2 = getrvgeometry(client_session, host_port, host_ip)
#Check to see that the resolution doesn't change
logstr = "Checking that the guest's resolution doesn't change"
checkresequal(guest_res, guest_res2, logstr)
if "zoomin" in i:
#verify the rv window has increased
errorstr = "Checking the rv window's size has increased"
logging.info(errorstr)
checkgeometryincrease(rv_res, rv_res2, errorstr)
if "zoomout" in i:
#verify the rv window has decreased
errorstr = "Checking the rv window's size has decreased"
logging.info(errorstr)
checkgeometryincrease(rv_res2, rv_res, errorstr)
if "zoomnorm" in i:
errorstr = "Checking the rv window's size is the same as " + \
"it was originally when rv was started."
checkresequal(rv_res2, rv_res_orig, errorstr)
if "quit" in i or "close" in i:
#Verify for quit tests that remote viewer is not running on client
try:
rvpid = str(client_session.cmd("pgrep remote-viewer"))
raise error.TestFail("Remote-viewer is still running: " + rvpid)
except ShellCmdError:
logging.info("Remote-viewer process is no longer running.")
if "screenshot" in i:
#Verify the screenshot was created and clean up
示例12: client
# It's not that important to have printed versions in the log.
logging.debug("Ignoring a Status Exception that occurs from calling "
"print versions of remote-viewer or spice-gtk")
logging.info("Launching %s on the client (virtual)", cmd)
try:
client_session.cmd(cmd)
except ShellStatusError:
logging.debug("Ignoring a status exception, will check connection of"
"remote-viewer later")
# client waits for user entry (authentication) if spice_password is set
# use qemu monitor password if set, else check if the normal password is set
if qemu_ticket:
# Wait for remote-viewer to launch
utils_spice.wait_timeout(5)
send_ticket(client_vm, qemu_ticket)
elif ticket:
if ticket_send:
ticket = ticket_send
utils_spice.wait_timeout(5) # Wait for remote-viewer to launch
send_ticket(client_vm, ticket)
utils_spice.wait_timeout(5) # Wait for conncetion to establish
try:
utils_spice.verify_established(client_vm, host_ip, host_port, rv_binary)
except utils_spice.RVConnectError:
if test_type == "negative":
logging.info("remote-viewer connection failed as expected")
else:
raise error.TestFail("remote-viewer connection failed")
示例13: run
def run(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
:param test: QEMU test object.
:param params: Dictionary with the test parameters.
:param env: Dictionary with test environment.
"""
# Get necessary params
test_timeout = float(params.get("test_timeout", 600))
utils_spice.wait_timeout(20)
for vm in params.get("vms").split():
utils_spice.clear_interface(env.get_vm(vm),
int(params.get("login_timeout", "360")))
utils_spice.wait_timeout(20)
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
guest_root_session = guest_vm.wait_for_login(username="root",
password="123456")
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_root_session = client_vm.wait_for_login(username="root",
password="123456")
logging.debug("Exporting client display")
client_session.cmd("export DISPLAY=:0.0")
# Get the min, current, and max resolution on the guest
output = client_session.cmd("xrandr | grep Screen")
outputlist = output.split()
minimum = "640x480"
current_index = outputlist.index("current")
current = outputlist[current_index + 1]
current += outputlist[current_index + 2]
# Remove trailing comma
current += outputlist[current_index + 3].replace(",", "")
maximum = "2560x1600"
logging.info("Minimum: " + minimum + " Current: " + current +
" Maximum: " + maximum)
if(current != minimum):
newClientResolution = minimum
else:
newClientResolution = maximum
# Changing the guest resolution
client_session.cmd("xrandr -s " + newClientResolution)
logging.info("The resolution on the client has been changed from " +
current + " to: " + newClientResolution)
logging.debug("Exporting guest display")
guest_session.cmd("export DISPLAY=:0.0")
# Get the min, current, and max resolution on the guest
output = guest_session.cmd("xrandr | grep Screen")
outputlist = output.split()
current_index = outputlist.index("current")
currentGuestRes = outputlist[current_index + 1]
currentGuestRes += outputlist[current_index + 2]
currentGuestRes += outputlist[current_index + 3].replace(",", "")
logging.info("Current Resolution of Guest: " + currentGuestRes)
if (newClientResolution == currentGuestRes):
raise error.TestFail("Client resolution is same as guest resolution!")
# Start vdagent daemon
utils_spice.start_vdagent(guest_root_session, test_timeout)
client_session.close()
guest_session.close()
示例14: run_fullscreen_setup
def run_fullscreen_setup(test, params, env):
"""
Simple test for Remote Desktop connection
Tests expectes that Remote Desktop client (spice/vnc) will be executed
from within a second guest so we won't be limited to Linux only clients
The plan is to support remote-viewer at first place
@param test: KVM test object.
@param params: Dictionary with the test parameters.
@param env: Dictionary with test environment.
"""
# Get necessary params
test_timeout = float(params.get("test_timeout", 600))
guest_vm = env.get_vm(params["guest_vm"])
guest_vm.verify_alive()
guest_session = guest_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
try:
guest_session.cmd("startx &", timeout=15)
except (aexpect.ShellCmdError, aexpect.ShellStatusError):
logging.debug("Ignoring an Exception that Occurs from calling startx")
# Sleep while X session starts
utils_spice.wait_timeout(15)
logging.debug("Exporting guest display")
guest_session.cmd("export DISPLAY=:0.0")
# Get the min, current, and max resolution on the guest
output = guest_session.cmd("xrandr | grep Screen")
outputlist = output.split()
MINindex = outputlist.index("minimum")
minimum = outputlist[MINindex + 1]
minimum += outputlist[MINindex + 2]
# Remove trailing comma
minimum += outputlist[MINindex + 3].replace(",", "")
CURRENTindex = outputlist.index("current")
current = outputlist[CURRENTindex + 1]
current += outputlist[CURRENTindex + 2]
# Remove trailing comma
current += outputlist[CURRENTindex + 3].replace(",", "")
MAXindex = outputlist.index("maximum")
maximum = outputlist[MAXindex + 1]
maximum += outputlist[MAXindex + 2]
maximum += outputlist[MAXindex + 3]
logging.info("Minimum: " + minimum + " Current: " + current +
" Maximum: " + maximum)
if(current != minimum):
resolution = minimum
else:
resolution = maximum
# Changing the guest resolution
guest_session.cmd("xrandr -s " + resolution)
logging.info("The resolution on the guest has been changed from " +
current + " to: " + resolution)
# Start vdagent daemon
utils_spice.start_vdagent(guest_session, test_timeout)
client_vm = env.get_vm(params["client_vm"])
client_vm.verify_alive()
client_session = client_vm.wait_for_login(
timeout=int(params.get("login_timeout", 360)))
client_session.close()
guest_session.close()
示例15: launch_rv
#.........这里部分代码省略.........
client_vm.copy_files_to("rv_file.vv", "~/rv_file.vv")
# Launching the actual set of commands
try:
if rv_ld_library_path:
print_rv_version(client_session, "LD_LIBRARY_PATH=/usr/local/lib " + rv_binary)
else:
print_rv_version(client_session, rv_binary)
except (ShellStatusError, ShellProcessTerminatedError):
# Sometimes It fails with Status error, ingore it and continue.
# It's not that important to have printed versions in the log.
logging.debug(
"Ignoring a Status Exception that occurs from calling " "print versions of remote-viewer or spice-gtk"
)
logging.info("Launching %s on the client (virtual)", cmd)
if proxy:
if "http" in proxy:
split = proxy.split("//")[1].split(":")
else:
split = proxy.split(":")
host_ip = split[0]
if len(split) > 1:
host_port = split[1]
else:
host_port = "3128"
if rv_parameters_from != "file":
client_session.cmd("export SPICE_PROXY=%s" % proxy)
if not params.get("rv_verify") == "only":
try:
client_session.cmd(cmd)
except ShellStatusError:
logging.debug("Ignoring a status exception, will check connection" "of remote-viewer later")
# Send command line through monitor since url was not provided
if rv_parameters_from == "menu":
utils_spice.wait_timeout(1)
str_input(client_vm, line)
# client waits for user entry (authentication) if spice_password is set
# use qemu monitor password if set, else, if set, try normal password.
if qemu_ticket:
# Wait for remote-viewer to launch
utils_spice.wait_timeout(5)
str_input(client_vm, qemu_ticket)
elif ticket:
if ticket_send:
ticket = ticket_send
utils_spice.wait_timeout(5) # Wait for remote-viewer to launch
str_input(client_vm, ticket)
utils_spice.wait_timeout(5) # Wait for conncetion to establish
is_rv_connected = True
try:
utils_spice.verify_established(
client_vm, host_ip, host_port, rv_binary, host_tls_port, params.get("spice_secure_channels", None)
)
except utils_spice.RVConnectError:
if test_type == "negative":
logging.info("remote-viewer connection failed as expected")
if ssltype in ("invalid_implicit_hs", "invalid_explicit_hs"):
# Check the qemu process output to verify what is expected
qemulog = guest_vm.process.get_output()
if "SSL_accept failed" in qemulog:
return
else:
raise error.TestFail("SSL_accept failed not shown in qemu" + "process as expected.")
is_rv_connected = False
else:
raise error.TestFail("remote-viewer connection failed")
if test_type == "negative" and is_rv_connected:
raise error.TestFail("remote-viewer connection was established when" + " it was supposed to be unsuccessful")
# Get spice info
output = guest_vm.monitor.cmd("info spice")
logging.debug("INFO SPICE")
logging.debug(output)
# Check to see if ipv6 address is reported back from qemu monitor
if check_spice_info == "ipv6":
logging.info("Test to check if ipv6 address is reported" " back from the qemu monitor")
# Remove brackets from ipv6 host ip
if host_ip[1 : len(host_ip) - 1] in output:
logging.info("Reported ipv6 address found in output from" " 'info spice'")
else:
raise error.TestFail("ipv6 address not found from qemu monitor" " command: 'info spice'")
else:
logging.info("Not checking the value of 'info spice'" " from the qemu monitor")
# prevent from kill remote-viewer after test finish
if client_vm.params.get("os_type") == "linux":
cmd = "disown -ar"
client_session.cmd_output(cmd)