ReleaseableLatch - better support for failing tasks
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/49ba9f15 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/49ba9f15 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/49ba9f15 Branch: refs/heads/master Commit: 49ba9f1546de0f7d88339681731f24a0d766794a Parents: b7cfae7 Author: Svetoslav Neykov <svetoslav.ney...@cloudsoftcorp.com> Authored: Wed Jan 25 09:35:14 2017 +0200 Committer: Svetoslav Neykov <svetoslav.ney...@cloudsoftcorp.com> Committed: Wed Jan 25 09:35:14 2017 +0200 ---------------------------------------------------------------------- .../cm/ansible/AnsibleLifecycleEffectorTasks.java | 15 ++++++--------- .../cm/salt/impl/SaltLifecycleEffectorTasks.java | 6 ++---- .../PostgreSqlNodeChefImplFromScratch.java | 12 ++++-------- 3 files changed, 12 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/49ba9f15/software/cm/ansible/src/main/java/org/apache/brooklyn/entity/cm/ansible/AnsibleLifecycleEffectorTasks.java ---------------------------------------------------------------------- diff --git a/software/cm/ansible/src/main/java/org/apache/brooklyn/entity/cm/ansible/AnsibleLifecycleEffectorTasks.java b/software/cm/ansible/src/main/java/org/apache/brooklyn/entity/cm/ansible/AnsibleLifecycleEffectorTasks.java index da4b2d7..b2a104a 100644 --- a/software/cm/ansible/src/main/java/org/apache/brooklyn/entity/cm/ansible/AnsibleLifecycleEffectorTasks.java +++ b/software/cm/ansible/src/main/java/org/apache/brooklyn/entity/cm/ansible/AnsibleLifecycleEffectorTasks.java @@ -18,7 +18,8 @@ */ package org.apache.brooklyn.entity.cm.ansible; -import com.google.common.base.Supplier; +import static org.apache.brooklyn.util.ssh.BashCommands.sudo; + import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.location.MachineLocation; import org.apache.brooklyn.core.effector.ssh.SshEffectorTasks; @@ -27,7 +28,6 @@ import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; import org.apache.brooklyn.core.entity.trait.Startable; import org.apache.brooklyn.core.location.Locations; import org.apache.brooklyn.core.location.Machines; -import org.apache.brooklyn.core.sensor.ReleaseableLatch; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks; import org.apache.brooklyn.feed.ssh.SshFeed; @@ -36,17 +36,14 @@ import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.core.task.DynamicTasks; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.net.Urls; - -import static org.apache.brooklyn.util.ssh.BashCommands.sudo; - -import java.util.concurrent.atomic.AtomicReference; - import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.Duration; import org.apache.brooklyn.util.time.Time; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Supplier; + public class AnsibleLifecycleEffectorTasks extends MachineLifecycleEffectorTasks implements AnsibleConfig { private static final Logger LOG = LoggerFactory.getLogger(AnsibleLifecycleEffectorTasks.class); @@ -140,7 +137,7 @@ public class AnsibleLifecycleEffectorTasks extends MachineLifecycleEffectorTasks @Override - protected void postStartCustom(AtomicReference<ReleaseableLatch> startLatchRef) { + protected void postStartCustom() { boolean result = false; result |= tryCheckStartService(); @@ -183,7 +180,7 @@ public class AnsibleLifecycleEffectorTasks extends MachineLifecycleEffectorTasks LOG.warn("Location(s) {} not an ssh-machine location, so not polling for status; " + "setting serviceUp immediately", entity().getLocations()); } - super.postStartCustom(startLatchRef); + super.postStartCustom(); } protected boolean tryCheckStartService() { http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/49ba9f15/software/cm/salt/src/main/java/org/apache/brooklyn/entity/cm/salt/impl/SaltLifecycleEffectorTasks.java ---------------------------------------------------------------------- diff --git a/software/cm/salt/src/main/java/org/apache/brooklyn/entity/cm/salt/impl/SaltLifecycleEffectorTasks.java b/software/cm/salt/src/main/java/org/apache/brooklyn/entity/cm/salt/impl/SaltLifecycleEffectorTasks.java index cc02546..49fd336 100644 --- a/software/cm/salt/src/main/java/org/apache/brooklyn/entity/cm/salt/impl/SaltLifecycleEffectorTasks.java +++ b/software/cm/salt/src/main/java/org/apache/brooklyn/entity/cm/salt/impl/SaltLifecycleEffectorTasks.java @@ -24,7 +24,6 @@ import static org.apache.brooklyn.entity.software.base.SoftwareProcess.StopSoftw import static org.apache.brooklyn.entity.software.base.SoftwareProcess.StopSoftwareParameters.StopMode.NEVER; import java.util.Set; -import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -38,7 +37,6 @@ import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic; import org.apache.brooklyn.core.entity.trait.Startable; -import org.apache.brooklyn.core.sensor.ReleaseableLatch; import org.apache.brooklyn.entity.cm.salt.SaltConfig; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.software.base.SoftwareProcess.StopSoftwareParameters; @@ -169,10 +167,10 @@ public class SaltLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im } @Override - protected void postStartCustom(AtomicReference<ReleaseableLatch> startLatchRef) { + protected void postStartCustom() { // TODO: check for package installed? entity().sensors().set(SoftwareProcess.SERVICE_UP, true); - super.postStartCustom(startLatchRef); + super.postStartCustom(); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/49ba9f15/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImplFromScratch.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImplFromScratch.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImplFromScratch.java index 0414fbe..0c52f20 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImplFromScratch.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/postgresql/PostgreSqlNodeChefImplFromScratch.java @@ -18,8 +18,6 @@ */ package org.apache.brooklyn.entity.database.postgresql; -import java.util.concurrent.atomic.AtomicReference; - import org.apache.brooklyn.api.effector.Effector; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; @@ -28,15 +26,12 @@ import org.apache.brooklyn.core.effector.Effectors; import org.apache.brooklyn.core.effector.ssh.SshEffectorTasks; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.location.Locations; -import org.apache.brooklyn.core.sensor.ReleaseableLatch; import org.apache.brooklyn.entity.chef.ChefConfig; import org.apache.brooklyn.entity.chef.ChefLifecycleEffectorTasks; import org.apache.brooklyn.entity.chef.ChefServerTasks; import org.apache.brooklyn.entity.stock.EffectorStartableImpl; import org.apache.brooklyn.feed.ssh.SshFeed; import org.apache.brooklyn.feed.ssh.SshPollConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.Jsonya; import org.apache.brooklyn.util.core.ResourceUtils; @@ -44,6 +39,8 @@ import org.apache.brooklyn.util.core.config.ConfigBag; import org.apache.brooklyn.util.core.task.DynamicTasks; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.ssh.BashCommands; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class PostgreSqlNodeChefImplFromScratch extends EffectorStartableImpl implements PostgreSqlNode { @@ -100,9 +97,7 @@ public class PostgreSqlNodeChefImplFromScratch extends EffectorStartableImpl imp ); } @Override - protected void postStartCustom(AtomicReference<ReleaseableLatch> startLatchRef) { - super.postStartCustom(startLatchRef); - + protected void postStartCustom() { // now run the creation script String creationScript; String creationScriptUrl = entity().getConfig(PostgreSqlNode.CREATION_SCRIPT_URL); @@ -115,6 +110,7 @@ public class PostgreSqlNodeChefImplFromScratch extends EffectorStartableImpl imp // and finally connect sensors entity().connectSensors(); + super.postStartCustom(); } @Override protected void preStopCustom() {