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);

Reply via email to