Replace usage of STOP_MACHINE=true with STOP_MACHINE_MODE=IF_NOT_STOPPED
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/db5111ac Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/db5111ac Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/db5111ac Branch: refs/heads/master Commit: db5111ac66ccb0e1fcb7518e6a186be1dfa51d8c Parents: 78072b2 Author: Svetoslav Neykov <[email protected]> Authored: Fri Feb 27 12:52:29 2015 +0200 Committer: Svetoslav Neykov <[email protected]> Committed: Thu Mar 19 16:01:28 2015 +0200 ---------------------------------------------------------------------- .../src/main/java/brooklyn/entity/basic/SoftwareProcess.java | 5 ++++- .../java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java | 8 ++++++-- .../effector/BrooklynNodeUpgradeEffectorBody.java | 5 +++-- .../entity/software/MachineLifecycleEffectorTasks.java | 6 ++++-- 4 files changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db5111ac/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java index 2b27a47..9219e69 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java +++ b/software/base/src/main/java/brooklyn/entity/basic/SoftwareProcess.java @@ -260,7 +260,10 @@ public interface SoftwareProcess extends Entity, Startable { @Beta public static class StopSoftwareParameters { - @Beta /** @since 0.7.0 semantics of parameters to restart being explored */ + /** @since 0.7.0 semantics of parameters to restart being explored + * @deprecated since 0.7.0 use {@link #STOP_MACHINE_MODE} instead */ + @Beta + @Deprecated public static final ConfigKey<Boolean> STOP_MACHINE = ConfigKeys.newBooleanConfigKey("stopMachine", "Whether to stop the machine provisioned for this entity: 'true', or 'false' are supported, " + "with the default being 'true'", true); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db5111ac/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java index 224215a..20dc032 100644 --- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java +++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynNodeImpl.java @@ -192,8 +192,7 @@ public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNod protected void postStop() { super.postStop(); ConfigBag stopParameters = BrooklynTaskTags.getCurrentEffectorParameters(); - //unmanage only if stopping the machine - if (stopParameters == null || stopParameters.get(StopSoftwareParameters.STOP_MACHINE)) { + if (isStopMachine(stopParameters)) { // Don't unmanage in entity's task context as it will self-cancel the task. Wait for the stop effector to complete. // If this is not enough (still getting Caused by: java.util.concurrent.CancellationException: null) then // we could search for the top most task with entity context == this and wait on it. Even stronger would be @@ -203,6 +202,11 @@ public class BrooklynNodeImpl extends SoftwareProcessImpl implements BrooklynNod } } + private boolean isStopMachine(ConfigBag stopParameters) { + return stopParameters == null || + stopParameters.get(StopSoftwareParameters.STOP_MACHINE_MODE) != StopMode.NEVER; + } + private void queueShutdownTask() { ConfigBag stopParameters = BrooklynTaskTags.getCurrentEffectorParameters(); ConfigBag shutdownParameters; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db5111ac/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java index c939378..d4575a4 100644 --- a/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java +++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java @@ -32,6 +32,7 @@ import brooklyn.entity.basic.EntityInternal; import brooklyn.entity.basic.EntityTasks; import brooklyn.entity.basic.SoftwareProcess; import brooklyn.entity.basic.SoftwareProcess.StopSoftwareParameters; +import brooklyn.entity.basic.SoftwareProcess.StopSoftwareParameters.StopMode; import brooklyn.entity.brooklynnode.BrooklynCluster; import brooklyn.entity.brooklynnode.BrooklynNode; import brooklyn.entity.brooklynnode.BrooklynNodeDriver; @@ -118,7 +119,7 @@ public class BrooklynNodeUpgradeEffectorBody extends EffectorBody<Void> { // Stop running instance DynamicTasks.queue(Tasks.builder().name("shutdown node") - .add(Effectors.invocation(entity(), BrooklynNode.STOP_NODE_BUT_LEAVE_APPS, ImmutableMap.of(StopSoftwareParameters.STOP_MACHINE, Boolean.FALSE))) + .add(Effectors.invocation(entity(), BrooklynNode.STOP_NODE_BUT_LEAVE_APPS, ImmutableMap.of(StopSoftwareParameters.STOP_MACHINE_MODE, StopMode.NEVER))) .build()); // backup old files @@ -192,7 +193,7 @@ public class BrooklynNodeUpgradeEffectorBody extends EffectorBody<Void> { // 3 stop new version DynamicTasks.queue(Tasks.builder().name("shutdown transient node") - .add(Effectors.invocation(dryRunChild, BrooklynNode.STOP_NODE_BUT_LEAVE_APPS, ImmutableMap.of(StopSoftwareParameters.STOP_MACHINE, Boolean.FALSE))) + .add(Effectors.invocation(dryRunChild, BrooklynNode.STOP_NODE_BUT_LEAVE_APPS, ImmutableMap.of(StopSoftwareParameters.STOP_MACHINE_MODE, StopMode.NEVER))) .build()); DynamicTasks.queue(Tasks.<Void>builder().name("remove transient node").body( http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db5111ac/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java index f1b0a67..8a1279c 100644 --- a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java +++ b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java @@ -487,10 +487,10 @@ public abstract class MachineLifecycleEffectorTasks { } else { DynamicTasks.queue("stopping (machine)", new Callable<String>() { public String call() { DynamicTasks.markInessential(); - stop(ConfigBag.newInstance().configure(StopSoftwareParameters.STOP_MACHINE, true)); + stop(ConfigBag.newInstance().configure(StopSoftwareParameters.STOP_MACHINE_MODE, StopMode.IF_NOT_STOPPED)); DynamicTasks.waitForLast(); return "Stop of machine completed with no errors."; - }}); + }}); } DynamicTasks.queue("starting", new Runnable() { public void run() { @@ -541,7 +541,9 @@ public abstract class MachineLifecycleEffectorTasks { log.info("Stopping {} in {}", entity(), entity().getLocations()); + @SuppressWarnings("deprecation") final boolean hasStopMachine = parameters.containsKey(StopSoftwareParameters.STOP_MACHINE); + @SuppressWarnings("deprecation") final Boolean isStopMachine = parameters.get(StopSoftwareParameters.STOP_MACHINE); final StopMode stopProcessMode = parameters.get(StopSoftwareParameters.STOP_PROCESS_MODE);
