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;
