| Index: client/tests/kvm/tests/whql_client_install.py
|
| diff --git a/client/tests/kvm/tests/whql_client_install.py b/client/tests/kvm/tests/whql_client_install.py
|
| index 84b91bc282431188590d8a08df0dfb09bd682e19..f5d725d4240593461cb1cac395f5c00a0d8785a3 100644
|
| --- a/client/tests/kvm/tests/whql_client_install.py
|
| +++ b/client/tests/kvm/tests/whql_client_install.py
|
| @@ -1,6 +1,6 @@
|
| -import logging, time, os, re
|
| +import logging, time, os
|
| from autotest_lib.client.common_lib import error
|
| -import kvm_subprocess, kvm_test_utils, kvm_utils, rss_file_transfer
|
| +import kvm_test_utils, kvm_utils, rss_file_transfer
|
|
|
|
|
| def run_whql_client_install(test, params, env):
|
| @@ -13,13 +13,17 @@ def run_whql_client_install(test, params, env):
|
| 5) Move the client machine into the server's workgroup
|
| 6) Reboot the client machine
|
| 7) Install the DTM client software
|
| + 8) Setup auto logon for the user created by the installation
|
| + (normally DTMLLUAdminUser)
|
| + 9) Reboot again
|
|
|
| @param test: kvm test object
|
| @param params: Dictionary with the test parameters
|
| @param env: Dictionary with test environment.
|
| """
|
| - vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
|
| - session = kvm_test_utils.wait_for_login(vm, 0, 240)
|
| + vm = env.get_vm(params["main_vm"])
|
| + vm.verify_alive()
|
| + session = vm.wait_for_login(timeout=int(params.get("login_timeout", 360)))
|
|
|
| # Collect test params
|
| server_address = params.get("server_address")
|
| @@ -29,6 +33,8 @@ def run_whql_client_install(test, params, env):
|
| "Microsoft Driver Test Manager\\Studio")
|
| server_username = params.get("server_username")
|
| server_password = params.get("server_password")
|
| + client_username = params.get("client_username")
|
| + client_password = params.get("client_password")
|
| dsso_delete_machine_binary = params.get("dsso_delete_machine_binary",
|
| "deps/whql_delete_machine_15.exe")
|
| dsso_delete_machine_binary = kvm_utils.get_path(test.bindir,
|
| @@ -50,52 +56,50 @@ def run_whql_client_install(test, params, env):
|
| server_session = kvm_utils.remote_login("nc", server_address,
|
| server_shell_port, "", "",
|
| session.prompt, session.linesep)
|
| + server_session.set_status_test_command(session.status_test_command)
|
|
|
| # Get server and client information
|
| cmd = "echo %computername%"
|
| - server_name = server_session.get_command_output(cmd).strip()
|
| - client_name = session.get_command_output(cmd).strip()
|
| + server_name = server_session.cmd_output(cmd).strip()
|
| + client_name = session.cmd_output(cmd).strip()
|
| cmd = "wmic computersystem get domain"
|
| - server_workgroup = server_session.get_command_output(cmd).strip()
|
| + server_workgroup = server_session.cmd_output(cmd).strip()
|
| server_workgroup = server_workgroup.splitlines()[-1]
|
| regkey = r"HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
|
| cmd = "reg query %s /v Domain" % regkey
|
| - o = server_session.get_command_output(cmd).strip().splitlines()[-1]
|
| + o = server_session.cmd_output(cmd).strip().splitlines()[-1]
|
| try:
|
| server_dns_suffix = o.split(None, 2)[2]
|
| except IndexError:
|
| server_dns_suffix = ""
|
|
|
| # Delete the client machine from the server's data store (if it's there)
|
| - server_session.get_command_output("cd %s" % server_studio_path)
|
| + server_session.cmd("cd %s" % server_studio_path)
|
| cmd = "%s %s %s" % (os.path.basename(dsso_delete_machine_binary),
|
| server_name, client_name)
|
| - server_session.get_command_output(cmd, print_func=logging.info)
|
| + server_session.cmd(cmd, print_func=logging.info)
|
| server_session.close()
|
|
|
| # Rename the client machine
|
| client_name = "autotest_%s" % kvm_utils.generate_random_string(4)
|
| - logging.info("Renaming client machine to '%s'" % client_name)
|
| + logging.info("Renaming client machine to '%s'", client_name)
|
| cmd = ('wmic computersystem where name="%%computername%%" rename name="%s"'
|
| % client_name)
|
| - if session.get_command_status(cmd, timeout=600) != 0:
|
| - raise error.TestError("Could not rename the client machine")
|
| + session.cmd(cmd, timeout=600)
|
|
|
| # Join the server's workgroup
|
| - logging.info("Joining workgroup '%s'" % server_workgroup)
|
| + logging.info("Joining workgroup '%s'", server_workgroup)
|
| cmd = ('wmic computersystem where name="%%computername%%" call '
|
| 'joindomainorworkgroup name="%s"' % server_workgroup)
|
| - if session.get_command_status(cmd, timeout=600) != 0:
|
| - raise error.TestError("Could not change the client's workgroup")
|
| + session.cmd(cmd, timeout=600)
|
|
|
| # Set the client machine's DNS suffix
|
| - logging.info("Setting DNS suffix to '%s'" % server_dns_suffix)
|
| + logging.info("Setting DNS suffix to '%s'", server_dns_suffix)
|
| cmd = 'reg add %s /v Domain /d "%s" /f' % (regkey, server_dns_suffix)
|
| - if session.get_command_status(cmd, timeout=300) != 0:
|
| - raise error.TestError("Could not set the client's DNS suffix")
|
| + session.cmd(cmd, timeout=300)
|
|
|
| # Reboot
|
| - session = kvm_test_utils.reboot(vm, session)
|
| + session = vm.reboot(session)
|
|
|
| # Access shared resources on the server machine
|
| logging.info("Attempting to access remote share on server")
|
| @@ -103,9 +107,11 @@ def run_whql_client_install(test, params, env):
|
| server_password)
|
| end_time = time.time() + 120
|
| while time.time() < end_time:
|
| - s = session.get_command_status(cmd)
|
| - if s == 0:
|
| + try:
|
| + session.cmd(cmd)
|
| break
|
| + except:
|
| + pass
|
| time.sleep(5)
|
| else:
|
| raise error.TestError("Could not access server share from client "
|
| @@ -114,7 +120,17 @@ def run_whql_client_install(test, params, env):
|
| # Install
|
| logging.info("Installing DTM client (timeout=%ds)", install_timeout)
|
| install_cmd = r"cmd /c \\%s\%s" % (server_name, install_cmd.lstrip("\\"))
|
| - if session.get_command_status(install_cmd, timeout=install_timeout) != 0:
|
| - raise error.TestError("Client installation failed")
|
| -
|
| + session.cmd(install_cmd, timeout=install_timeout)
|
| +
|
| + # Setup auto logon
|
| + logging.info("Setting up auto logon for user '%s'", client_username)
|
| + cmd = ('reg add '
|
| + '"HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\winlogon" '
|
| + '/v "%s" /d "%s" /t REG_SZ /f')
|
| + session.cmd(cmd % ("AutoAdminLogon", "1"))
|
| + session.cmd(cmd % ("DefaultUserName", client_username))
|
| + session.cmd(cmd % ("DefaultPassword", client_password))
|
| +
|
| + # Reboot one more time
|
| + session = vm.reboot(session)
|
| session.close()
|
|
|