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 ac8a5b28c6 allow groups change policy to invoke things when a member
joins
ac8a5b28c6 is described below
commit ac8a5b28c6af7200ccb60cf7b20a11d2c9910c3c
Author: Alex Heneveld <[email protected]>
AuthorDate: Fri Jul 15 00:24:36 2022 +0100
allow groups change policy to invoke things when a member joins
---
.../apache/brooklyn/entity/group/GroupsChangePolicy.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git
a/core/src/main/java/org/apache/brooklyn/entity/group/GroupsChangePolicy.java
b/core/src/main/java/org/apache/brooklyn/entity/group/GroupsChangePolicy.java
index ab6adfd17e..10412f08d8 100644
---
a/core/src/main/java/org/apache/brooklyn/entity/group/GroupsChangePolicy.java
+++
b/core/src/main/java/org/apache/brooklyn/entity/group/GroupsChangePolicy.java
@@ -44,6 +44,7 @@ import
org.apache.brooklyn.core.resolve.jackson.BeanWithTypeUtils;
import org.apache.brooklyn.core.typereg.AbstractTypePlanTransformer;
import org.apache.brooklyn.core.typereg.RegisteredTypeLoadingContexts;
import org.apache.brooklyn.core.typereg.RegisteredTypes;
+import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.core.config.ConfigBag;
import org.apache.brooklyn.util.core.flags.BrooklynTypeNameResolution;
import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -105,22 +106,31 @@ public class GroupsChangePolicy extends
AbstractMembershipTrackingPolicy {
public static final ConfigKey<List<Map<String, Object>>> LOCATIONS =
ConfigKeys.builder(new TypeToken<List<Map<String, Object>>>() {})
.name("member.locations")
+ .description("Locations to add to any joining member when it
joins")
.defaultValue(ImmutableList.of())
.build();
public static final ConfigKey<List<Map<String, Object>>> POLICIES =
ConfigKeys.builder(new TypeToken<List<Map<String, Object>>>() {})
.name("member.policies")
- .description("List of policies of the form [{type: policyType,
brooklyn.config: {configKey: configValue}}]")
+ .description("Policies to add to any joining member when it joins,
of the form [{type: policyType, brooklyn.config: {configKey: configValue}}]")
.defaultValue(ImmutableList.of())
.build();
public static final ConfigKey<List<Map<String, Object>>> INITIALIZERS =
ConfigKeys.builder(new TypeToken<List<Map<String, Object>>>(){})
.name("member.initializers")
+ .description("Initializers to run on any joining member when it
joins")
.defaultValue(ImmutableList.of())
.build();
public static final ConfigKey<List<Map<String, Object>>> ENRICHERS =
ConfigKeys.builder(new TypeToken<List<Map<String, Object>>>(){})
.name("member.enrichers")
+ .description("Enrichers to add to any joining member when it
joins")
+ .defaultValue(ImmutableList.of())
+ .build();
+
+ public static final ConfigKey<List<String>> INVOKE =
ConfigKeys.builder(new TypeToken<List<String>>(){})
+ .name("member.invoke")
+ .description("Effectors to invoke on any joining member when it
joins (run in parallel asynchronously, after initializers so they can add new
effectors)")
.defaultValue(ImmutableList.of())
.build();
@@ -223,6 +233,10 @@ public class GroupsChangePolicy extends
AbstractMembershipTrackingPolicy {
member.enrichers().add(enricherSpec);
}
);
+
+ config().get(INVOKE).forEach(effName -> {
+ member.invoke( ((EntityInternal)member).getEffector(effName),
MutableMap.of() );
+ });
}
@SuppressWarnings("unchecked")