Michael Goldish wrote:
> On 04/26/2010 01:04 PM, Jason Wang wrote:
>   
>> This patch introduces a new method which is used to log into the guest
>> through the guest serial console. The serial_mode must be set to
>> "session" in order to make use of this patch.
>>     
>
> In what cases would we want to use this feature?  The serial console is
> not supported by all guests and I'm not sure it supports multiple
> concurrent sessions (does it?), so it's probably not possible to use it
> reliably as a replacement for the regular remote shell servers, or even
> as an alternative variant.
>
>   
We plan to push some network related tests in the next few weeks, so 
it's important to use a serial based console rather than network based 
one ( our test s may load/unload the nic driver, do the stress testing 
which may cause the session created by remote_login() not responsible)
>> Signed-off-by: Jason Wang <[email protected]>
>> ---
>>  client/tests/kvm/kvm_vm.py |   25 +++++++++++++++++++++++++
>>  1 files changed, 25 insertions(+), 0 deletions(-)
>>
>> diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py
>> index 0cdf925..a22893b 100755
>> --- a/client/tests/kvm/kvm_vm.py
>> +++ b/client/tests/kvm/kvm_vm.py
>> @@ -814,7 +814,32 @@ class VM:
>>                                                              "command", ""))
>>          return session
>>  
>> +    def local_login(self, timeout=240):
>> +        """
>> +        Log into the guest via serial console
>> +        If timeout expires while waiting for output from the guest (e.g. a
>> +        password prompt or a shell prompt) -- fail.
>> +        """
>> +
>> +        serial_mode = self.params.get("serial_mode")
>> +        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"))
>>  
>> +        if serial_mode != "session":
>> +            logging.debug("serial_mode is not session")
>> +            return None
>> +        else:
>> +            command = "nc -U %s"  % self.serial_file_name
>> +            assist = self.params.get("prompt_assist")
>> +            session = kvm_utils.remote_login(command, password, prompt, 
>> linesep,
>> +                                             timeout, "", username)
>>     
>                                                          ^
> You probably meant to pass the prompt assist string to remote_login()
> but instead you're passing "".
>
>   
As I said, I just send a empty line in order to get the the prompt 
string, but this may be removed if I logout the console during when 
close the session.
>> +            if session:
>> +                
>> session.set_status_test_command(self.params.get("status_test_"
>> +                                                                "command", 
>> ""))
>> +            return session
>> +            
>>      def copy_files_to(self, local_path, remote_path, nic_index=0, 
>> timeout=300):
>>          """
>>          Transfer files to the guest.
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to [email protected]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>     
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to