aboutsummaryrefslogtreecommitdiffstats
path: root/jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java')
-rw-r--r--jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java b/jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java
new file mode 100644
index 00000000000..6223f19d6de
--- /dev/null
+++ b/jdisc-cloud-aws/src/main/java/com/yahoo/jdisc/cloud/aws/VespaAwsCredentialsProvider.java
@@ -0,0 +1,39 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+package com.yahoo.jdisc.cloud.aws;
+
+import com.amazonaws.auth.AWSCredentials;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.PropertiesCredentials;
+
+import java.nio.file.Path;
+import java.util.concurrent.atomic.AtomicReference;
+
+public class VespaAwsCredentialsProvider implements AWSCredentialsProvider {
+
+ private static final String DEFAULT_CREDENTIALS_PATH = "/opt/vespa/var/container-data/opt/vespa/conf/credentials.properties";
+
+ private final AtomicReference<AWSCredentials> credentials = new AtomicReference<>();
+ private final Path credentialsPath;
+
+ public VespaAwsCredentialsProvider() {
+ this.credentialsPath = Path.of(DEFAULT_CREDENTIALS_PATH);
+ refresh();
+ }
+
+ @Override
+ public AWSCredentials getCredentials() {
+ return credentials.get();
+ }
+
+ @Override
+ public void refresh() {
+ try {
+ // TODO : implement reading from json file
+ PropertiesCredentials propertiesCredentials = new PropertiesCredentials(this.credentialsPath.toFile());
+ credentials.set(propertiesCredentials);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to get credentials in " + credentialsPath.toString(), e);
+ }
+ }
+}