You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/07/29 13:53:38 UTC
[brooklyn-server] 05/06: tweak signatures so machines are preferred over entities, and short key name accepted
This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 401f26d347f2a24fd16e08c881ce7e5e7785cc35
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Fri Jul 29 11:12:52 2022 +0100
tweak signatures so machines are preferred over entities, and short key name accepted
to bring it in line with other ssh config
---
.../brooklyn/location/ssh/SshMachineLocation.java | 10 ++---
.../brooklyn/util/core/file/ArchiveUtils.java | 2 +-
.../util/core/file/BrooklynOsCommands.java | 51 +++++++++++++++++++---
.../brooklyn/util/core/task/ssh/SshTasks.java | 4 +-
.../brooklyn/location/jclouds/JcloudsLocation.java | 2 +-
.../policy/jclouds/os/CreateUserPolicy.java | 2 +-
...eJcloudsLocationUserLoginAndConfigLiveTest.java | 2 +-
.../entity/brooklynnode/BrooklynNodeSshDriver.java | 4 +-
.../entity/java/JavaSoftwareProcessSshDriver.java | 4 +-
.../brooklyn/entity/machine/MachineInitTasks.java | 2 +-
.../entity/machine/SetHostnameCustomizer.java | 2 +-
.../base/AbstractSoftwareProcessSshDriver.java | 2 +-
.../base/VanillaSoftwareProcessSshDriver.java | 2 +-
.../system_service/InitdServiceInstaller.java | 2 +-
.../entity/AbstractMultiDistroLiveTest.java | 2 +-
.../test/mysql/DynamicToyMySqlEntityBuilder.java | 6 +--
16 files changed, 68 insertions(+), 31 deletions(-)
diff --git a/core/src/main/java/org/apache/brooklyn/location/ssh/SshMachineLocation.java b/core/src/main/java/org/apache/brooklyn/location/ssh/SshMachineLocation.java
index 99f81a9994..9f7a8e3d1d 100644
--- a/core/src/main/java/org/apache/brooklyn/location/ssh/SshMachineLocation.java
+++ b/core/src/main/java/org/apache/brooklyn/location/ssh/SshMachineLocation.java
@@ -870,7 +870,7 @@ public class SshMachineLocation extends AbstractMachineLocation implements Machi
LOG.debug("installing {} to {} on {}, attempting remote curl", new Object[] { url, destPath, this });
try {
- BashCommandsConfigurable bash = BrooklynOsCommands.bash(getManagementContext());
+ BashCommandsConfigurable bash = BrooklynOsCommands.bash(this);
PipedInputStream insO = new PipedInputStream(); OutputStream outO = new PipedOutputStream(insO);
PipedInputStream insE = new PipedInputStream(); OutputStream outE = new PipedOutputStream(insE);
StreamGobbler sgsO = new StreamGobbler(insO, null, LOG); sgsO.setLogPrefix("[curl @ "+address+":stdout] ").start();
@@ -1063,10 +1063,10 @@ public class SshMachineLocation extends AbstractMachineLocation implements Machi
@Override
public String resolveOnBoxDirFor(Entity entity, String unresolvedPath) {
ProcessTaskWrapper<Integer> baseTask = SshEffectorTasks.ssh(
- BrooklynOsCommands.bash(entity).alternatives("mkdir -p \"${BASE_DIR}\"",
- BrooklynOsCommands.bash(entity).chain(
- BrooklynOsCommands.bash(entity).sudo("mkdir -p \"${BASE_DIR}\""),
- BrooklynOsCommands.bash(entity).sudo("chown "+getUser()+" \"${BASE_DIR}\""))),
+ BrooklynOsCommands.bash(this).alternatives("mkdir -p \"${BASE_DIR}\"",
+ BrooklynOsCommands.bash(this).chain(
+ BrooklynOsCommands.bash(this).sudo("mkdir -p \"${BASE_DIR}\""),
+ BrooklynOsCommands.bash(this).sudo("chown "+getUser()+" \"${BASE_DIR}\""))),
"cd ~",
"cd ${BASE_DIR}",
"echo BASE_DIR_RESULT':'`pwd`:BASE_DIR_RESULT")
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/file/ArchiveUtils.java b/core/src/main/java/org/apache/brooklyn/util/core/file/ArchiveUtils.java
index 2f16f0baed..1a5dc08a1f 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/file/ArchiveUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/file/ArchiveUtils.java
@@ -286,7 +286,7 @@ public class ArchiveUtils {
}
// extract, now using task if available
- MutableList<String> commands = MutableList.copyOf(installCommands(BrooklynOsCommands.bash(machine.getManagementContext()), destFile))
+ MutableList<String> commands = MutableList.copyOf(installCommands(BrooklynOsCommands.bash(machine), destFile))
.appendAll(extractCommands(destFile, tmpDir, destDir, false, keepArchiveAfterUnpacking));
if (DynamicTasks.getTaskQueuingContext()!=null) {
result = DynamicTasks.queue(SshTasks.newSshExecTaskFactory(machine, commands.toArray(new String[0])).summary("extracting archive").requiringExitCodeZero()).get();
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/file/BrooklynOsCommands.java b/core/src/main/java/org/apache/brooklyn/util/core/file/BrooklynOsCommands.java
index ca636becc8..2e9a27a141 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/file/BrooklynOsCommands.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/file/BrooklynOsCommands.java
@@ -19,18 +19,27 @@
package org.apache.brooklyn.util.core.file;
import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.location.Location;
+import org.apache.brooklyn.api.location.MachineLocation;
import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.api.objs.BrooklynObject;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.config.ConfigKeys;
import org.apache.brooklyn.core.entity.BrooklynConfigKeys;
-import org.apache.brooklyn.core.entity.EntityInternal;
import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
+import org.apache.brooklyn.core.objs.BrooklynObjectInternal;
+import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.ssh.BashCommandsConfigurable;
import org.apache.brooklyn.util.ssh.IptablesCommandsConfigurable;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
public class BrooklynOsCommands {
public static final ConfigKey<Boolean> SSH_CONFIG_SCRIPT_IGNORE_CERTS = BrooklynConfigKeys.SSH_CONFIG_SCRIPTS_IGNORE_CERTS;
+ public static final ConfigKey<Boolean> SCRIPT_IGNORE_CERTS = ConfigKeys.newConfigKeyWithPrefixRemoved(BrooklynConfigKeys.BROOKLYN_SSH_CONFIG_KEY_PREFIX, SSH_CONFIG_SCRIPT_IGNORE_CERTS);
public static BashCommandsConfigurable bash(ManagementContext mgmt) {
return BashCommandsConfigurable.newInstance().withIgnoreCerts( ((ManagementContextInternal)mgmt).getBrooklynProperties().getConfig(SSH_CONFIG_SCRIPT_IGNORE_CERTS) );
@@ -40,14 +49,42 @@ public class BrooklynOsCommands {
return new IptablesCommandsConfigurable(bash(mgmt));
}
- public static BashCommandsConfigurable bash(Entity entity) {
- Boolean ignoreCerts = entity.config().get(SSH_CONFIG_SCRIPT_IGNORE_CERTS);
- if (ignoreCerts!=null) return BashCommandsConfigurable.newInstance().withIgnoreCerts(ignoreCerts);
- return bash( ((EntityInternal)entity).getManagementContext() );
+ public static BashCommandsConfigurable bash(Entity entity, boolean includeMachineLocations) {
+ return bashForBrooklynObjects(includeMachineLocations, entity);
+ }
+
+ public static BashCommandsConfigurable bash(Location location) {
+ return bashForBrooklynObjects(false, location);
+ }
+
+ public static BashCommandsConfigurable bashForBrooklynObjects(boolean includeMachineLocations, BrooklynObject ...brooklynObjects) {
+ return bashForBrooklynObjects(includeMachineLocations, Arrays.asList(brooklynObjects));
+ }
+ public static BashCommandsConfigurable bashForBrooklynObjects(boolean includeMachineLocations, List<BrooklynObject> brooklynObjects0) {
+ ManagementContext mgmt = null;
+ List<BrooklynObject> brooklynObjects = MutableList.of();
+ for (BrooklynObject bo: brooklynObjects0) {
+ if (includeMachineLocations && bo instanceof Entity) brooklynObjects.addAll( ((Entity)bo).getLocations().stream().filter(l -> l instanceof MachineLocation).collect(Collectors.toList()) );
+
+ brooklynObjects.add(bo);
+ }
+
+ for (BrooklynObject bo: brooklynObjects) {
+ Boolean ignoreCerts = null;
+ // unprefixed key allowed for locations
+ if (bo instanceof Location) ignoreCerts = bo.config().get(SCRIPT_IGNORE_CERTS);
+
+ if (ignoreCerts==null) ignoreCerts = bo.config().get(SSH_CONFIG_SCRIPT_IGNORE_CERTS);
+ if (ignoreCerts!=null) return BashCommandsConfigurable.newInstance().withIgnoreCerts(ignoreCerts);
+
+ if (mgmt==null) mgmt = ((BrooklynObjectInternal)bo).getManagementContext();
+ }
+
+ return bash(mgmt);
}
- public static IptablesCommandsConfigurable bashIptables(Entity entity) {
- return new IptablesCommandsConfigurable(bash(entity));
+ public static IptablesCommandsConfigurable bashIptables(BrooklynObject entityOrOtherBrooklynObject) {
+ return new IptablesCommandsConfigurable(bashForBrooklynObjects(true, entityOrOtherBrooklynObject));
}
}
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/SshTasks.java b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/SshTasks.java
index 16066e9967..ae51d76cd7 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/SshTasks.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/SshTasks.java
@@ -184,8 +184,8 @@ public class SshTasks {
.commandModifier(x -> {
Entity entity = BrooklynTaskTags.getTargetOrContextEntity(Tasks.current());
BashCommandsConfigurable bash;
- if (entity!=null) bash = BrooklynOsCommands.bash(entity);
- else bash = BrooklynOsCommands.bash(machine.getManagementContext());
+ if (entity!=null) bash = BrooklynOsCommands.bash(machine);
+ else bash = BrooklynOsCommands.bash(machine);
return MutableList.of(
bash.dontRequireTtyForSudo(),
// strange quotes are to ensure we don't match against echoed stdin
diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
index 764b9021e1..a7b3d13bf3 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
@@ -404,7 +404,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
: (OsFamily.WINDOWS == confFamily);
}
- private BashCommandsConfigurable bashCommands() { return BrooklynOsCommands.bash(getManagementContext()); }
+ private BashCommandsConfigurable bashCommands() { return BrooklynOsCommands.bash(this); }
private IptablesCommandsConfigurable iptablesCommands() { return new IptablesCommandsConfigurable(bashCommands()); }
public boolean isLocationFirewalldEnabled(SshMachineLocation location) {
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 abf0c8d8a0..300b45c1e8 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
@@ -149,7 +149,7 @@ public class CreateUserPolicy extends AbstractPolicy implements SensorEventListe
String cmd = adminAccess.render(scriptOsFamily);
// Exec command to create the user
- BashCommandsConfigurable bash = BrooklynOsCommands.bash(entity);
+ BashCommandsConfigurable bash = BrooklynOsCommands.bash(machine);
int result = machine.execScript(ImmutableMap.of(SshTool.PROP_RUN_AS_ROOT.getName(), true), "create-user-"+user, ImmutableList.of(cmd), ImmutableMap.of("PATH", bash.sbinPath()));
if (result != 0) {
throw new IllegalStateException("Failed to auto-generate user, using command "+cmd);
diff --git a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/SimpleJcloudsLocationUserLoginAndConfigLiveTest.java b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/SimpleJcloudsLocationUserLoginAndConfigLiveTest.java
index 230bc78f4a..980fb0dd69 100644
--- a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/SimpleJcloudsLocationUserLoginAndConfigLiveTest.java
+++ b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/SimpleJcloudsLocationUserLoginAndConfigLiveTest.java
@@ -215,7 +215,7 @@ public class SimpleJcloudsLocationUserLoginAndConfigLiveTest extends AbstractJcl
"grantUserSudo", false,
"waitForSshable", 30*1000));
- int exitCode = execWithExitCode(m, ImmutableList.of(BrooklynOsCommands.bash(m.getManagementContext()).sudo("echo yes")));
+ int exitCode = execWithExitCode(m, ImmutableList.of(BrooklynOsCommands.bash(m).sudo("echo yes")));
Assert.assertFalse(exitCode == 0, "exit code for sudo command should not have been 0");
}
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java b/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java
index 67a0d8689e..15120b570d 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeSshDriver.java
@@ -154,9 +154,9 @@ public class BrooklynNodeSshDriver extends JavaSoftwareProcessSshDriver implemen
getMachine().copyTo(distroStream, getInstallDir()+"/"+saveAs);
}
} else {
- commands.addAll(BrooklynOsCommands.bash(getEntity()).commandsToDownloadUrlsAs(urls, saveAs));
+ commands.addAll(BrooklynOsCommands.bash(getMachine()).commandsToDownloadUrlsAs(urls, saveAs));
}
- commands.add(BrooklynOsCommands.bash(getEntity()).INSTALL_TAR);
+ commands.add(BrooklynOsCommands.bash(getMachine()).INSTALL_TAR);
commands.add("tar xzfv " + saveAs);
newScript(INSTALLING).
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java b/software/base/src/main/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
index 636d1d35e3..54a403ac7b 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java
@@ -292,7 +292,7 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce
return true;
}
}
- return tryJavaInstall(requiredVersion, BrooklynOsCommands.bash(getEntity()).installJava(requiredJavaMinor)) == 0;
+ return tryJavaInstall(requiredVersion, BrooklynOsCommands.bash(getMachine()).installJava(requiredJavaMinor)) == 0;
}
/**
@@ -417,7 +417,7 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce
// http://mail.openjdk.java.net/pipermail/net-dev/2012-July/004603.html
String newHostname = "br-"+getEntity().getId().toLowerCase();
log.info("Detected likelihood of Java hostname bug with hostname length "+len+" for "+getEntity()+"; renaming "+getMachine()+" to hostname "+newHostname);
- DynamicTasks.queue(SshEffectorTasks.ssh(BrooklynOsCommands.bash(getEntity()).setHostname(newHostname, null))).block();
+ DynamicTasks.queue(SshEffectorTasks.ssh(BrooklynOsCommands.bash(getMachine()).setHostname(newHostname, null))).block();
}
} else {
log.debug("Hostname length could not be determined for location "+EffectorTasks.findSshMachine()+"; not doing Java hostname bug check");
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/machine/MachineInitTasks.java b/software/base/src/main/java/org/apache/brooklyn/entity/machine/MachineInitTasks.java
index c1bbe1e63a..59be0e1642 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/machine/MachineInitTasks.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/machine/MachineInitTasks.java
@@ -70,7 +70,7 @@ public class MachineInitTasks {
});
}
- private IptablesCommandsConfigurable iptablesCommands(SshMachineLocation m) { return new IptablesCommandsConfigurable(BrooklynOsCommands.bash(m.getManagementContext())); }
+ private IptablesCommandsConfigurable iptablesCommands(SshMachineLocation m) { return BrooklynOsCommands.bashIptables(m); }
protected void stopIptablesImpl(final SshMachineLocation machine) {
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/machine/SetHostnameCustomizer.java b/software/base/src/main/java/org/apache/brooklyn/entity/machine/SetHostnameCustomizer.java
index 128ad9b66c..5c91698c5e 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/machine/SetHostnameCustomizer.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/machine/SetHostnameCustomizer.java
@@ -174,7 +174,7 @@ public class SetHostnameCustomizer extends BasicMachineLocationCustomizer {
boolean hasDomain = Strings.isNonBlank(domainFixed);
String fqdn = hasDomain ? hostName+"."+domainFixed : hostName;
- BashCommandsConfigurable bash = BrooklynOsCommands.bash(machine.getManagementContext());
+ BashCommandsConfigurable bash = BrooklynOsCommands.bash(machine);
exec(machine, true,
bash.sudo(String.format("sed -i.bak -e '1i127.0.0.1 %s %s' -e '/^127.0.0.1/d' /etc/hosts", fqdn, hostName)),
bash.sudo(String.format("sed -i.bak -e 's/^HOSTNAME=.*$/HOSTNAME=%s/' /etc/sysconfig/network", fqdn)),
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessSshDriver.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessSshDriver.java
index 697fa6bdf0..20c3dbc282 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessSshDriver.java
@@ -362,7 +362,7 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP
return result;
}
- protected BashCommandsConfigurable bashCommands() { return BrooklynOsCommands.bash(getEntity()); }
+ protected BashCommandsConfigurable bashCommands() { return BrooklynOsCommands.bash(getMachine()); }
public void checkNoHostnameBug() {
try {
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessSshDriver.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessSshDriver.java
index 2cc3575075..4779a449d7 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessSshDriver.java
@@ -91,7 +91,7 @@ public class VanillaSoftwareProcessSshDriver extends AbstractSoftwareProcessSshD
downloadedFilename = resolver.getFilename();
List<String> commands = new LinkedList<String>();
- BashCommandsConfigurable bash = BrooklynOsCommands.bash(getEntity());
+ BashCommandsConfigurable bash = BrooklynOsCommands.bash(getMachine());
commands.addAll(bash.commandsToDownloadUrlsAs(urls, downloadedFilename));
commands.addAll(ArchiveUtils.installCommands(bash, downloadedFilename));
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/system_service/InitdServiceInstaller.java b/software/base/src/main/java/org/apache/brooklyn/entity/system_service/InitdServiceInstaller.java
index 6c47b9b20b..6713dfb0ed 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/system_service/InitdServiceInstaller.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/system_service/InitdServiceInstaller.java
@@ -80,7 +80,7 @@ public class InitdServiceInstaller implements SystemServiceInstaller {
SshPutTaskWrapper putServiceTask = SshTasks.newSshPutTaskFactory(sshMachine, tmpServicePath)
.contents(service)
.newTask();
- BashCommandsConfigurable bash = BrooklynOsCommands.bash(sshMachine.getManagementContext());
+ BashCommandsConfigurable bash = BrooklynOsCommands.bash(sshMachine);
ProcessTaskWrapper<Integer> installServiceTask = SshTasks.newSshExecTaskFactory(sshMachine,
bash.chain(
bash.sudo("mv " + tmpServicePath + " " + servicePath),
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractMultiDistroLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractMultiDistroLiveTest.java
index 66f2485ec1..e8d54bc6c1 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractMultiDistroLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractMultiDistroLiveTest.java
@@ -144,7 +144,7 @@ public abstract class AbstractMultiDistroLiveTest extends BrooklynAppLiveTestSup
Asserts.succeedsEventually(ImmutableMap.of("timeout", Duration.FIVE_MINUTES), new Runnable() {
@Override
public void run() {
- assertExecSsh(server, ImmutableList.of(BrooklynOsCommands.bash(server).installPackage("curl"), "netstat -antp", "curl -k --retry 3 "+url));
+ assertExecSsh(server, ImmutableList.of(BrooklynOsCommands.bash(server, true).installPackage("curl"), "netstat -antp", "curl -k --retry 3 "+url));
}});
}
}
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/mysql/DynamicToyMySqlEntityBuilder.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/mysql/DynamicToyMySqlEntityBuilder.java
index 98ce92a8a9..940152ce07 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/mysql/DynamicToyMySqlEntityBuilder.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/mysql/DynamicToyMySqlEntityBuilder.java
@@ -108,10 +108,10 @@ public class DynamicToyMySqlEntityBuilder {
SshEffectorTasks.ssh(
"mkdir "+dir(entity),
"cd "+dir(entity),
- BrooklynOsCommands.bash(entity).downloadToStdout(downloadUrl(entity, isLocalhost(machineS)))+" | tar xvz"
+ BrooklynOsCommands.bash(machineS.get()).downloadToStdout(downloadUrl(entity, isLocalhost(machineS)))+" | tar xvz"
).summary("download mysql").returning(SshTasks.returningStdoutLoggingInfo(log, true)));
if (isLinux(machineS)) {
- DynamicTasks.queue(SshEffectorTasks.ssh(BrooklynOsCommands.bash(entity).installPackage("libaio1")));
+ DynamicTasks.queue(SshEffectorTasks.ssh(BrooklynOsCommands.bash(machineS.get()).installPackage("libaio1")));
}
DynamicTasks.queue(
SshEffectorTasks.put(".my.cnf")
@@ -127,7 +127,7 @@ public class DynamicToyMySqlEntityBuilder {
protected void postStartCustom(ConfigBag parameters) {
// if it's still up after 5s assume we are good
Time.sleep(Duration.FIVE_SECONDS);
- if (!DynamicTasks.queue(SshEffectorTasks.isPidFromFileRunning(BrooklynOsCommands.bash(entity()), dir(entity)+"/*/data/*.pid")).get()) {
+ if (!DynamicTasks.queue(SshEffectorTasks.isPidFromFileRunning(BrooklynOsCommands.bash(entity(), true), dir(entity)+"/*/data/*.pid")).get()) {
// but if it's not up add a bunch of other info
log.warn("MySQL did not start: "+dir(entity));
ProcessTaskWrapper<Integer> info = DynamicTasks.queue(SshEffectorTasks.ssh(