Improving sbin path handling

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f8b7900b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f8b7900b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f8b7900b

Branch: refs/heads/master
Commit: f8b7900b7cb838f7d61e402a1d9ccdfb83bf8b1c
Parents: 473e9ed
Author: Yavor Yanchev <[email protected]>
Authored: Tue Oct 20 18:31:40 2015 +0300
Committer: Yavor Yanchev <[email protected]>
Committed: Tue Oct 20 18:31:40 2015 +0300

----------------------------------------------------------------------
 .../brooklyn/policy/jclouds/os/CreateUserPolicy.java  | 14 ++++----------
 .../brooklyn/entity/nosql/riak/RiakNodeSshDriver.java |  6 +++---
 .../org/apache/brooklyn/util/ssh/BashCommands.java    |  6 +++++-
 3 files changed, 12 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8b7900b/locations/jclouds/src/main/java/org/apache/brooklyn/policy/jclouds/os/CreateUserPolicy.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/main/java/org/apache/brooklyn/policy/jclouds/os/CreateUserPolicy.java
 
b/locations/jclouds/src/main/java/org/apache/brooklyn/policy/jclouds/os/CreateUserPolicy.java
index 1894dd0..cebdcba 100644
--- 
a/locations/jclouds/src/main/java/org/apache/brooklyn/policy/jclouds/os/CreateUserPolicy.java
+++ 
b/locations/jclouds/src/main/java/org/apache/brooklyn/policy/jclouds/os/CreateUserPolicy.java
@@ -19,7 +19,6 @@
 package org.apache.brooklyn.policy.jclouds.os;
 
 import java.util.List;
-import java.util.Map;
 
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.EntityLocal;
@@ -36,6 +35,7 @@ import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.location.ssh.SshMachineLocation;
 import org.apache.brooklyn.util.core.flags.SetFromFlag;
 import org.apache.brooklyn.util.core.internal.ssh.SshTool;
+import static org.apache.brooklyn.util.ssh.BashCommands.sbinPath;
 import org.apache.brooklyn.util.text.Identifiers;
 import org.jclouds.compute.config.AdminAccessConfiguration;
 import org.jclouds.scriptbuilder.functions.InitAdminAccess;
@@ -151,14 +151,14 @@ public class CreateUserPolicy extends AbstractPolicy 
implements SensorEventListe
         String cmd = adminAccess.render(scriptOsFamily);
 
         // Exec command to create the user
-        int result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"create-user-"+user, ImmutableList.of(cmd), getEnv());
+        int result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"create-user-"+user, ImmutableList.of(cmd), ImmutableMap.of("PATH", 
sbinPath()));
         if (result != 0) {
             throw new IllegalStateException("Failed to auto-generate user, 
using command "+cmd);
         }
 
         // Exec command to grant password-access to sshd (which may have been 
disabled earlier).
         cmd = new SshdConfig(ImmutableMap.of("PasswordAuthentication", 
"yes")).render(scriptOsFamily);
-        result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"create-user-"+user, ImmutableList.of(cmd), getEnv());
+        result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"create-user-"+user, ImmutableList.of(cmd), ImmutableMap.of("PATH", 
sbinPath()));
         if (result != 0) {
             throw new IllegalStateException("Failed to enable 
ssh-login-with-password, using command "+cmd);
         }
@@ -170,7 +170,7 @@ public class CreateUserPolicy extends AbstractPolicy 
implements SensorEventListe
                             user+" ALL = (ALL) NOPASSWD:ALL\n"+
                             "END_OF_JCLOUDS_FILE\n",
                     "chmod 0440 /etc/sudoers");
-            result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"add-user-to-sudoers-"+user, cmds, getEnv());
+            result = 
machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), 
"add-user-to-sudoers-"+user, cmds, ImmutableMap.of("PATH", sbinPath()));
             if (result != 0) {
                 throw new IllegalStateException("Failed to auto-generate user, 
using command "+cmds);
             }
@@ -178,10 +178,4 @@ public class CreateUserPolicy extends AbstractPolicy 
implements SensorEventListe
         
         ((EntityLocal)entity).sensors().set(VM_USER_CREDENTIALS, creds);
     }
-
-    private Map<String, String> getEnv() {
-        final String SBIN_PATH = 
"$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
-
-        return ImmutableMap.<String, String>of("PATH", SBIN_PATH);
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8b7900b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
----------------------------------------------------------------------
diff --git 
a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
 
b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
index 9ec9fb8..65879a7 100644
--- 
a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
+++ 
b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
@@ -22,6 +22,7 @@ import static java.lang.String.format;
 import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_CURL;
 import static org.apache.brooklyn.util.ssh.BashCommands.INSTALL_TAR;
 import static org.apache.brooklyn.util.ssh.BashCommands.addSbinPathCommand;
+import static org.apache.brooklyn.util.ssh.BashCommands.sbinPath;
 import static org.apache.brooklyn.util.ssh.BashCommands.alternatives;
 import static org.apache.brooklyn.util.ssh.BashCommands.chainGroup;
 import static org.apache.brooklyn.util.ssh.BashCommands.commandToDownloadUrlAs;
@@ -63,7 +64,6 @@ import com.google.common.collect.Lists;
 public class RiakNodeSshDriver extends JavaSoftwareProcessSshDriver implements 
RiakNodeDriver {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(RiakNodeSshDriver.class);
-    private static final String sbinPath = 
"$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
     private static final String INSTALLING_FALLBACK = INSTALLING + "_fallback";
 
     public RiakNodeSshDriver(final RiakNodeImpl entity, final 
SshMachineLocation machine) {
@@ -170,7 +170,7 @@ public class RiakNodeSshDriver extends 
JavaSoftwareProcessSshDriver implements R
         }
         String apt = chainGroup(
                 //debian fix
-                "export PATH=" + sbinPath,
+                addSbinPathCommand(),
                 "which apt-get",
                 ok(sudo("apt-get -y --allow-unauthenticated install logrotate 
libpam0g-dev libssl0.9.8")),
                 "export OS_NAME=" + Strings.toLowerCase(osDetails.getName()),
@@ -602,7 +602,7 @@ public class RiakNodeSshDriver extends 
JavaSoftwareProcessSshDriver implements R
     }
 
     private void addRiakOnPath(ScriptHelper scriptHelper) {
-        Map<String, String> newPathVariable = ImmutableMap.of("PATH", 
sbinPath);
+        Map<String, String> newPathVariable = ImmutableMap.of("PATH", 
sbinPath());
 //        log.warn("riak command not found on PATH. Altering future commands' 
environment variables from {} to {}", getShellEnvironment(), newPathVariable);
         scriptHelper.environmentVariablesReset(newPathVariable);
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f8b7900b/utils/common/src/main/java/org/apache/brooklyn/util/ssh/BashCommands.java
----------------------------------------------------------------------
diff --git 
a/utils/common/src/main/java/org/apache/brooklyn/util/ssh/BashCommands.java 
b/utils/common/src/main/java/org/apache/brooklyn/util/ssh/BashCommands.java
index dc75c3a..fcf45d8 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/ssh/BashCommands.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/ssh/BashCommands.java
@@ -138,7 +138,11 @@ public class BashCommands {
 //    }
 
     public static String addSbinPathCommand() {
-        return "export 
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
+        return "export PATH=" + sbinPath();
+    }
+
+    public static String sbinPath() {
+        return 
"$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
     }
 
     /** executes a command, then as user tees the output to the given file. 

Reply via email to