diff options
author | gjoranv <gv@verizonmedia.com> | 2020-02-27 15:43:30 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2020-02-27 15:46:59 +0100 |
commit | 4fd3f9276e3c9368cc00dc02eec2820e67df822b (patch) | |
tree | 80f249565ba9bf33fc3c9bbd76f2103ec741e7b6 | |
parent | 3f75d479cc5040732340b48f8a8450a40561ba86 (diff) |
Add handling of optional 'file' attribute to 'shared-credentials'
4 files changed, 26 insertions, 10 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index 9c68b3eb28a..a1ec308c808 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -190,7 +190,9 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC cloudWatch.hostedAuth().ifPresent(hostedAuth -> cloudWatchBuilder .accessKeyName(hostedAuth.accessKeyName) .secretKeyName(hostedAuth.secretKeyName)); - cloudWatch.profile().ifPresent(cloudWatchBuilder::profile); + cloudWatch.sharedCredentials().ifPresent(sharedCredentials -> cloudWatchBuilder + .profile(sharedCredentials.profile) + .file(sharedCredentials.file)); builder.cloudWatch(cloudWatchBuilder); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java index fd290409ea5..0f3543d3c36 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/CloudWatch.java @@ -13,7 +13,7 @@ public class CloudWatch { private final MetricsConsumer consumer; private HostedAuth hostedAuth; - private String profile; + private SharedCredentials sharedCredentials; public CloudWatch(String region, String namespace, MetricsConsumer consumer) { this.region = region; @@ -26,14 +26,14 @@ public class CloudWatch { public String consumer() { return consumer.getId(); } public Optional<HostedAuth> hostedAuth() {return Optional.ofNullable(hostedAuth); } - public Optional<String> profile() { return Optional.ofNullable(profile); } + public Optional<SharedCredentials> sharedCredentials() {return Optional.ofNullable(sharedCredentials); } - public void setHostedAuth(HostedAuth hostedAuth) { - this.hostedAuth = hostedAuth; + public void setHostedAuth(String accessKeyName, String secretKeyName) { + hostedAuth = new HostedAuth(accessKeyName, secretKeyName); } - public void setProfile(String profile) { - this.profile = profile; + public void setSharedCredentials(String profile, String file) { + sharedCredentials = new SharedCredentials(profile, file); } public static class HostedAuth { @@ -46,4 +46,14 @@ public class CloudWatch { } } + public static class SharedCredentials { + public final String profile; + public final String file; + + public SharedCredentials(String profile, String file) { + this.profile = profile; + this.file = file; + } + } + } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/CloudWatchBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/CloudWatchBuilder.java index 74a389b0c9e..5ce941d6638 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/CloudWatchBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/CloudWatchBuilder.java @@ -19,6 +19,7 @@ public class CloudWatchBuilder { private static final String SECRET_KEY_ATTRIBUTE = "secret-key-name"; private static final String SHARED_CREDENTIALS_ELEMENT = "shared-credentials"; private static final String PROFILE_ATTRIBUTE = "profile"; + private static final String FILE_ATTRIBUTE = "file"; public static CloudWatch buildCloudWatch(Element cloudwatchElement, MetricsConsumer consumer) { CloudWatch cloudWatch = new CloudWatch(cloudwatchElement.getAttribute(REGION_ATTRIBUTE), @@ -26,10 +27,12 @@ public class CloudWatchBuilder { consumer); getOptionalChild(cloudwatchElement, CREDENTIALS_ELEMENT) - .ifPresent(elem -> cloudWatch.setHostedAuth(new HostedAuth(elem.getAttribute(ACCESS_KEY_ATTRIBUTE), - elem.getAttribute(SECRET_KEY_ATTRIBUTE)))); + .ifPresent(elem -> cloudWatch.setHostedAuth(elem.getAttribute(ACCESS_KEY_ATTRIBUTE), + elem.getAttribute(SECRET_KEY_ATTRIBUTE))); + getOptionalChild(cloudwatchElement, SHARED_CREDENTIALS_ELEMENT) - .ifPresent(elem -> cloudWatch.setProfile(elem.getAttribute(PROFILE_ATTRIBUTE))); + .ifPresent(elem -> cloudWatch.setSharedCredentials(elem.getAttribute(PROFILE_ATTRIBUTE), + elem.getAttribute(FILE_ATTRIBUTE))); return cloudWatch; } diff --git a/metrics-proxy/src/main/resources/configdefinitions/telegraf.def b/metrics-proxy/src/main/resources/configdefinitions/telegraf.def index cb03ce6f1f6..8a87b92cd60 100644 --- a/metrics-proxy/src/main/resources/configdefinitions/telegraf.def +++ b/metrics-proxy/src/main/resources/configdefinitions/telegraf.def @@ -19,3 +19,4 @@ cloudWatch[].secretKeyName string default="" # Only valid and optional for self-hosted Vespa cloudWatch[].profile string default="" +cloudWatch[].file string default="" |