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 2016/02/01 18:50:08 UTC

[11/50] [abbrv] brooklyn-server git commit: treat tasks submitted by transient tasks as transient by default

treat tasks submitted by transient tasks as transient by default


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/56909922
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/56909922
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/56909922

Branch: refs/heads/0.7.0-incubating
Commit: 56909922a3d0b0ae389e63f9441ffd1de1bea709
Parents: f5336d6
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Jun 20 16:33:41 2015 -0700
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Jun 24 00:40:33 2015 -0700

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java | 7 ++++++-
 .../main/java/brooklyn/util/task/BasicExecutionContext.java   | 5 +++++
 2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/56909922/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java b/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
index 41b2371..e90a014 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
@@ -267,7 +267,12 @@ public class BrooklynTaskTags extends TaskTags {
     
     public static void setInessential(Task<?> task) { addTagDynamically(task, INESSENTIAL_TASK); }
     public static void setTransient(Task<?> task) { addTagDynamically(task, TRANSIENT_TASK_TAG); }
-    public static boolean isTransient(Task<?> task) { return hasTag(task, TRANSIENT_TASK_TAG); }
+    public static boolean isTransient(Task<?> task) { 
+        if (hasTag(task, TRANSIENT_TASK_TAG)) return true;
+        if (hasTag(task, NON_TRANSIENT_TASK_TAG)) return true;
+        if (task.getSubmittedByTask()!=null) return isTransient(task.getSubmittedByTask());
+        return false;
+    }
     public static boolean isSubTask(Task<?> task) { return hasTag(task, SUB_TASK_TAG); }
     public static boolean isEffectorTask(Task<?> task) { return hasTag(task, EFFECTOR_TAG); }
     

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/56909922/core/src/main/java/brooklyn/util/task/BasicExecutionContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/task/BasicExecutionContext.java b/core/src/main/java/brooklyn/util/task/BasicExecutionContext.java
index bff6e2d..6346ecd 100644
--- a/core/src/main/java/brooklyn/util/task/BasicExecutionContext.java
+++ b/core/src/main/java/brooklyn/util/task/BasicExecutionContext.java
@@ -169,6 +169,11 @@ public class BasicExecutionContext extends AbstractExecutionContext {
 
         taskTags.addAll(tags);
         
+        if (Tasks.current()!=null && BrooklynTaskTags.isTransient(Tasks.current()) && !taskTags.contains(BrooklynTaskTags.NON_TRANSIENT_TASK_TAG)) {
+            // tag as transient if submitter is transient, unless explicitly tagged as non-transient
+            taskTags.add(BrooklynTaskTags.TRANSIENT_TASK_TAG);
+        }
+        
         final Object startCallback = properties.get("newTaskStartCallback");
         properties.put("newTaskStartCallback", new Function<Object,Void>() {
             public Void apply(Object it) {