Repository: jclouds Updated Branches: refs/heads/master 449c6d8d8 -> 7dc73ee0b
Do not try to connect to ssh if already connected Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7dc73ee0 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7dc73ee0 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7dc73ee0 Branch: refs/heads/master Commit: 7dc73ee0bf1044fe1e6c9a01ff02a39d6dddbad7 Parents: 449c6d8 Author: Ignasi Barrera <[email protected]> Authored: Fri Aug 12 00:38:51 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Fri Aug 12 00:39:28 2016 +0200 ---------------------------------------------------------------------- .../org/jclouds/compute/callables/SudoAwareInitManager.java | 4 +++- compute/src/main/java/org/jclouds/ssh/SshClient.java | 2 ++ .../src/main/java/org/jclouds/ssh/jsch/JschSshClient.java | 6 ++++++ .../java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java | 4 ++++ .../sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java | 9 +++++++++ .../test/java/org/jclouds/sshj/SshjSshClientLiveTest.java | 4 ++++ 6 files changed, 28 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java b/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java index cef8056..472a214 100644 --- a/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java +++ b/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java @@ -71,7 +71,9 @@ public class SudoAwareInitManager { public ExecResponse refreshAndRunAction(String action) { checkState(ssh != null, "please call init() before invoking call"); try { - ssh.connect(); + if (!ssh.isConnected()) { + ssh.connect(); + } return runAction(action); } finally { if (ssh != null) http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/compute/src/main/java/org/jclouds/ssh/SshClient.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/ssh/SshClient.java b/compute/src/main/java/org/jclouds/ssh/SshClient.java index f152aff..89a9af2 100644 --- a/compute/src/main/java/org/jclouds/ssh/SshClient.java +++ b/compute/src/main/java/org/jclouds/ssh/SshClient.java @@ -61,6 +61,8 @@ public interface SshClient { void disconnect(); + boolean isConnected(); + void put(String path, String contents); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java ---------------------------------------------------------------------- diff --git a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java index d041060..6983f29 100644 --- a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java +++ b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java @@ -339,11 +339,17 @@ public class JschSshClient implements SshClient { return toString; } + @Override @PreDestroy public void disconnect() { sessionConnection.clear(); } + @Override + public boolean isConnected() { + return sessionConnection.getSession().isConnected(); + } + protected ConnectionWithStreams<ChannelExec> execConnection(final String command) { checkNotNull(command, "command"); return new ConnectionWithStreams<ChannelExec>() { http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/drivers/jsch/src/test/java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java ---------------------------------------------------------------------- diff --git a/drivers/jsch/src/test/java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java b/drivers/jsch/src/test/java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java index 4045b52..ede5b47 100644 --- a/drivers/jsch/src/test/java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java +++ b/drivers/jsch/src/test/java/org/jclouds/ssh/jsch/JschSshClientLiveTest.java @@ -86,6 +86,10 @@ public class JschSshClientLiveTest { public void disconnect() { } + public boolean isConnected() { + return false; + } + public Payload get(String path) { if (path.equals("/etc/passwd")) { return Payloads.newStringPayload("root"); http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java ---------------------------------------------------------------------- diff --git a/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java b/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java index 25dbbb8..4611382 100644 --- a/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java +++ b/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java @@ -410,6 +410,15 @@ public class SshjSshClient implements SshClient { } } + @Override + public boolean isConnected() { + try { + return sshClientConnection.getSSHClient().isConnected(); + } catch (Exception e) { + throw Throwables.propagate(e); + } + } + protected Connection<Session> execConnection() { return new Connection<Session>() { http://git-wip-us.apache.org/repos/asf/jclouds/blob/7dc73ee0/drivers/sshj/src/test/java/org/jclouds/sshj/SshjSshClientLiveTest.java ---------------------------------------------------------------------- diff --git a/drivers/sshj/src/test/java/org/jclouds/sshj/SshjSshClientLiveTest.java b/drivers/sshj/src/test/java/org/jclouds/sshj/SshjSshClientLiveTest.java index eabe3f0..ba8e217 100644 --- a/drivers/sshj/src/test/java/org/jclouds/sshj/SshjSshClientLiveTest.java +++ b/drivers/sshj/src/test/java/org/jclouds/sshj/SshjSshClientLiveTest.java @@ -75,6 +75,10 @@ public class SshjSshClientLiveTest { public void disconnect() { } + public boolean isConnected() { + return false; + } + public Payload get(String path) { if (path.equals("/etc/passwd")) { return Payloads.newStringPayload("root");
