Repository: brooklyn-server Updated Branches: refs/heads/master 9f7a7787a -> 2276de020
Call Strings.trimEnd() on SSH sensor command output Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/33b0b1c8 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/33b0b1c8 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/33b0b1c8 Branch: refs/heads/master Commit: 33b0b1c879a9ed07bcdc3138893cd8017e211cfa Parents: 917e101 Author: Andrew Donald Kennedy <andrew.kenn...@cloudsoftcorp.com> Authored: Fri Feb 26 18:44:58 2016 +0000 Committer: Andrew Donald Kennedy <andrew.kenn...@cloudsoftcorp.com> Committed: Mon May 16 15:46:15 2016 +0100 ---------------------------------------------------------------------- .../core/sensor/ssh/SshCommandSensor.java | 21 +++++++++-------- .../org/apache/brooklyn/feed/ssh/SshFeed.java | 24 ++++++++------------ 2 files changed, 20 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33b0b1c8/core/src/main/java/org/apache/brooklyn/core/sensor/ssh/SshCommandSensor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/sensor/ssh/SshCommandSensor.java b/core/src/main/java/org/apache/brooklyn/core/sensor/ssh/SshCommandSensor.java index 0218a99..839448e 100644 --- a/core/src/main/java/org/apache/brooklyn/core/sensor/ssh/SshCommandSensor.java +++ b/core/src/main/java/org/apache/brooklyn/core/sensor/ssh/SshCommandSensor.java @@ -20,6 +20,15 @@ package org.apache.brooklyn.core.sensor.ssh; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.annotations.Beta; +import com.google.common.base.Function; +import com.google.common.base.Functions; +import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; + import org.apache.brooklyn.api.entity.EntityInitializer; import org.apache.brooklyn.api.entity.EntityLocal; import org.apache.brooklyn.config.ConfigKey; @@ -35,14 +44,6 @@ import org.apache.brooklyn.util.core.config.ConfigBag; import org.apache.brooklyn.util.core.flags.TypeCoercions; import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.text.Strings; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Functions; -import com.google.common.base.Preconditions; -import com.google.common.base.Supplier; /** * Configurable {@link EntityInitializer} which adds an SSH sensor feed running the <code>command</code> supplied @@ -69,7 +70,7 @@ public final class SshCommandSensor<T> extends AddSensor<T> { // TODO create a supplier for the command string to support attribute embedding command = Preconditions.checkNotNull(params.get(SENSOR_COMMAND), "command"); - + executionDir = params.get(SENSOR_EXECUTION_DIR); } @@ -104,7 +105,7 @@ public final class SshCommandSensor<T> extends AddSensor<T> { .onSuccess(Functions.compose(new Function<String, T>() { @Override public T apply(String input) { - return TypeCoercions.coerce(input, getType(type)); + return TypeCoercions.coerce(Strings.trimEnd(input), getType(type)); }}, SshValueFunctions.stdout())); SshFeed.builder() http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33b0b1c8/core/src/main/java/org/apache/brooklyn/feed/ssh/SshFeed.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/feed/ssh/SshFeed.java b/core/src/main/java/org/apache/brooklyn/feed/ssh/SshFeed.java index 6a13528..f887e96 100644 --- a/core/src/main/java/org/apache/brooklyn/feed/ssh/SshFeed.java +++ b/core/src/main/java/org/apache/brooklyn/feed/ssh/SshFeed.java @@ -198,23 +198,17 @@ public class SshFeed extends AbstractFeed { Objects.equal(env, o.env); } } - - /** @deprecated since 0.7.0, use static convenience on {@link Locations} */ - @Deprecated - public static SshMachineLocation getMachineOfEntity(Entity entity) { - return Machines.findUniqueMachineLocation(entity.getLocations(), SshMachineLocation.class).orNull(); - } /** * For rebind; do not call directly; use builder */ public SshFeed() { } - + protected SshFeed(final Builder builder) { - setConfig(ONLY_IF_SERVICE_UP, builder.onlyIfServiceUp); - setConfig(MACHINE, builder.machine != null ? builder.machine : null); - setConfig(EXEC_AS_COMMAND, builder.execAsCommand); + config().set(ONLY_IF_SERVICE_UP, builder.onlyIfServiceUp); + config().set(MACHINE, builder.machine); + config().set(EXEC_AS_COMMAND, builder.execAsCommand); SetMultimap<SshPollIdentifier, SshPollConfig<?>> polls = HashMultimap.<SshPollIdentifier,SshPollConfig<?>>create(); for (SshPollConfig<?> config : builder.polls) { @@ -223,12 +217,12 @@ public class SshFeed extends AbstractFeed { if (configCopy.getPeriod() < 0) configCopy.period(builder.period); polls.put(new SshPollIdentifier(config.getCommandSupplier(), config.getEnvSupplier()), configCopy); } - setConfig(POLLS, polls); + config().set(POLLS, polls); initUniqueTag(builder.uniqueTag, polls.values()); } protected SshMachineLocation getMachine() { - Supplier<SshMachineLocation> supplier = getConfig(MACHINE); + Supplier<SshMachineLocation> supplier = config().get(MACHINE); if (supplier != null) { return supplier.get(); } else { @@ -238,7 +232,7 @@ public class SshFeed extends AbstractFeed { @Override protected void preStart() { - SetMultimap<SshPollIdentifier, SshPollConfig<?>> polls = getConfig(POLLS); + SetMultimap<SshPollIdentifier, SshPollConfig<?>> polls = config().get(POLLS); for (final SshPollIdentifier pollInfo : polls.keySet()) { Set<SshPollConfig<?>> configs = polls.get(pollInfo); @@ -267,13 +261,13 @@ public class SshFeed extends AbstractFeed { private SshPollValue exec(String command, Map<String,String> env) throws IOException { SshMachineLocation machine = getMachine(); - Boolean execAsCommand = getConfig(EXEC_AS_COMMAND); + Boolean execAsCommand = config().get(EXEC_AS_COMMAND); if (log.isTraceEnabled()) log.trace("Ssh polling for {}, executing {} with env {}", new Object[] {machine, command, env}); ByteArrayOutputStream stdout = new ByteArrayOutputStream(); ByteArrayOutputStream stderr = new ByteArrayOutputStream(); int exitStatus; - ConfigBag flags = ConfigBag.newInstance() + ConfigBag flags = ConfigBag.newInstanceExtending(config().getBag()) .configure(SshTool.PROP_NO_EXTRA_OUTPUT, true) .configure(SshTool.PROP_OUT_STREAM, stdout) .configure(SshTool.PROP_ERR_STREAM, stderr);