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
The following commit(s) were added to refs/heads/master by this push:
new b9febc09db expose ability for workflow policy to be invoked
b9febc09db is described below
commit b9febc09dbcec2f4bad2824616a6ab910a7e20ed
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Apr 29 12:51:34 2024 +0100
expose ability for workflow policy to be invoked
---
.../org/apache/brooklyn/core/workflow/WorkflowPolicy.java | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git
a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowPolicy.java
b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowPolicy.java
index 2baefe05e1..1d2c9db914 100644
--- a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowPolicy.java
+++ b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowPolicy.java
@@ -29,6 +29,8 @@ import org.apache.brooklyn.core.feed.PollHandler;
import org.apache.brooklyn.core.feed.Poller;
import org.apache.brooklyn.core.policy.AbstractPolicy;
import org.apache.brooklyn.core.sensor.AbstractAddTriggerableSensor;
+import
org.apache.brooklyn.core.workflow.WorkflowExecutionContext.WorkflowContextType;
+import org.apache.brooklyn.core.workflow.WorkflowSensor.WorkflowPollCallable;
import org.apache.brooklyn.util.collections.MutableSet;
import org.apache.brooklyn.util.core.predicates.DslPredicates;
import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -62,6 +64,7 @@ public class WorkflowPolicy<T> extends AbstractPolicy
implements WorkflowCommonC
public static final ConfigKey<String> UNIQUE_TAG_DASH =
WorkflowSensor.UNIQUE_TAG_DASH;
protected transient Poller<Object> poller;
+ protected transient WorkflowPollCallable pollCallable;
// ? - do we need to have an option not to run when added?
@@ -143,8 +146,8 @@ public class WorkflowPolicy<T> extends AbstractPolicy
implements WorkflowCommonC
.condition(new ConditionSupplierFromAdjunct());
Set<PollConfig> pollConfigs = MutableSet.of(pc);
- poller.schedulePoll(this, pollConfigs, new
WorkflowSensor.WorkflowPollCallable(WorkflowExecutionContext.WorkflowContextType.POLICY,
- getDisplayName() + " (policy)", config().getBag(), this), new
PolicyNoOpPollHandler());
+ pollCallable = new WorkflowPollCallable(WorkflowContextType.POLICY,
getDisplayName() + " (policy)", config().getBag(), this);
+ poller.schedulePoll(this, pollConfigs, pollCallable, new
PolicyNoOpPollHandler());
if (!isSuspended()) resume();
}
@@ -163,5 +166,13 @@ public class WorkflowPolicy<T> extends AbstractPolicy
implements WorkflowCommonC
if (needsStarting) poller.start();
}
+ // we could add an API for this, so arbitrary policies can be re-run from
the UI
+ public Object runOnceNow() {
+ try {
+ return pollCallable.call();
+ } catch (Exception e) {
+ throw Exceptions.propagate(e);
+ }
+ }
}