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
