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 a67ddc24bb1f01323947fd176f663bcd249cb027
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Nov 7 09:40:40 2022 +0000

    remove extra details when listing tasks
---
 .../apache/brooklyn/rest/domain/TaskSummary.java   |  1 +
 .../brooklyn/rest/transform/TaskTransformer.java   | 28 +++++++++++++++-------
 .../tasks/kubectl/ContainerTaskFactory.java        |  6 ++---
 .../tasks/kubectl/ContainerTaskResult.java         |  9 +++++++
 4 files changed, 32 insertions(+), 12 deletions(-)

diff --git 
a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java 
b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
index 6b9cbe5e24..b1b6b0de17 100644
--- 
a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
+++ 
b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
@@ -36,6 +36,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
+@JsonInclude(Include.NON_NULL)
 public class TaskSummary implements HasId, Serializable {
 
     private static final long serialVersionUID = 4637850742127078158L;
diff --git 
a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/TaskTransformer.java
 
b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/TaskTransformer.java
index 92727be551..004625dabc 100644
--- 
a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/TaskTransformer.java
+++ 
b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/TaskTransformer.java
@@ -67,6 +67,9 @@ public class TaskTransformer {
     };
 
     public static TaskSummary taskSummary(Task<?> task, UriBuilder ub, 
AbstractBrooklynRestResource.RestValueResolver resolver, Boolean 
suppressSecrets) {
+        return taskSummary(task, ub, resolver, suppressSecrets, true);
+    }
+    public static TaskSummary taskSummary(Task<?> task, UriBuilder ub, 
AbstractBrooklynRestResource.RestValueResolver resolver, Boolean 
suppressSecrets, boolean includeDetail) {
       try {
         Preconditions.checkNotNull(task);
         Entity entity = BrooklynTaskTags.getContextEntity(task);
@@ -112,18 +115,22 @@ public class TaskTransformer {
 
         Collection<Object> tags = (Collection<Object>) 
resolver.getValueForDisplay(task.getTags(), true, false, suppressSecrets);
 
-        Object result;
-        try {
-            if (task.isDone()) {
-                result = resolver.getValueForDisplay(task.get(), true, false, 
suppressSecrets);
-            } else {
-                result = null;
+        Object result = null;
+        String detailedStatus = null;
+
+        if (includeDetail) {
+            try {
+                if (task.isDone()) {
+                    result = resolver.getValueForDisplay(task.get(), true, 
false, suppressSecrets);
+                } else {
+                    result = null;
+                }
+            } catch (Throwable t) {
+                result = Exceptions.collapseTextInContext(t, task);
             }
-        } catch (Throwable t) {
-            result = Exceptions.collapseTextInContext(t, task);
         }
 
-        String detailedStatus = (String) 
resolver.getValueForDisplay(task.getStatusDetail(true), true, false, 
suppressSecrets);
+        detailedStatus = (String) 
resolver.getValueForDisplay(task.getStatusDetail(true), true, false, 
suppressSecrets);
         
         return new TaskSummary(task.getId(), task.getDisplayName(), 
task.getDescription(), entityId, entityDisplayName, 
                 tags, ifPositive(task.getSubmitTimeUtc()), 
ifPositive(task.getStartTimeUtc()), ifPositive(task.getEndTimeUtc()),
@@ -160,6 +167,9 @@ public class TaskTransformer {
     }
     
     public static List<TaskSummary> fromTasks(List<Task<?>> tasksToScan, int 
limit, Boolean recurse, @Nullable Entity entity, UriInfo ui, 
AbstractBrooklynRestResource.RestValueResolver resolver, Boolean 
suppressSecrets) {
+        return fromTasks(tasksToScan, limit, recurse, entity, ui, resolver, 
suppressSecrets, !Boolean.TRUE.equals(recurse));
+    }
+    public static List<TaskSummary> fromTasks(List<Task<?>> tasksToScan, int 
limit, Boolean recurse, @Nullable Entity entity, UriInfo ui, 
AbstractBrooklynRestResource.RestValueResolver resolver, Boolean 
suppressSecrets, boolean includeDetail) {
         int sizeRemaining = limit;
         InterestingTasksFirstComparator comparator = new 
InterestingTasksFirstComparator(entity);
         if (limit>0 && tasksToScan.size() > limit) {
diff --git 
a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
 
b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
index a9555f38f5..e56e1ca73d 100644
--- 
a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
+++ 
b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskFactory.java
@@ -213,9 +213,9 @@ public class ContainerTaskFactory<T extends 
ContainerTaskFactory<T,RET>,RET> imp
                             ProcessTaskWrapper<String> retrieveOutput = 
runTask(entity, newSimpleTaskFactory(String.format(JOBS_LOGS_CMD, kubeJobName, 
namespace)).summary("Retrieve output").newTask(), false, true);
                             ProcessTaskWrapper<String> retrieveExitCode = 
runTask(entity, newSimpleTaskFactory(String.format(PODS_EXIT_CODE_CMD, 
namespace, kubeJobName)).summary("Retrieve exit code").newTask(), false, true);
 
-                            result.mainStdout = retrieveOutput.get();
-
-                            updateStdoutWithNewData(stdout, result.mainStdout);
+                            String newStdout = retrieveOutput.get();
+                            result.mainStdout = newStdout;  //prevent tag 
contents from being enormous; suppress in JSON serialization
+                            updateStdoutWithNewData(stdout, newStdout);
 
                             retrieveExitCode.get();
                             String exitCodeS = retrieveExitCode.getStdout();
diff --git 
a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskResult.java
 
b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskResult.java
index e0fd5f08c1..aab1744d24 100644
--- 
a/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskResult.java
+++ 
b/software/base/src/main/java/org/apache/brooklyn/tasks/kubectl/ContainerTaskResult.java
@@ -18,6 +18,8 @@
  */
 package org.apache.brooklyn.tasks.kubectl;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * Object containing details of a container task. This object is notified when 
containerStarted and containerEnded are set.
  */
@@ -40,6 +42,13 @@ public class ContainerTaskResult {
     public String getMainStdout() {
         return mainStdout;
     }
+    @JsonProperty("mainStdout")
+    public String getMainStdoutForJson() {
+        if (mainStdout!=null && mainStdout.length()>200) {
+            return "... "+mainStdout.substring(mainStdout.length()-196);
+        }
+        return mainStdout;
+    }
 
     public String getNamespace() {
         return namespace;

Reply via email to