You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/01/21 14:32:49 UTC
[brooklyn-server] 05/12: notes on limitation of ElectPrimaryPolicy
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
commit 3a3d95dbbfc58bde7e40846b255a5d3ef4b38f51
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Wed Jan 19 16:52:00 2022 +0000
notes on limitation of ElectPrimaryPolicy
---
.../org/apache/brooklyn/policy/failover/ElectPrimaryPolicy.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/policy/src/main/java/org/apache/brooklyn/policy/failover/ElectPrimaryPolicy.java b/policy/src/main/java/org/apache/brooklyn/policy/failover/ElectPrimaryPolicy.java
index e34c9dd..35a436e 100644
--- a/policy/src/main/java/org/apache/brooklyn/policy/failover/ElectPrimaryPolicy.java
+++ b/policy/src/main/java/org/apache/brooklyn/policy/failover/ElectPrimaryPolicy.java
@@ -147,7 +147,9 @@ public class ElectPrimaryPolicy extends AbstractPolicy implements ElectPrimaryCo
// effector not defined
if (config().getRaw(EFFECTOR_NAME).isAbsent()) {
log.debug("No effector '"+effName+"' present at "+entity+"; creating default");
- // if not set, we can create the default
+ // if not set, we can create the default; passing more config than is strictly necessary,
+ // wasteful as this config will be passed to the ssh commands,
+ // but that shouldn't normally be a problem; and if it is, caller can create the effector themselves
new ElectPrimaryEffector(config().getBag()).apply(entity);
} else {
@@ -246,6 +248,10 @@ public class ElectPrimaryPolicy extends AbstractPolicy implements ElectPrimaryCo
if (log.isTraceEnabled()) {
log.trace("Policy "+this+" got event: "+contextString+"; triggering rescan with "+effName);
}
+
+ // TODO as with during create, would be good to filter what is getting passed, or have another config key to allow it to be restricted/changed
+ // (there is no way to prevent these paramters from all being applied, and filtered down through all calls, being serialized for ssh etc;
+ // ineffieicnt, and could be a risk of leaking details)
Task<?> task = Effectors.invocation(entity, Preconditions.checkNotNull( ((EntityInternal)entity).getEffector(effName) ), config().getBag()).asTask();
BrooklynTaskTags.addTagDynamically(task, BrooklynTaskTags.NON_TRANSIENT_TASK_TAG);