@@ -51,7 +51,7 @@ public void testFetchInstanceData_returnsIpAddresses()
5151 throws ExecutionException , InterruptedException , GeneralSecurityException ,
5252 OperatorCreationException {
5353 MockAdminApi mockAdminApi =
54- buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , DEFAULT_BASE_URL );
54+ buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , DEFAULT_BASE_URL , false );
5555 ConnectorConfig config = new ConnectorConfig .Builder ().build ();
5656 ConnectionInfoRepository repo =
5757 new StubConnectionInfoRepositoryFactory (mockAdminApi .getHttpTransport ())
@@ -85,7 +85,45 @@ public void testFetchInstanceData_returnsPscForNonIpDatabase()
8585 null ,
8686 DATABASE_VERSION ,
8787 SAMPLE_PCS_DNS_NAME ,
88- DEFAULT_BASE_URL );
88+ DEFAULT_BASE_URL ,
89+ false );
90+ mockAdminApi .addGenerateEphemeralCertResponse (
91+ INSTANCE_CONNECTION_NAME , Duration .ofHours (1 ), DEFAULT_BASE_URL );
92+ ConnectorConfig config = new ConnectorConfig .Builder ().build ();
93+
94+ ConnectionInfoRepository repo =
95+ new StubConnectionInfoRepositoryFactory (mockAdminApi .getHttpTransport ())
96+ .create (new StubCredentialFactory ().create (), config );
97+
98+ ConnectionInfo connectionInfo =
99+ repo .getConnectionInfo (
100+ new CloudSqlInstanceName (INSTANCE_CONNECTION_NAME ),
101+ () -> Optional .empty (),
102+ AuthType .PASSWORD ,
103+ newTestExecutor (),
104+ Futures .immediateFuture (mockAdminApi .getClientKeyPair ()))
105+ .get ();
106+ assertThat (connectionInfo .getSslContext ()).isInstanceOf (SSLContext .class );
107+
108+ Map <IpType , String > ipAddrs = connectionInfo .getIpAddrs ();
109+ assertThat (ipAddrs .get (IpType .PSC )).isEqualTo (SAMPLE_PCS_DNS_NAME );
110+ assertThat (ipAddrs .size ()).isEqualTo (1 );
111+ }
112+
113+ @ Test
114+ public void testFetchInstanceData_legacyPscDns_returnsPscForNonIpDatabase ()
115+ throws ExecutionException , InterruptedException , GeneralSecurityException ,
116+ OperatorCreationException {
117+
118+ MockAdminApi mockAdminApi = new MockAdminApi ();
119+ mockAdminApi .addConnectSettingsResponse (
120+ INSTANCE_CONNECTION_NAME ,
121+ null ,
122+ null ,
123+ DATABASE_VERSION ,
124+ SAMPLE_PCS_DNS_NAME ,
125+ DEFAULT_BASE_URL ,
126+ true );
89127 mockAdminApi .addGenerateEphemeralCertResponse (
90128 INSTANCE_CONNECTION_NAME , Duration .ofHours (1 ), DEFAULT_BASE_URL );
91129 ConnectorConfig config = new ConnectorConfig .Builder ().build ();
@@ -122,7 +160,8 @@ private ListeningScheduledExecutorService newTestExecutor() {
122160 public void testFetchInstanceData_throwsException_whenIamAuthnIsNotSupported ()
123161 throws GeneralSecurityException , OperatorCreationException {
124162 MockAdminApi mockAdminApi =
125- buildMockAdminApi (INSTANCE_CONNECTION_NAME , "SQLSERVER_2019_STANDARD" , DEFAULT_BASE_URL );
163+ buildMockAdminApi (
164+ INSTANCE_CONNECTION_NAME , "SQLSERVER_2019_STANDARD" , DEFAULT_BASE_URL , false );
126165 ConnectorConfig config = new ConnectorConfig .Builder ().build ();
127166 ConnectionInfoRepository repo =
128167 new StubConnectionInfoRepositoryFactory (mockAdminApi .getHttpTransport ())
@@ -149,7 +188,7 @@ public void testFetchInstanceData_throwsException_whenIamAuthnIsNotSupported()
149188 public void testFetchInstanceData_throwsException_whenRequestsTimeout ()
150189 throws GeneralSecurityException , OperatorCreationException {
151190 MockAdminApi mockAdminApi =
152- buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , DEFAULT_BASE_URL );
191+ buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , DEFAULT_BASE_URL , false );
153192 ConnectorConfig config = new ConnectorConfig .Builder ().build ();
154193 ConnectionInfoRepository repo =
155194 new StubConnectionInfoRepositoryFactory (new BadConnectionFactory ())
@@ -182,7 +221,7 @@ public void testSetAdminUrl_FetchInstanceData_returnsIpAddresses()
182221 String adminServicePath = "sqladmin/" ;
183222 String baseUrl = adminRootUrl + adminServicePath ;
184223 MockAdminApi mockAdminApi =
185- buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , baseUrl );
224+ buildMockAdminApi (INSTANCE_CONNECTION_NAME , DATABASE_VERSION , baseUrl , false );
186225 ConnectorConfig config =
187226 new ConnectorConfig .Builder ()
188227 .withAdminRootUrl (adminRootUrl )
@@ -210,7 +249,7 @@ public void testSetAdminUrl_FetchInstanceData_returnsIpAddresses()
210249
211250 @ SuppressWarnings ("SameParameterValue" )
212251 private MockAdminApi buildMockAdminApi (
213- String instanceConnectionName , String databaseVersion , String baseUrl )
252+ String instanceConnectionName , String databaseVersion , String baseUrl , boolean legacyDnsName )
214253 throws GeneralSecurityException , OperatorCreationException {
215254 MockAdminApi mockAdminApi = new MockAdminApi ();
216255 mockAdminApi .addConnectSettingsResponse (
@@ -219,7 +258,8 @@ private MockAdminApi buildMockAdminApi(
219258 SAMPLE_PRIVATE_IP ,
220259 databaseVersion ,
221260 SAMPLE_PCS_DNS_NAME ,
222- baseUrl );
261+ baseUrl ,
262+ legacyDnsName );
223263 mockAdminApi .addGenerateEphemeralCertResponse (
224264 instanceConnectionName , Duration .ofHours (1 ), baseUrl );
225265 return mockAdminApi ;
0 commit comments