Use SitePaths to acquire GCP Credentials
Credential path will be expected in the gerritsite/etc/ directory.
Change-Id: I1775e05cdc0f68e5458b4de43b42ca6ed9fe71cc
diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
index 88fff7c..826d4db 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
@@ -26,6 +26,8 @@
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.gerrit.server.config.SitePaths;
+import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
@@ -46,6 +48,8 @@
public static final String SECTION = "ref-database";
public static final String SUBSECTION = "spanner";
+ private SitePaths sitePaths;
+
@Override
protected void configure() {
logger.atInfo().log("Configuring Cloud Spanner for global refdb.");
@@ -61,6 +65,11 @@
listener().to(HeartbeatExecutorProvider.class);
}
+ @Inject
+ Module(SitePaths sitePaths) {
+ this.sitePaths = sitePaths;
+ }
+
@Provides
@Singleton
private Config Configuration(PluginConfigFactory configFactory, @PluginName String pluginName) {
@@ -79,7 +88,8 @@
} else {
String credentialsPath = getString(cfg, SECTION, SUBSECTION, CREDENTIALS_KEY, null);
GoogleCredentials credentials =
- GoogleCredentials.fromStream(new FileInputStream(credentialsPath));
+ GoogleCredentials.fromStream(
+ new FileInputStream(sitePaths.etc_dir.resolve(credentialsPath).toString()));
options = SpannerOptions.newBuilder().setCredentials(credentials).build();
}
return options;
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index f715531..7d1159b 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -9,7 +9,7 @@
instance = spanner-instance
database = global-refdb
useEmulator = false
- credentialsPath = /path/to/credentials.json
+ credentialsPath = credentials.json
```
`ref-database.spanner.instance`
@@ -25,5 +25,5 @@
`Default: false.`
`ref-database.spanner.credentialsPath`
-: Required when not using the emulator. The path to Google cloud credentials.
+: Required when not using the emulator. The name of the google cloud credentials file in the site/etc directory.
`Default: null.`