From fbe4acb3ba695a5b370c639560c1251e1c1b1cd4 Mon Sep 17 00:00:00 2001 From: Gary Wu Date: Wed, 24 Jun 2015 10:19:40 -0700 Subject: [PATCH] remote_host.py: re-use ssh session across commands Refactored remote_host.py to re-use a single ssh connection to each cluster node for multiple shell commands, instead of creating a separate ssh connection for each command to be executed. This reduces the delays experienced in the ssh connection startup. Change-Id: I74395ed3f2a90f6fc3fef1a509f48f9bcba7aff4 Signed-off-by: Gary Wu --- .../clustering/cluster-deployer/remote_host.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/test/tools/clustering/cluster-deployer/remote_host.py b/test/tools/clustering/cluster-deployer/remote_host.py index bae137b82a..04f334ae29 100644 --- a/test/tools/clustering/cluster-deployer/remote_host.py +++ b/test/tools/clustering/cluster-deployer/remote_host.py @@ -15,14 +15,16 @@ class RemoteHost: self.user = user self.password = password self.rootdir = rootdir + self.lib = SSHLibrary() + self.lib.open_connection(self.host) + self.lib.login(username=self.user, password=self.password) + + def __del__(self): + self.lib.close_connection() def exec_cmd(self, command): print "Executing command " + command + " on host " + self.host - lib = SSHLibrary() - lib.open_connection(self.host) - lib.login(username=self.user, password=self.password) - rc = lib.execute_command(command, return_rc=True) - lib.close_connection() + rc = self.lib.execute_command(command, return_rc=True) if rc[1] != 0: raise Exception('remote command failed [{0}] with exit code {1}' .format(command, rc)) @@ -39,12 +41,8 @@ class RemoteHost: print "Src file " + src + " was not found" return - lib = SSHLibrary() - lib.open_connection(self.host) - lib.login(username=self.user, password=self.password) print "Copying " + src + " to " + dest + " on " + self.host - lib.put_file(src, dest) - lib.close_connection() + self.lib.put_file(src, dest) def kill_controller(self): self.exec_cmd("sudo ps axf | grep karaf | grep -v grep " -- 2.36.6