Skip to content

Commit d130e74

Browse files
authored
Use sql instance name in SecretManager (#2625)
1 parent c9c61e4 commit d130e74

File tree

4 files changed

+27
-23
lines changed

4 files changed

+27
-23
lines changed

core/src/main/java/google/registry/config/RegistryConfig.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -384,27 +384,6 @@ public static String provideCloudSqlJdbcUrl(RegistryConfigSettings config) {
384384
return config.cloudSql.jdbcUrl;
385385
}
386386

387-
@Provides
388-
@Config("cloudSqlInstanceConnectionName")
389-
public static String provideCloudSqlInstanceConnectionName(RegistryConfigSettings config) {
390-
return config.cloudSql.instanceConnectionName;
391-
}
392-
393-
@Provides
394-
@Config("cloudSqlReplicaInstanceConnectionName")
395-
public static Optional<String> provideCloudSqlReplicaInstanceConnectionName(
396-
RegistryConfigSettings config) {
397-
return Optional.ofNullable(config.cloudSql.replicaInstanceConnectionName);
398-
}
399-
400-
@Provides
401-
@Config("cloudSqlDbInstanceName")
402-
public static String provideCloudSqlDbInstance(RegistryConfigSettings config) {
403-
// Format of instanceConnectionName: project-id:region:instance-name
404-
int lastColonIndex = config.cloudSql.instanceConnectionName.lastIndexOf(':');
405-
return config.cloudSql.instanceConnectionName.substring(lastColonIndex + 1);
406-
}
407-
408387
@Provides
409388
@Config("cloudDnsRootUrl")
410389
public static Optional<String> getCloudDnsRootUrl(RegistryConfigSettings config) {

core/src/main/java/google/registry/config/RegistryConfigSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public static class Hibernate {
133133
/** Configuration for Cloud SQL. */
134134
public static class CloudSql {
135135
public String jdbcUrl;
136-
// TODO(05012021): remove username field after it is removed from all yaml files.
136+
// TODO(05012021): remove 3 fields below after they are removed from all yaml files.
137137
public String username;
138138
public String instanceConnectionName;
139139
public String replicaInstanceConnectionName;

core/src/main/java/google/registry/keyring/KeyringModule.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import google.registry.config.RegistryConfig.Config;
2222
import google.registry.keyring.api.Keyring;
2323
import java.util.Map;
24+
import java.util.Optional;
2425
import javax.inject.Singleton;
2526

2627
/** Dagger module for {@link Keyring} */
@@ -38,4 +39,25 @@ public static Keyring provideKeyring(
3839
keyrings.keySet());
3940
return keyrings.get(activeKeyring);
4041
}
42+
43+
@Provides
44+
@Config("cloudSqlInstanceConnectionName")
45+
public static String provideCloudSqlInstanceConnectionName(Keyring keyring) {
46+
return keyring.getSqlPrimaryConnectionName();
47+
}
48+
49+
@Provides
50+
@Config("cloudSqlReplicaInstanceConnectionName")
51+
public static Optional<String> provideCloudSqlReplicaInstanceConnectionName(Keyring keyring) {
52+
return Optional.ofNullable(keyring.getSqlReplicaConnectionName());
53+
}
54+
55+
@Provides
56+
@Config("cloudSqlDbInstanceName")
57+
public static String provideCloudSqlDbInstance(
58+
@Config("cloudSqlInstanceConnectionName") String instanceConnectionName) {
59+
// Format of instanceConnectionName: project-id:region:instance-name
60+
int lastColonIndex = instanceConnectionName.lastIndexOf(':');
61+
return instanceConnectionName.substring(lastColonIndex + 1);
62+
}
4163
}

core/src/main/java/google/registry/persistence/PersistenceModule.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,13 @@
3434
import dagger.Module;
3535
import dagger.Provides;
3636
import google.registry.config.RegistryConfig.Config;
37+
import google.registry.keyring.KeyringModule;
38+
import google.registry.keyring.api.DummyKeyringModule;
3739
import google.registry.persistence.transaction.CloudSqlCredentialSupplier;
3840
import google.registry.persistence.transaction.JpaTransactionManager;
3941
import google.registry.persistence.transaction.JpaTransactionManagerImpl;
4042
import google.registry.persistence.transaction.TransactionManager;
43+
import google.registry.privileges.secretmanager.SecretManagerModule;
4144
import google.registry.privileges.secretmanager.SqlCredential;
4245
import google.registry.privileges.secretmanager.SqlCredentialStore;
4346
import google.registry.privileges.secretmanager.SqlUser;
@@ -63,7 +66,7 @@
6366
import org.hibernate.cfg.Environment;
6467

6568
/** Dagger module class for the persistence layer. */
66-
@Module
69+
@Module(includes = {KeyringModule.class, SecretManagerModule.class, DummyKeyringModule.class})
6770
public abstract class PersistenceModule {
6871

6972
// This name must be the same as the one defined in persistence.xml.

0 commit comments

Comments
 (0)