def serial_login(self, timeout=LOGIN_TIMEOUT): """ Log into the guest via the serial console. If timeout expires while waiting for output from the guest (e.g. a password prompt or a shell prompt) -- fail. @param timeout: Time (seconds) before giving up logging into the guest. @return: ShellSession object on success and None on failure. """ error.context("logging into '%s' via serial console" % self.name) username = self.params.get("username", "") password = self.params.get("password", "") prompt = self.params.get("shell_prompt", "[\#\$]") linesep = eval("'%s'" % self.params.get("shell_linesep", r"\n")) status_test_command = self.params.get("status_test_command", "") self.serial_console.set_linesep(linesep) self.serial_console.set_status_test_command(status_test_command) # Try to get a login prompt self.serial_console.sendline() virt_utils._remote_login(self.serial_console, username, password, prompt, timeout) return self.serial_console
def login(self, timeout=LOGIN_TIMEOUT): """ Log into the hypervisor using required URIs . @timeout: Time in seconds that we will wait before giving up on logging into the host. @return: A ShellSession object. """ if self.driver is None: uri = utils.system_output('%s uri' % self.virsh_exec) else: uri = "%s+ssh://%s@%s/system" % (self.driver, self.username, self.host) command = "%s --connect %s" % (self.virsh_exec, uri) session = aexpect.ShellSession(command, linesep=self.linesep, prompt=self.prompt) if self.username is not None: try: virt_utils._remote_login(session, self.username, self.password, self.prompt, timeout) except aexpect.ShellError: session.close() session = None return session