Fixes Run SSH script for passwords with special characters (as parentheses)
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/889a7f1d Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/889a7f1d Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/889a7f1d Branch: refs/heads/2.1.x Commit: 889a7f1d6f2248151245c0090d1a17f019b8f975 Parents: 6edb99c Author: Dani Estevez <cont...@danielestevez.com> Authored: Fri May 11 10:52:15 2018 -0400 Committer: Ignasi Barrera <n...@apache.org> Committed: Thu May 17 09:14:06 2018 +0200 ---------------------------------------------------------------------- .../org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java | 3 ++- .../jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/889a7f1d/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java ---------------------------------------------------------------------- diff --git a/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java b/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java index 2d72e3a..f1830c2 100644 --- a/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java +++ b/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java @@ -112,7 +112,8 @@ public class RunScriptOnNodeUsingSsh implements RunScriptOnNode { public String execAsRoot(String command) { if (node.getCredentials().identity.equals("root")) { } else if (node.getCredentials().shouldAuthenticateSudo()) { - command = String.format("sudo -S sh <<'%s'\n%s\n%s%s\n", MARKER, node.getCredentials().getOptionalPassword().get(), command, MARKER); + command = String.format("sudo -S sh <<'%s'\n'%s'\n%s%s\n", MARKER, node.getCredentials().getOptionalPassword + ().get(), command, MARKER); } else { command = String.format("sudo sh <<'%s'\n%s%s\n", MARKER, command, MARKER); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/889a7f1d/compute/src/test/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java ---------------------------------------------------------------------- diff --git a/compute/src/test/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java b/compute/src/test/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java index 701d277..e8201c9 100644 --- a/compute/src/test/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java +++ b/compute/src/test/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSshTest.java @@ -103,7 +103,7 @@ public class RunScriptOnNodeUsingSshTest { expect(sshClient.getUsername()).andReturn("tester"); expect(sshClient.getHostAddress()).andReturn("somewhere.example.com"); expect( - sshClient.exec("sudo -S sh <<'RUN_SCRIPT_AS_ROOT_SSH'\n" + "testpassword!\n" + "echo $USER\n" + sshClient.exec("sudo -S sh <<'RUN_SCRIPT_AS_ROOT_SSH'\n" + "'testpassword!'\n" + "echo $USER\n" + "echo $USER\n" + "RUN_SCRIPT_AS_ROOT_SSH\n")).andReturn(new ExecResponse("root\nroot\n", null, 0)); sshClient.disconnect(); replay(sshClient);