On Mon, 2010-11-22 at 18:31 -0200, Lucas Meneghel Rodrigues wrote:
> On Mon, 2010-11-22 at 11:59 -0800, Eric Li(李咏竹) wrote:
> > Hi Lucas,
> > 
> > 
> > Thanks for help us on this issue.
> > 
> > 
> > We found the previous patch only fixed a part of our problem. We just
> > found there are occurrences inside server test control files which
> > called hosts.create_host(hostname) without properly passed in ssh
> > options. And I do not want to touch the test control files at all.
> > 
> > 
> > So here is a solution, my previous changes to SSHHost is reverted in
> > this patch, since it is not necessary any more.
> > I tested this change with both client and server side sleeptest
> > against a remote VM ( on port other than 22).
> 
> I'll have to spend a bit more time looking at this change, pylint
> captured some problems with it that may or may not proceed, let's see.

Ok, things work good, I've tested it on a RHEL6 VM as well.

Applied:

http://autotest.kernel.org/changeset/4944

Thanks!

> > 
> > 
> > 
> > Index: server/hosts/factory.py
> > diff --git a/server/hosts/factory.py b/server/hosts/factory.py
> > index 
> > 8e5ba66350c4d948d1927e66a41d68e4d4e3822b..f1a054f590823f1831e7336e1413ea0b92e2380d
> >  100644
> > --- a/server/hosts/factory.py
> > +++ b/server/hosts/factory.py
> > @@ -68,6 +68,10 @@ def create_host(
> >      site_factory.postprocess_classes(classes, hostname,
> >                                       auto_monitor=auto_monitor, **args)
> >  
> > +    args['user'] = ssh_user
> > +    args['port'] = ssh_port
> > +    args['password'] = ssh_pass
> > +
> >      # create a custom host class for this machine and return an instance 
> > of it
> >      host_class = type("%s_host" % hostname, tuple(classes), {})
> >      host_instance = host_class(hostname, **args)
> > Index: server/hosts/ssh_host.py
> > diff --git a/server/hosts/ssh_host.py b/server/hosts/ssh_host.py
> > index 
> > fdf6a8c9014b49c58f41cc7b3eb18bdd01042d2a..2f5a08093e75c31f72984c1f83999d9a2d816288
> >  100644
> > --- a/server/hosts/ssh_host.py
> > +++ b/server/hosts/ssh_host.py
> > @@ -38,17 +38,14 @@ class SSHHost(abstract_ssh.AbstractSSHHost):
> >      implement the unimplemented methods in parent classes.
> >      """
> >  
> > -    def _initialize(self, hostname, user="root", port=22, password="",
> > -                    *args, **dargs):
> > +    def _initialize(self, hostname, *args, **dargs):
> >          """
> >          Construct a SSHHost object
> >  
> >          Args:
> >                  hostname: network hostname or address of remote machine
> >          """
> > -        super(SSHHost, self)._initialize(hostname=hostname, user=user,
> > -                                         port=port, password=password,
> > -                                         *args, **dargs)
> > +        super(SSHHost, self)._initialize(hostname=hostname, *args, **dargs)
> >          self.setup_ssh()
> >  
> > 
> > Index: server/server_job.py
> > diff --git a/server/server_job.py b/server/server_job.py
> > index 
> > 6ef59debc57b8b2d9d2abc662c54711cc5b9fa38..efc88d619816cb2f8e62ab0c4def92842e682771
> >  100644
> > --- a/server/server_job.py
> > +++ b/server/server_job.py
> > @@ -985,6 +985,9 @@ class base_server_job(base_job.base_job):
> >          namespace['autotest'].Autotest.job = self
> >          # server.hosts.base_classes.Host uses .job.
> >          namespace['hosts'].Host.job = self
> > +        namespace['hosts'].factory.ssh_user = self._ssh_user
> > +        namespace['hosts'].factory.ssh_port = self._ssh_port
> > +        namespace['hosts'].factory.ssh_pass = self._ssh_pass
> >  
> > 
> >      def _execute_code(self, code_file, namespace, protect=True):
> > 
> > 
> > 
> > 
> > 
> > 
> > On Thu, Nov 18, 2010 at 10:33 AM, Eric Li(李咏竹) <[email protected]>
> > wrote:
> >         When we started using autotest to run test against a VM based
> >         chromium os, we found autotest was not able to handle ssh port
> >         other than 22, autoserv --ssh-port did not work as it suppose
> >         to.
> >         
> >         
> >         It turned our the ssh options were not properly passed into
> >         SSHHost class.
> >         
> >         
> >         Index: server/hosts/ssh_host.py
> >         diff --git a/server/hosts/ssh_host.py b/server/hosts/ssh_host.py
> >         index 
> > 2f5a08093e75c31f72984c1f83999d9a2d816288..fdf6a8c9014b49c58f41cc7b3eb18bdd01042d2a
> >  100644
> >         --- a/server/hosts/ssh_host.py
> >         +++ b/server/hosts/ssh_host.py
> >         @@ -38,14 +38,17 @@ class SSHHost(abstract_ssh.AbstractSSHHost):
> >              implement the unimplemented methods in parent classes.
> >              """
> >          
> >         -    def _initialize(self, hostname, *args, **dargs):
> >         +    def _initialize(self, hostname, user="root", port=22, 
> > password="",
> >         +                    *args, **dargs):
> >                  """
> >                  Construct a SSHHost object
> >          
> >                  Args:
> >                          hostname: network hostname or address of remote 
> > machine
> >                  """
> >         -        super(SSHHost, self)._initialize(hostname=hostname, *args, 
> > **dargs)
> >         +        super(SSHHost, self)._initialize(hostname=hostname, 
> > user=user,
> >         +                                         port=port, 
> > password=password,
> >         +                                         *args, **dargs)
> >                  self.setup_ssh()
> >         
> >         
> >         -- 
> >         Eric Li
> >         李咏竹
> >         Google Kirkland
> >         
> >         
> >         
> > 
> > 
> > 
> > -- 
> > Eric Li
> > 李咏竹
> > Google Kirkland
> > 
> > 
> > 
> 
> 
> _______________________________________________
> Autotest mailing list
> [email protected]
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest


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

Reply via email to