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 af54075c0e7f6ff883243227695ca34851694764 Author: Alex Heneveld <[email protected]> AuthorDate: Wed Sep 15 11:39:20 2021 +0100 add support for sanitizing ConfigBag --- .../brooklyn/core/catalog/internal/BasicBrooklynCatalog.java | 10 +++++----- .../main/java/org/apache/brooklyn/core/config/Sanitizer.java | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java index d5ad8b4..a739c0e 100644 --- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java +++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java @@ -563,7 +563,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { } Map<?,?> catalogMetadata = getFirstAsMap(itemDef, "brooklyn.catalog").orNull(); if (catalogMetadata==null) - log.warn("No `brooklyn.catalog` supplied in catalog request; using legacy mode for "+itemDef); + log.warn("No `brooklyn.catalog` supplied in catalog request; using legacy mode for "+Sanitizer.sanitize(itemDef)); catalogMetadata = MutableMap.copyOf(catalogMetadata); collectCatalogItemsFromItemMetadataBlock(Yamls.getTextOfYamlAtPath(yaml, "brooklyn.catalog").getMatchedYamlTextOrWarn(), @@ -813,7 +813,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { // TODO we should let the plan transformer give us this symbolicName = setFromItemIfUnset(symbolicName, itemAsMap, "template_name"); if (Strings.isBlank(symbolicName)) { - log.error("Can't infer catalog item symbolicName from the following plan:\n" + sourceYaml); + log.error("Can't infer catalog item symbolicName from the following plan:\n" + Sanitizer.sanitizeJsonTypes(sourceYaml)); throw new IllegalStateException("Can't infer catalog item symbolicName from catalog item metadata"); } } @@ -871,7 +871,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { if (Strings.isNonBlank(symbolicName)) { id = symbolicName; } else { - log.error("Can't infer catalog item id from the following plan:\n" + sourceYaml); + log.error("Can't infer catalog item id from the following plan:\n" + Sanitizer.sanitizeJsonTypes(sourceYaml)); throw new IllegalStateException("Can't infer catalog item id from catalog item metadata"); } } @@ -1687,7 +1687,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { @Override public List<? extends CatalogItem<?,?>> addItems(String yaml, ManagedBundle bundle, boolean forceUpdate) { - log.debug("Adding catalog item to "+mgmt+": "+yaml); + log.debug("Adding catalog item to "+mgmt+": "+Sanitizer.sanitizeJsonTypes(yaml)); checkNotNull(yaml, "yaml"); List<CatalogItemDtoAbstract<?, ?>> result = MutableList.of(); collectCatalogItemsFromCatalogBomRoot("caller-supplied YAML", yaml, bundle, result, null, true, ImmutableMap.of(), 0, forceUpdate, true); @@ -1718,7 +1718,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { @Override @Beta public void addTypesFromBundleBom(String yaml, ManagedBundle bundle, boolean forceUpdate, Map<RegisteredType, RegisteredType> result) { - log.debug("Catalog load, adding registered types to "+mgmt+" for bundle "+bundle+": "+yaml); + log.debug("Catalog load, adding registered types to "+mgmt+" for bundle "+bundle+": "+Sanitizer.sanitizeJsonTypes(yaml)); checkNotNull(yaml, "yaml"); if (result==null) result = MutableMap.of(); collectCatalogItemsFromCatalogBomRoot("bundle BOM in "+bundle, yaml, bundle, null, result, false, MutableMap.of(), 0, forceUpdate, false); 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 515f069..f340a37 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 @@ -269,6 +269,8 @@ public final class Sanitizer { return (K) applySet((Set) input, visited); } else if (input instanceof String) { return (K) sanitizeMultilineString((String) input); + } else if (input instanceof ConfigBag) { + return (K) ConfigBag.newInstance( applyMap( ((ConfigBag)input).getAllConfig(), visited) ); } else { return (K) input; }
