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:52:01 UTC

[42/50] brooklyn-ui git commit: also report who _submitted_ a task, and test for that

also report who _submitted_ a task, and test for that


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

Branch: refs/heads/0.4.0
Commit: fcbcce38052aabf71d34154e5ccc9679fee9b138
Parents: b3386a7
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sun Sep 9 16:44:22 2012 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Sep 10 23:25:09 2012 -0700

----------------------------------------------------------------------
 .../brooklyn/web/console/EntityService.groovy   | 23 ++++++++++++++++----
 .../web/console/entity/TaskSummary.groovy       |  5 +++++
 2 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/fcbcce38/usage/web-console/grails-app/services/brooklyn/web/console/EntityService.groovy
----------------------------------------------------------------------
diff --git a/usage/web-console/grails-app/services/brooklyn/web/console/EntityService.groovy b/usage/web-console/grails-app/services/brooklyn/web/console/EntityService.groovy
index b64aa95..5500e98 100644
--- a/usage/web-console/grails-app/services/brooklyn/web/console/EntityService.groovy
+++ b/usage/web-console/grails-app/services/brooklyn/web/console/EntityService.groovy
@@ -35,8 +35,8 @@ public class EntityService {
 
     public static class NoSuchEntity extends Exception {}
 
-    // TODO Should this return Task objects, and let the EntityController convert them to TaskSummary?
     // TODO Want to handle pagination better; for now we just restrict list to 20 most recent
+    /** returns only _effector_ calls */
     public List<TaskSummary> getTasksOfAllEntities() {
         final int MAX_NUM_RETURNED = 20
         
@@ -49,13 +49,28 @@ public class EntityService {
         return result.subList(0, Math.min(MAX_NUM_RETURNED, result.size()))
     }
 
-    // TODO Should this return Task objects, and let the EntityController convert them to TaskSummary?
+    /** returns any active task or any invoked effector */
     public Collection<TaskSummary> getTasksOfEntity(String entityId) {
         Entity e = getEntity(entityId)
         if (!e) throw new NoSuchEntity()
 
-        return managementContextService.executionManager.getTasksWithAllTags(
-                [e, AbstractManagementContext.EFFECTOR_TAG]).collect { new TaskSummary(it) }
+        List taskSummaries = managementContextService.executionManager.getTasksWithAllTags([e]).collect { new TaskSummary(it) }
+        // only show active subtasks, and effectors
+        taskSummaries = taskSummaries.findAll { TaskSummary t -> t.endTimeUtc==-1 || t.isEffector };
+        Collections.sort(taskSummaries, 
+            { TaskSummary t1, TaskSummary t2 ->
+                if (t1.endTimeUtc && !t2.endTimeUtc) {
+                    //only t2 active, put it first
+                    return 1;
+                }
+                if (t2.endTimeUtc && !t1.endTimeUtc) {
+                    //only t1 active, put it first
+                    return -1;
+                }
+                //otherwise sort by start time
+                return t2.rawSubmitTimeUtc - t1.rawSubmitTimeUtc;
+            } as Comparator);
+        return taskSummaries;
     }
 
     private void unsubscribeEntitySensors() {

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/fcbcce38/usage/web-console/grails-app/utils/brooklyn/web/console/entity/TaskSummary.groovy
----------------------------------------------------------------------
diff --git a/usage/web-console/grails-app/utils/brooklyn/web/console/entity/TaskSummary.groovy b/usage/web-console/grails-app/utils/brooklyn/web/console/entity/TaskSummary.groovy
index daa4de4..ade872a 100644
--- a/usage/web-console/grails-app/utils/brooklyn/web/console/entity/TaskSummary.groovy
+++ b/usage/web-console/grails-app/utils/brooklyn/web/console/entity/TaskSummary.groovy
@@ -6,6 +6,7 @@ import java.text.SimpleDateFormat
 
 import brooklyn.entity.Entity
 import brooklyn.management.Task
+import brooklyn.management.internal.AbstractManagementContext;
 
 /** Summary of a Brooklyn Task   */
 public class TaskSummary {
@@ -25,6 +26,7 @@ public class TaskSummary {
     final String endTimeUtc;
     final String currentStatus;
     final String detailedStatus;
+    final boolean isEffector;
 
     // formatter is not thread-safe; use thread-local storage
     private static final ThreadLocal<DateFormat> formatter = new ThreadLocal<DateFormat>() {
@@ -49,6 +51,9 @@ public class TaskSummary {
         this.endTimeUtc = (task.endTimeUtc == -1) ? "" : formatter.get().format(new Date(task.endTimeUtc))
         this.currentStatus = task.statusSummary
         this.detailedStatus = task.getStatusDetail(true)
+        
+        this.tags = tags;
+        this.isEffector = tags?.contains AbstractManagementContext.EFFECTOR_TAG;
     }
 
     public String toString() {