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 3aca718dfe642ac39ca3a530e98bed7e957d89e8 Author: zan-mateusz <[email protected]> AuthorDate: Thu May 13 12:31:21 2021 +0100 smart-153 --- .../vault/VaultExternalConfigSupplier.java | 35 ++++++++++------------ .../vault/VaultUserPassExternalConfigSupplier.java | 5 ++-- .../vault/VaultExternalConfigSupplierLiveTest.java | 1 - 3 files changed, 18 insertions(+), 23 deletions(-) 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 0ed12f6..2a976f1 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 @@ -34,6 +34,8 @@ import org.apache.brooklyn.util.http.HttpTool; import org.apache.brooklyn.util.http.HttpToolResponse; import org.apache.brooklyn.util.net.Urls; import org.apache.brooklyn.util.text.Strings; +import org.apache.brooklyn.util.time.Duration; +import org.apache.brooklyn.util.time.Time; import org.apache.commons.lang3.math.NumberUtils; import org.apache.http.client.HttpClient; import org.slf4j.Logger; @@ -84,10 +86,11 @@ public abstract class VaultExternalConfigSupplier extends AbstractExternalConfig this.version = -1; // satisfy the static analysis :) errors.add("'kv-api-version' must be either 1 or 2"); } - recoverTryCount = NumberUtils.toInt(config.get("recoverTryCount"),10); + recoverTryCount = NumberUtils.toInt(config.get("recoverTryCount"), 10); mountPoint = config.get("mountPoint"); if (Strings.isBlank(mountPoint) && this.version == 2) errors.add("missing configuration 'mountPoint'"); - if (!Strings.isBlank(mountPoint) && this.version == 1) errors.add("'mountPoint' is only applicable when kv-api-version=2"); + if (!Strings.isBlank(mountPoint) && this.version == 1) + errors.add("'mountPoint' is only applicable when kv-api-version=2"); if (!errors.isEmpty()) { String message = String.format("Problem configuration Vault external config supplier '%s': %s", name, Joiner.on(System.lineSeparator()).join(errors)); @@ -95,7 +98,7 @@ public abstract class VaultExternalConfigSupplier extends AbstractExternalConfig } token = initAndLogIn(config); - if (Strings.isBlank(token)){ + if (Strings.isBlank(token)) { LOG.warn("Vault token blank. Startup will continue but vault might not be available. Recover attempt will be made on next vault access."); } headersWithToken = ImmutableMap.<String, String>builder() @@ -109,12 +112,12 @@ public abstract class VaultExternalConfigSupplier extends AbstractExternalConfig @Override public String get(String key) { String urlPath = (version == 1) - ? Urls.mergePaths("v1", path) - : Urls.mergePaths("v1", mountPoint, "data", path); + ? Urls.mergePaths("v1", path) + : Urls.mergePaths("v1", mountPoint, "data", path); JsonObject response = apiGetRetryable(urlPath, headersWithToken, recoverTryCount); JsonElement jsonElement = (version == 1) - ? response.getAsJsonObject("data").get(key) - : response.getAsJsonObject("data").getAsJsonObject("data").get(key); + ? response.getAsJsonObject("data").get(key) + : response.getAsJsonObject("data").getAsJsonObject("data").get(key); String asString = jsonElement.getAsString(); return asString; } @@ -131,27 +134,21 @@ public abstract class VaultExternalConfigSupplier extends AbstractExternalConfig protected JsonObject apiGetRetryable(String path, Map<String, String> headers, int recoverTryCount) { try { - if (Strings.isBlank(headers.get("X-Vault-Token"))){ + if (Strings.isBlank(headers.get("X-Vault-Token"))) { String currentToken = initAndLogIn(config); - if (Strings.isBlank(currentToken)){ + if (Strings.isBlank(currentToken)) { throw new IllegalStateException("Vault sealed or unavailable."); } - headers = MutableMap.copyOf(headers).add("X-Vault-Token",currentToken); + headers = MutableMap.copyOf(headers).add("X-Vault-Token", currentToken); } return apiGet(path, headers); - } - catch (Exception e){ + } catch (Exception e) { Exceptions.propagateIfFatal(e); if (recoverTryCount > 0) { LOG.warn("Vault sealed or unavailable. Retries remaining: " + recoverTryCount); - try{ - Thread.sleep(1000); - } - catch (InterruptedException sleepEx) { - throw Exceptions.propagate(sleepEx); - } + Time.sleep(Duration.ONE_SECOND); String currentToken = initAndLogIn(config); - headers = MutableMap.copyOf(headers).add("X-Vault-Token",currentToken); + headers = MutableMap.copyOf(headers).add("X-Vault-Token", currentToken); return apiGetRetryable(path, headers, --recoverTryCount); } throw Exceptions.propagate(e); diff --git a/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultUserPassExternalConfigSupplier.java b/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultUserPassExternalConfigSupplier.java index 3568cd4..4cc3281 100644 --- a/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultUserPassExternalConfigSupplier.java +++ b/core/src/main/java/org/apache/brooklyn/core/config/external/vault/VaultUserPassExternalConfigSupplier.java @@ -56,11 +56,10 @@ public class VaultUserPassExternalConfigSupplier extends VaultExternalConfigSupp String path = "v1/auth/userpass/login/" + username; ImmutableMap<String, String> requestData = ImmutableMap.of("password", password); ImmutableMap<String, String> headers = MINIMAL_HEADERS; - try{ + try { JsonObject response = apiPost(path, headers, requestData); return response.getAsJsonObject("auth").get("client_token").getAsString(); - } - catch (Throwable e){ + } catch (Throwable e) { Exceptions.propagateIfFatal(e); LOG.warn("Error encountered when retrieving vault token: " + e + "."); return ""; diff --git a/core/src/test/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplierLiveTest.java b/core/src/test/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplierLiveTest.java index 36ef648..9bc015f 100644 --- a/core/src/test/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplierLiveTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/config/external/vault/VaultExternalConfigSupplierLiveTest.java @@ -165,5 +165,4 @@ public class VaultExternalConfigSupplierLiveTest { ImmutableMap.of("endpoint", endpoint, "appId", appId, "path", path, "userId", userId)); assertEquals(ecs.get(propertyName), propertyExpectedValue); } - } \ No newline at end of file
