Repository: brooklyn-server Updated Branches: refs/heads/master 2b7a6bcc1 -> 6881d354e
Useful getDataAsStringMap for VaultExternalConfigSupplier `getDataAsStringMap` allows obtaining vault data with single call. Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/c9e8b22b Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/c9e8b22b Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/c9e8b22b Branch: refs/heads/master Commit: c9e8b22bd121ca94ff6ded324fdb8a078531fa9b Parents: 34efce1 Author: Valentin Aitken <[email protected]> Authored: Sat Jul 22 17:36:08 2017 +0300 Committer: Valentin Aitken <[email protected]> Committed: Sat Jul 22 17:36:08 2017 +0300 ---------------------------------------------------------------------- .../external/vault/VaultExternalConfigSupplier.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/c9e8b22b/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplier.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplier.java index f58dbc5..23f5139 100644 --- a/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplier.java +++ b/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplier.java @@ -21,7 +21,10 @@ package org.apache.brooklyn.core.config.external.vault; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import com.google.common.collect.Maps; +import com.google.gson.JsonElement; import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.core.config.external.AbstractExternalConfigSupplier; import org.apache.brooklyn.util.exceptions.Exceptions; @@ -89,6 +92,16 @@ public abstract class VaultExternalConfigSupplier extends AbstractExternalConfig return response.getAsJsonObject("data").get(key).getAsString(); } + /** + * Obtains data stored in <code>path</code>. + */ + public Map<String, String> getDataAsStringMap() { + JsonObject response = apiGet(Urls.mergePaths("v1", path), headersWithToken); + Map<String, JsonElement> dataMap = response.getAsJsonObject("data").entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + return Maps.transformValues(dataMap, jsonElement -> jsonElement.getAsString()); + } + protected JsonObject apiGet(String path, ImmutableMap<String, String> headers) { try { String uri = Urls.mergePaths(endpoint, path);
