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 09803fd23f add config keys for all the supported workflow policy 
options
09803fd23f is described below

commit 09803fd23f94f040221d96141d78892ccd2d0664
Author: Alex Heneveld <a...@cloudsoft.io>
AuthorDate: Thu Jul 27 00:35:15 2023 +0100

    add config keys for all the supported workflow policy options
    
    and tidy up how it is shared with WorkflowSensor
---
 .../java/org/apache/brooklyn/core/workflow/WorkflowPolicy.java   | 7 ++-----
 .../java/org/apache/brooklyn/core/workflow/WorkflowSensor.java   | 9 ++++++---
 .../org/apache/brooklyn/core/workflow/WorkflowBasicTest.java     | 1 +
 3 files changed, 9 insertions(+), 8 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 e54b4b0b89..02043513b0 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
@@ -46,7 +46,7 @@ import java.util.function.Supplier;
  * Configurable policy which runs workflow according to schedule and/or 
trigger.
  */
 @Beta
-public class WorkflowPolicy<T> extends AbstractPolicy {
+public class WorkflowPolicy<T> extends AbstractPolicy implements 
WorkflowCommonConfig {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(WorkflowPolicy.class);
 
@@ -56,9 +56,6 @@ public class WorkflowPolicy<T> extends AbstractPolicy {
 
     public static final ConfigKey<DslPredicates.DslPredicate> CONDITION = 
ConfigKeys.newConfigKey(DslPredicates.DslPredicate.class, "condition", 
"Optional condition required for this sensor feed to run");
 
-    public static final ConfigKey<Map<String,Object>> INPUT = 
WorkflowCommonConfig.INPUT;
-    public static final ConfigKey<List<Object>> STEPS = 
WorkflowCommonConfig.STEPS;
-
     public static final ConfigKey<String> UNIQUE_TAG_CAMEL = 
WorkflowSensor.UNIQUE_TAG_CAMEL;
     public static final ConfigKey<String> UNIQUE_TAG_UNDERSCORE = 
WorkflowSensor.UNIQUE_TAG_UNDERSCORE;
     public static final ConfigKey<String> UNIQUE_TAG_DASH = 
WorkflowSensor.UNIQUE_TAG_DASH;
@@ -144,7 +141,7 @@ public class WorkflowPolicy<T> extends AbstractPolicy {
                 .condition(new ConditionSupplierFromAdjunct());
 
         Set<PollConfig> pollConfigs = MutableSet.of(pc);
-        poller.schedulePoll(this, pollConfigs, new 
WorkflowSensor.WorkflowPollCallable(
+        poller.schedulePoll(this, pollConfigs, new 
WorkflowSensor.WorkflowPollCallable(WorkflowExecutionContext.WorkflowContextType.POLICY,
                 getDisplayName() + " (policy)", config().getBag(), this), new 
PolicyNoOpPollHandler());
 
         if (!isSuspended()) resume();
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowSensor.java 
b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowSensor.java
index d86b623631..fb562546d1 100644
--- a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowSensor.java
+++ b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowSensor.java
@@ -99,7 +99,8 @@ public class WorkflowSensor<T> extends 
AbstractAddTriggerableSensor<T> implement
             LOG.debug("Adding workflow sensor {} to {}", sensor.getName(), 
entity);
         }
 
-        WorkflowPollCallable wc = new WorkflowPollCallable("Workflow for 
sensor " + sensor.getName(), params, null);
+        WorkflowPollCallable wc = new 
WorkflowPollCallable(WorkflowExecutionContext.WorkflowContextType.SENSOR,
+                "Workflow for sensor " + sensor.getName(), params, null);
         FunctionPollConfig<Object,Object> pollConfig = new 
FunctionPollConfig<Object,T>(sensor)
                 .callable(wc)
                 
.onSuccess(TypeCoercions.<T>function((Class)sensor.getTypeToken().getRawType()));
@@ -156,8 +157,10 @@ public class WorkflowSensor<T> extends 
AbstractAddTriggerableSensor<T> implement
         private final String workflowCallableName;
         private BrooklynObject entityOrAdjunct;
         private final Map<String,Object> params;
+        private final WorkflowExecutionContext.WorkflowContextType wcType;
 
-        protected WorkflowPollCallable(String workflowCallableName, ConfigBag 
params, BrooklynObject entityOrAdjunct) {
+        protected 
WorkflowPollCallable(WorkflowExecutionContext.WorkflowContextType wcType, 
String workflowCallableName, ConfigBag params, BrooklynObject entityOrAdjunct) {
+            this.wcType = wcType;
             this.workflowCallableName = workflowCallableName;
             this.params = params.getAllConfigRaw();
             this.entityOrAdjunct = entityOrAdjunct;
@@ -175,7 +178,7 @@ public class WorkflowSensor<T> extends 
AbstractAddTriggerableSensor<T> implement
             if (entityOrAdjunct==null) entityOrAdjunct = 
BrooklynTaskTags.getContextEntity(Tasks.current());
             if (entityOrAdjunct==null) throw new IllegalStateException("No 
entity adjunct or entity available for "+this);
 
-            WorkflowExecutionContext wc = 
WorkflowExecutionContext.newInstancePersisted(entityOrAdjunct, 
WorkflowExecutionContext.WorkflowContextType.SENSOR,
+            WorkflowExecutionContext wc = 
WorkflowExecutionContext.newInstancePersisted(entityOrAdjunct, wcType,
                     workflowCallableName, ConfigBag.newInstance(params), null, 
null, null);
             Task<Object> wt = wc.getTask(false /* condition checked by poll 
config framework */).get();
             if (entityOrAdjunct instanceof EntityAdjunct) {
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowBasicTest.java 
b/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowBasicTest.java
index 098e0c23a2..347ac09ee3 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowBasicTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowBasicTest.java
@@ -409,6 +409,7 @@ public class WorkflowBasicTest extends 
BrooklynMgmtUnitTestSupport {
 
             if (logWatcher.getMessages().size()!=8) {
                 // add logging for intermittent failure; sometimes we are 
getting way more messages than we expect
+                // on slow servers we might see 9, with a "Blocked by lock on 
lock-for-incrementor, currently held by <other task>" at the end
                 throw new IllegalStateException("Wrong number of messages 
found ("+logWatcher.getMessages().size()+", not 8): "+logWatcher.getMessages());
             }
 

Reply via email to