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.
