Skip to content

Commit e658fab

Browse files
committed
Test successful
1 parent 02c2a58 commit e658fab

File tree

14 files changed

+319
-190
lines changed

14 files changed

+319
-190
lines changed

astra-sdk-devops/src/main/java/com/dtsx/astra/sdk/utils/ApiLocator.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ private ApiLocator() {}
3030
public static String getApiDevopsEndpoint() {
3131
return ASTRA_ENDPOINT_DEVOPS;
3232
}
33-
34-
33+
3534
/**
3635
* REST and DOCUMENT endpoint for a database and region.
3736
*
@@ -52,6 +51,32 @@ public static final String getApiRestEndpoint(String dbId, String dbRegion) {
5251
.toString();
5352
}
5453

54+
/**
55+
* Document endpoint
56+
* @param dbId
57+
* database identifier
58+
* @param dbRegion
59+
* database region
60+
* @return
61+
* endpoint
62+
*/
63+
public static final String getApiDocumentEndpoint(String dbId, String dbRegion) {
64+
return getApiRestEndpoint(dbId, dbRegion);
65+
}
66+
67+
/**
68+
* Document endpoint
69+
* @param dbId
70+
* database identifier
71+
* @param dbRegion
72+
* database region
73+
* @return
74+
* endpoint
75+
*/
76+
public static final String getEndpointHealthCheck(String dbId, String dbRegion) {
77+
return getApiRestEndpoint(dbId, dbRegion) + "/swagger-ui/";
78+
}
79+
5580
/**
5681
* GRAPHQL endpoint for a database and region working with Schema definition
5782
*

astra-sdk/pom.xml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<version>0.3.6-SNAPSHOT</version>
1212
</parent>
1313

14+
1415
<dependencies>
1516

1617
<!-- ASTRA STREAMING -->
@@ -29,11 +30,15 @@
2930
<version>${project.version}</version>
3031
</dependency>
3132

32-
<!-- Astra Expose APIs through Stargate -->
33+
<!-- Stargate SDK as a dependency-->
3334
<dependency>
3435
<groupId>io.stargate</groupId>
3536
<artifactId>stargate-sdk</artifactId>
36-
<version>2.0.1-SNAPSHOT</version>
37+
</dependency>
38+
<dependency>
39+
<groupId>io.stargate</groupId>
40+
<artifactId>stargate-sdk-test</artifactId>
41+
<scope>test</scope>
3742
</dependency>
3843

3944
<dependency>
@@ -53,12 +58,21 @@
5358
<artifactId>jackson-databind</artifactId>
5459
</dependency>
5560
<dependency>
56-
<groupId>ch.qos.logback</groupId>
57-
<artifactId>logback-classic</artifactId>
61+
<groupId>org.slf4j</groupId>
62+
<artifactId>slf4j-api</artifactId>
63+
<version>1.7.36</version>
5864
</dependency>
5965
<dependency>
6066
<groupId>ch.qos.logback</groupId>
6167
<artifactId>logback-core</artifactId>
68+
<version>1.2.11</version>
69+
<scope>test</scope>
70+
</dependency>
71+
<dependency>
72+
<groupId>ch.qos.logback</groupId>
73+
<artifactId>logback-classic</artifactId>
74+
<version>1.2.11</version>
75+
<scope>test</scope>
6276
</dependency>
6377
<dependency>
6478
<groupId>org.junit.jupiter</groupId>

astra-sdk/src/main/java/com/datastax/astra/sdk/AstraClient.java

Lines changed: 74 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,14 @@
1818

1919
import com.datastax.astra.sdk.config.AstraClientConfig;
2020
import com.datastax.oss.driver.api.core.CqlSession;
21+
import com.dtsx.astra.sdk.utils.ApiLocator;
2122
import io.stargate.sdk.StargateClient;
23+
import io.stargate.sdk.api.SimpleTokenProvider;
2224
import io.stargate.sdk.doc.StargateDocumentApiClient;
2325
import io.stargate.sdk.gql.StargateGraphQLApiClient;
26+
import io.stargate.sdk.grpc.ServiceGrpc;
2427
import io.stargate.sdk.grpc.StargateGrpcApiClient;
28+
import io.stargate.sdk.http.ServiceHttp;
2529
import io.stargate.sdk.rest.StargateRestApiClient;
2630
import io.stargate.sdk.utils.AnsiUtils;
2731
import io.stargate.sdk.utils.Utils;
@@ -114,7 +118,6 @@ public AstraClient(AstraClientConfig config) {
114118
// ---------------------------------------------------
115119
// Devops APIS
116120
// ---------------------------------------------------
117-
118121
if (Utils.hasLength(config.getToken())) {
119122
apiDevopsOrganizations = new OrganizationsClient(config.getToken());
120123
apiDevopsDatabases = new DatabasesClient(config.getToken());
@@ -157,7 +160,6 @@ public AstraClient(AstraClientConfig config) {
157160
} else {
158161
config.getStargateConfig().withAuthCredentials("token", config.getToken());
159162
}
160-
161163
}
162164

163165
// ---------------------------------------------------
@@ -170,52 +172,82 @@ public AstraClient(AstraClientConfig config) {
170172
throw new IllegalArgumentException("Cannot retrieve db with id " + config.getDatabaseId());
171173
}
172174

173-
/* Loop on regions
175+
/* Loop on regions. for each region a DC. */
174176
db.get().getInfo().getDatacenters().stream().forEach(dc -> {
175-
config.getStargateConfig().withApiNodeDC(dc.getRegion(),
176-
new StargateNodeConfig(
177-
// node name = region, we got a single per region LB is done by Astra
178-
dc.getRegion(),
179-
// url or rest api
180-
ApiLocator.getApiRestEndpoint(config.getDatabaseId(), dc.getRegion()),
181-
// url of graphql API
177+
// Rest Api
178+
config.getStargateConfig().addServiceRest(dc.getRegion(),
179+
new ServiceHttp(dc.getRegion() + "-rest",
180+
ApiLocator.getApiRestEndpoint(config.getDatabaseId(), dc.getRegion()),
181+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), dc.getRegion())));
182+
// Document API
183+
config.getStargateConfig().addDocumentService(dc.getRegion(),
184+
new ServiceHttp(dc.getRegion() + "-doc",
185+
ApiLocator.getApiDocumentEndpoint(config.getDatabaseId(), dc.getRegion()),
186+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), dc.getRegion())));
187+
// GraphQL
188+
config.getStargateConfig().addGraphQLService(dc.getRegion(),
189+
new ServiceHttp(dc.getRegion() + "-gql",
182190
ApiLocator.getApiGraphQLEndPoint(config.getDatabaseId(), dc.getRegion()),
183-
// host for grpc
184-
ApiLocator.getApiGrpcEndPoint(config.getDatabaseId(), dc.getRegion()),
185-
// port for grpc
186-
AstraClientConfig.GRPC_PORT));
187-
188-
config.getStargateConfig()
189-
.withCqlCloudSecureConnectBundleDC(dc.getRegion(),
190-
config.getSecureConnectBundleFolder()
191-
+ File.separator
192-
+ AstraClientConfig.buildScbFileName(config.getDatabaseId(), dc.getRegion()));
193-
}
194-
);*/
191+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), dc.getRegion())));
192+
193+
if (config.getStargateConfig().isEnabledGrpc()) {
194+
// Grpc
195+
config.getStargateConfig().addGrpcService(dc.getRegion(), new ServiceGrpc(dc.getRegion() + "-grpc",
196+
ApiLocator.getApiGrpcEndPoint(config.getDatabaseId(), dc.getRegion()) + ":" + AstraClientConfig.GRPC_PORT,
197+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), dc.getRegion()), true));
198+
}
199+
200+
if (config.getStargateConfig().isEnabledCql()) {
201+
// Cloud Secure Bundle
202+
config.getStargateConfig().withCqlCloudSecureConnectBundleDC(dc.getRegion(),
203+
config.getSecureConnectBundleFolder()
204+
+ File.separator
205+
+ AstraClientConfig.buildScbFileName(config.getDatabaseId(), dc.getRegion()));
206+
}
207+
208+
config.getStargateConfig().withApiTokenProviderDC(dc.getRegion(),
209+
new SimpleTokenProvider(config.getToken()));
210+
211+
});
195212

196213
} else {
197-
/*
214+
198215
LOGGER.info("+ Cross-region failback is disabled.");
199-
config.getStargateConfig().withApiNodeDC(currentDatabaseRegion,
200-
new StargateNodeConfig(
201-
// node name = region, we got a single per region LB is done by Astra
202-
this.currentDatabaseRegion,
203-
// url or rest api
204-
ApiLocator.getApiRestEndpoint(config.getDatabaseId(), currentDatabaseRegion),
205-
// url of graphql API
206-
ApiLocator.getApiGraphQLEndPoint(config.getDatabaseId(), currentDatabaseRegion),
207-
// host for grpc
208-
ApiLocator.getApiGrpcEndPoint(config.getDatabaseId(), currentDatabaseRegion),
209-
// port for grpc
210-
AstraClientConfig.GRPC_PORT));
211-
config.getStargateConfig()
212-
.withCqlCloudSecureConnectBundleDC(currentDatabaseRegion,
213-
config.getSecureConnectBundleFolder()
214-
+ File.separator
215-
+ AstraClientConfig.buildScbFileName(config.getDatabaseId(), currentDatabaseRegion));
216-
*/
216+
// Authentication for the DB
217+
config.getStargateConfig().withApiTokenProviderDC(currentDatabaseRegion,
218+
new SimpleTokenProvider(config.getToken()));
219+
// Rest Api
220+
config.getStargateConfig().addServiceRest(currentDatabaseRegion,
221+
new ServiceHttp(currentDatabaseRegion+ "-rest",
222+
ApiLocator.getApiRestEndpoint(config.getDatabaseId(), currentDatabaseRegion),
223+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), currentDatabaseRegion)));
224+
// Document API
225+
config.getStargateConfig().addDocumentService(currentDatabaseRegion,
226+
new ServiceHttp(currentDatabaseRegion + "-doc",
227+
ApiLocator.getApiDocumentEndpoint(config.getDatabaseId(), currentDatabaseRegion),
228+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), currentDatabaseRegion)));
229+
// GraphQL
230+
config.getStargateConfig().addGraphQLService(currentDatabaseRegion,
231+
new ServiceHttp(currentDatabaseRegion + "-gql",
232+
ApiLocator.getApiGraphQLEndPoint(config.getDatabaseId(), currentDatabaseRegion),
233+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(),currentDatabaseRegion)));
234+
// Grpc
235+
if (config.getStargateConfig().isEnabledGrpc()) {
236+
config.getStargateConfig().addGrpcService(currentDatabaseRegion, new ServiceGrpc(currentDatabaseRegion + "-grpc",
237+
ApiLocator.getApiGrpcEndPoint(config.getDatabaseId(), currentDatabaseRegion) + ":" + AstraClientConfig.GRPC_PORT,
238+
ApiLocator.getEndpointHealthCheck(config.getDatabaseId(), currentDatabaseRegion), true));
239+
}
240+
241+
// CQL
242+
if (config.getStargateConfig().isEnabledCql()) {
243+
config.getStargateConfig()
244+
.withCqlCloudSecureConnectBundleDC(currentDatabaseRegion,
245+
config.getSecureConnectBundleFolder()
246+
+ File.separator
247+
+ AstraClientConfig.buildScbFileName(config.getDatabaseId(), currentDatabaseRegion));
248+
}
217249
}
218-
this.stargateClient = config.getStargateConfig().build();
250+
this.stargateClient = config.getStargateConfig().build();
219251

220252
} else {
221253
LOGGER.info("+ API(s) CqlSession [" + AnsiUtils.red("DISABLED")+ "]");
@@ -226,7 +258,6 @@ public AstraClient(AstraClientConfig config) {
226258
LOGGER.info("[" + AnsiUtils.yellow("AstraClient") + "] has been initialized.");
227259
}
228260

229-
230261
/**
231262
* Download the secure connect bundle files
232263
* @param config

astra-sdk/src/test/java/com/datastax/astra/sdk/AstraRcTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class AstraRcTest {
3939
@DisplayName("Create .astraRC without clientId/clientSecret")
4040
public void should_create_astraRc_File() {
4141
// Given
42-
Assertions.assertTrue(tmpAstraRC.delete());
42+
tmpAstraRC.delete();
4343
Assertions.assertFalse(tmpAstraRC.exists());
4444
// When
4545
AstraRc arc = new AstraRc(tmpAstraRC.getAbsolutePath());

astra-sdk/src/test/java/com/datastax/astra/sdk/AstraTestUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public class AstraTestUtils {
3131
public static final String TEST_NAMESPACE = "java";
3232

3333
/** Test constant. */
34-
public static final String TEST_REGION = "us-east-1";
34+
public static final String TEST_REGION = "us-east1";
3535

3636
/** Test constant. */
37-
public static final CloudProviderType TEST_PROVIDER = CloudProviderType.AWS;
37+
public static final CloudProviderType TEST_PROVIDER = CloudProviderType.GCP;
3838

3939
/** Test constant. */
4040
public static final String TEST_TIER = "serverless";
Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
package com.datastax.astra.sdk.stargate;
22

3+
import com.datastax.astra.sdk.AstraClient;
4+
import com.datastax.astra.sdk.AstraTestUtils;
5+
import io.stargate.sdk.test.doc.AbstractDocClientCollectionsTest;
6+
import io.stargate.sdk.test.doc.TestDocClientConstants;
7+
import org.junit.jupiter.api.BeforeAll;
8+
import org.junit.jupiter.api.DisplayName;
9+
import org.junit.jupiter.api.Order;
10+
import org.junit.jupiter.api.Test;
11+
312
/**
413
* Execute some unit tests agains collections.
514
*
615
* @author Cedrick LUNVEN (@clunven)
716
*/
8-
public class ApiDocumentCollectionsAstraTest /*extends ApiDocumentCollectionsTest */ {
9-
10-
/*
11-
* Init
12-
*
17+
public class ApiDocumentCollectionsAstraTest extends AbstractDocClientCollectionsTest {
18+
1319
@BeforeAll
1420
public static void init() {
1521
// Default client to create DB if needed
@@ -19,13 +25,13 @@ public static void init() {
1925
// Connect the client to the new created DB
2026
client = AstraClient.builder()
2127
.withToken(client.getToken().get())
22-
.withCqlKeyspace(ApiDocumentTest.TEST_NAMESPACE)
28+
.withCqlKeyspace(TestDocClientConstants.TEST_NAMESPACE)
2329
.withDatabaseId(dbId)
2430
.withDatabaseRegion(AstraTestUtils.TEST_REGION)
25-
.withoutCqlSession()
2631
.build();
27-
stargateClient = client.getStargateClient();
28-
nsClient = stargateClient.apiDocument().namespace(TEST_NAMESPACE);
32+
33+
stargateDocumentApiClient = client.getStargateClient().apiDocument();
34+
nsClient = stargateDocumentApiClient.namespace(TEST_NAMESPACE);
2935
}
3036

3137
@Test
@@ -36,15 +42,5 @@ public void e_should_set_schema() {
3642
// Not working in ASTRA
3743
// https://github.com/stargate/stargate/issues/1352
3844
}
39-
40-
/**
41-
* Close connections when ending
42-
*
43-
@AfterClass
44-
public static void closing() {
45-
if (stargateClient != null) {
46-
stargateClient.close();
47-
}
48-
}*/
4945

5046
}

0 commit comments

Comments
 (0)