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.
>
>
>
> 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