summaryrefslogtreecommitdiffstats
path: root/configserver/src/main
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahooinc.com>2023-12-13 14:48:50 +0100
committerMorten Tokle <mortent@yahooinc.com>2023-12-13 14:48:50 +0100
commit83d0e649b2c77283f5be3abac4bd3296d6f46f9a (patch)
tree32b81b383d7c7f1462df9a89bacdb2eb4a0905ec /configserver/src/main
parent99fa6a5014a164c8c158c7bcb4cc3554e320f936 (diff)
Propagate more useful error message to vespa log
Diffstat (limited to 'configserver/src/main')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/SecretStoreExternalIdRetriever.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/SecretStoreExternalIdRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/SecretStoreExternalIdRetriever.java
index 5afb2188fac..c6f9a0268c1 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/SecretStoreExternalIdRetriever.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/SecretStoreExternalIdRetriever.java
@@ -4,7 +4,10 @@ package com.yahoo.vespa.config.server.tenant;
import com.yahoo.config.model.api.TenantSecretStore;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.container.jdisc.secretstore.SecretNotFoundException;
import com.yahoo.container.jdisc.secretstore.SecretStore;
+import com.yahoo.vespa.config.server.http.InvalidApplicationException;
+
import java.util.List;
import java.util.stream.Collectors;
@@ -19,10 +22,14 @@ public class SecretStoreExternalIdRetriever {
return tenantSecretStores.stream()
.map(tenantSecretStore -> {
var secretName = secretName(tenant, system, tenantSecretStore.getName());
- String secret = secretStore.getSecret(secretName);
- if (secret == null)
- throw new RuntimeException("No secret found in secret store for " + secretName);
- return tenantSecretStore.withExternalId(secret);
+ try {
+ String secret = secretStore.getSecret(secretName);
+ if (secret == null)
+ throw new InvalidApplicationException("No secret found in secret store for " + secretName);
+ return tenantSecretStore.withExternalId(secret);
+ } catch (SecretNotFoundException e) {
+ throw new InvalidApplicationException("Could not find externalId for secret store: %s".formatted(tenantSecretStore.getName()));
+ }
})
.toList();
}