This is an automated email from the ASF dual-hosted git repository. jcabrerizo pushed a commit to branch activities-rest-optization in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 103a1317800109c608697bfd1fbbf8eab30f5df9 Author: Juan Cabrerizo <[email protected]> AuthorDate: Thu Apr 27 16:01:35 2023 +0100 moves `suppressWorkflowOutputs` from `Sanitizer` to `TaskTransformer` per @ahgittin comment --- .../org/apache/brooklyn/core/config/Sanitizer.java | 30 -------------------- .../resources/AbstractBrooklynRestResource.java | 3 +- .../brooklyn/rest/transform/TaskTransformer.java | 33 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/config/Sanitizer.java b/core/src/main/java/org/apache/brooklyn/core/config/Sanitizer.java index 59bb5a1172..26c213b5de 100644 --- a/core/src/main/java/org/apache/brooklyn/core/config/Sanitizer.java +++ b/core/src/main/java/org/apache/brooklyn/core/config/Sanitizer.java @@ -262,36 +262,6 @@ public final class Sanitizer { } } - public static Object suppressWorkflowOutputs(Object x) { - if (x instanceof Map) { - Map y = MutableMap.of(); - ((Map)x).forEach((k,v) -> { - y.put(k, v!=null && Sanitizer.IS_OUTPUT.apply(k) ? "(output suppressed)": suppressWorkflowOutputs(v) ); - }); - return y; - }else if (x instanceof Iterable){ - List y = MutableList.of(); - ((Iterable)x).forEach(xi -> y.add(suppressWorkflowOutputs(xi))); - return y; - }else { - return x; - } - } - - public static final Predicate<Object> IS_OUTPUT = new IsOutputPredicate(); - - private static class IsOutputPredicate implements Predicate<Object> { - @Override - public boolean apply(Object name) { - if (name == null) return false; - String lowerName = name.toString().toLowerCase(); - for (String outputFieldName : ImmutableList.of("output", "stdout", "stderr")) { - if (lowerName.contains(outputFieldName)) - return true; - } - return false; - } - } /** * Kept only in case this anonymous inner class has made it into any persisted state. diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java index 44fc7a6f86..dfd13370e4 100644 --- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java +++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java @@ -34,6 +34,7 @@ import org.apache.brooklyn.core.config.render.RendererHints; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; import org.apache.brooklyn.core.resolve.jackson.BeanWithTypeUtils; import org.apache.brooklyn.rest.domain.ApiError; +import org.apache.brooklyn.rest.transform.TaskTransformer; import org.apache.brooklyn.rest.util.BrooklynRestResourceUtils; import org.apache.brooklyn.rest.util.DefaultExceptionMapper; import org.apache.brooklyn.rest.util.ManagementContextProvider; @@ -298,7 +299,7 @@ public abstract class AbstractBrooklynRestResource { String resultS = mapper.writeValueAsString(result); result = BeanWithTypeUtils.newSimpleMapper().readValue(resultS, Object.class); if (suppressOutput){ - result = Sanitizer.suppressWorkflowOutputs(result); + result = TaskTransformer.suppressWorkflowOutputs(result); } //the below treats all numbers as doubles //new Gson().fromJson(resultS, Object.class); 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 bf9e62bd16..b15d346ae0 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 @@ -19,6 +19,7 @@ package org.apache.brooklyn.rest.transform; import com.google.common.base.Preconditions; +import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -26,6 +27,7 @@ import com.google.common.collect.Ordering; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.mgmt.HasTaskChildren; import org.apache.brooklyn.api.mgmt.Task; +import org.apache.brooklyn.core.config.Sanitizer; import org.apache.brooklyn.core.mgmt.BrooklynTaskTags; import org.apache.brooklyn.core.mgmt.BrooklynTaskTags.WrappedStream; import org.apache.brooklyn.rest.api.ActivityApi; @@ -234,4 +236,35 @@ public class TaskTransformer { return taskTaskSummaryFunction.apply(task); }).collect(Collectors.toList()); } + public static Object suppressWorkflowOutputs(Object x) { + if (x instanceof Map) { + Map y = MutableMap.of(); + ((Map)x).forEach((k,v) -> { + y.put(k, v!=null && TaskTransformer.IS_OUTPUT.apply(k) ? "(output suppressed)": suppressWorkflowOutputs(v) ); + }); + return y; + }else if (x instanceof Iterable){ + List y = MutableList.of(); + ((Iterable)x).forEach(xi -> y.add(suppressWorkflowOutputs(xi))); + return y; + }else { + return x; + } + } + + public static final Predicate<Object> IS_OUTPUT = new IsOutputPredicate(); + + private static class IsOutputPredicate implements Predicate<Object> { + @Override + public boolean apply(Object name) { + if (name == null) return false; + String lowerName = name.toString().toLowerCase(); + for (String outputFieldName : ImmutableList.of("output", "stdout", "stderr")) { + if (lowerName.contains(outputFieldName)) + return true; + } + return false; + } + } + }
