Skip to content

Commit d0c0331

Browse files
committed
Command astra db create
1 parent 5e7a41c commit d0c0331

File tree

9 files changed

+203
-21
lines changed

9 files changed

+203
-21
lines changed

astra-shell/astra

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22

3-
java -jar target/astra-shell-0.3.1-SNAPSHOT-shaded.jar "$@"
3+
java -jar target/astra-shell-0.3.2-SNAPSHOT-shaded.jar "$@"
44

astra-shell/dependency-reduced-pom.xml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>astra-sdk-parent</artifactId>
55
<groupId>com.datastax.astra</groupId>
6-
<version>0.3.1-SNAPSHOT</version>
6+
<version>0.3.2-SNAPSHOT</version>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
99
<artifactId>astra-shell</artifactId>
@@ -109,11 +109,14 @@
109109
<fallback>false</fallback>
110110
<verbose>true</verbose>
111111
<buildArgs>
112-
<buildArg>--no-fallback</buildArg>
113-
<buildArg>-H:ReflectionConfigurationFiles=../src/main/resources/META-INF/native-image/reflect-config.json</buildArg>
112+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
113+
<buildArg>-H:EnableURLProtocols=http,https</buildArg>
114+
<buildArg>--allow-incomplete-classpath</buildArg>
115+
<buildArg>--report-unsupported-elements-at-runtime</buildArg>
116+
<buildArg>--verbose</buildArg>
114117
</buildArgs>
115118
<classpath>
116-
<param>/Users/cedricklunven/dev/workspaces/datastax/astra-sdk-java/astra-shell/target/astra-shell-0.3.1-SNAPSHOT-shaded.jar</param>
119+
<param>/Users/cedricklunven/dev/workspaces/datastax/astra-sdk-java/astra-shell/target/astra-shell-0.3.2-SNAPSHOT-shaded.jar</param>
117120
</classpath>
118121
</configuration>
119122
</execution>
@@ -127,11 +130,14 @@
127130
<fallback>false</fallback>
128131
<verbose>true</verbose>
129132
<buildArgs>
130-
<buildArg>--no-fallback</buildArg>
131-
<buildArg>-H:ReflectionConfigurationFiles=../src/main/resources/META-INF/native-image/reflect-config.json</buildArg>
133+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
134+
<buildArg>-H:EnableURLProtocols=http,https</buildArg>
135+
<buildArg>--allow-incomplete-classpath</buildArg>
136+
<buildArg>--report-unsupported-elements-at-runtime</buildArg>
137+
<buildArg>--verbose</buildArg>
132138
</buildArgs>
133139
<classpath>
134-
<param>/Users/cedricklunven/dev/workspaces/datastax/astra-sdk-java/astra-shell/target/astra-shell-0.3.1-SNAPSHOT-shaded.jar</param>
140+
<param>/Users/cedricklunven/dev/workspaces/datastax/astra-sdk-java/astra-shell/target/astra-shell-0.3.2-SNAPSHOT-shaded.jar</param>
135141
</classpath>
136142
</configuration>
137143
</plugin>

astra-shell/pom.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,11 @@
225225
<fallback>false</fallback>
226226
<verbose>true</verbose>
227227
<buildArgs>
228-
<buildArg>--no-fallback</buildArg>
229-
<buildArg>-H:ReflectionConfigurationFiles=../src/main/resources/META-INF/native-image/reflect-config.json</buildArg>
228+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
229+
<buildArg>-H:EnableURLProtocols=http,https</buildArg>
230+
<buildArg>--allow-incomplete-classpath</buildArg>
231+
<buildArg>--report-unsupported-elements-at-runtime</buildArg>
232+
<buildArg>--verbose</buildArg>
230233
</buildArgs>
231234
<classpath>
232235
<param>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</param>

astra-shell/src/main/java/com/datastax/astra/shell/AstraCli.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.datastax.astra.shell.cmd.config.ConfigShowCommand;
1111
import com.datastax.astra.shell.cmd.config.SetupCommand;
1212
import com.datastax.astra.shell.cmd.db.CreateDatabaseCommand;
13+
import com.datastax.astra.shell.cmd.db.DatabaseCommandUtils;
1314
import com.datastax.astra.shell.cmd.db.CreateDatabaseCommand.CreateDatabaseCommandAlias1;
1415
import com.datastax.astra.shell.cmd.db.DeleteDatabaseCommand;
1516
import com.datastax.astra.shell.cmd.db.DeleteDatabaseCommand.DeleteDatabaseCommandAlias1;
@@ -101,7 +102,16 @@
101102
DeleteDatabaseCommand.class,
102103
DeleteDatabaseCommandAlias1.class,
103104
}
104-
)
105+
),
106+
// Noun then verb
107+
@Group(
108+
name = DatabaseCommandUtils.DB,
109+
description = "Commands at Database level",
110+
commands = {
111+
CreateDatabaseCommand.class,
112+
CreateDatabaseCommandAlias1.class
113+
}
114+
),
105115
})
106116
public class AstraCli {
107117

astra-shell/src/main/java/com/datastax/astra/shell/cmd/db/DatabaseCommandUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public class DatabaseCommandUtils {
2525
public static final String DBS = "dbs";
2626
/** Command constants. */
2727
public static final String DATABASES = "databases";
28+
/** Command constants. */
29+
public static final String CREATE = "create";
2830

2931
/**
3032
* Load the databaseClient by user input.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.datastax.astra.shell.cmd.db;
2+
3+
import com.github.rvesse.airline.annotations.Command;
4+
5+
/**
6+
* Create a new Database
7+
*
8+
* @author Cedrick LUNVEN (@clunven)
9+
*/
10+
@Command(
11+
name = DatabaseCommandUtils.CREATE,
12+
description = "Create a new database")
13+
public class DbCreate {
14+
15+
}

astra-shell/src/main/resources/META-INF/native-image/reflect-config.json

Lines changed: 153 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,127 @@
1212
"name":"apple.security.AppleProvider",
1313
"methods":[{"name":"<init>","parameterTypes":[] }]}
1414
,
15+
{
16+
"name":"com.datastax.astra.sdk.databases.domain.CloudProviderType",
17+
"allDeclaredFields":true,
18+
"queryAllDeclaredMethods":true}
19+
,
20+
{
21+
"name":"com.datastax.astra.sdk.databases.domain.Database",
22+
"allDeclaredFields":true,
23+
"queryAllDeclaredMethods":true,
24+
"queryAllDeclaredConstructors":true,
25+
"methods":[
26+
{"name":"<init>","parameterTypes":[] },
27+
{"name":"setAvailableActions","parameterTypes":["java.util.Set"] },
28+
{"name":"setCost","parameterTypes":["com.datastax.astra.sdk.databases.domain.DatabaseCost"] },
29+
{"name":"setCqlshUrl","parameterTypes":["java.lang.String"] },
30+
{"name":"setCreationTime","parameterTypes":["java.lang.String"] },
31+
{"name":"setDataEndpointUrl","parameterTypes":["java.lang.String"] },
32+
{"name":"setGrafanaUrl","parameterTypes":["java.lang.String"] },
33+
{"name":"setGraphqlUrl","parameterTypes":["java.lang.String"] },
34+
{"name":"setId","parameterTypes":["java.lang.String"] },
35+
{"name":"setInfo","parameterTypes":["com.datastax.astra.sdk.databases.domain.DatabaseInfo"] },
36+
{"name":"setMetrics","parameterTypes":["com.datastax.astra.sdk.databases.domain.DatabaseMetrics"] },
37+
{"name":"setOrgId","parameterTypes":["java.lang.String"] },
38+
{"name":"setOwnerId","parameterTypes":["java.lang.String"] },
39+
{"name":"setStatus","parameterTypes":["com.datastax.astra.sdk.databases.domain.DatabaseStatusType"] },
40+
{"name":"setStorage","parameterTypes":["com.datastax.astra.sdk.databases.domain.DatabaseStorage"] },
41+
{"name":"setStudioUrl","parameterTypes":["java.lang.String"] },
42+
{"name":"setTerminationTime","parameterTypes":["java.lang.String"] }
43+
]}
44+
,
45+
{
46+
"name":"com.datastax.astra.sdk.databases.domain.DatabaseCost",
47+
"allDeclaredFields":true,
48+
"queryAllDeclaredMethods":true,
49+
"queryAllDeclaredConstructors":true,
50+
"methods":[
51+
{"name":"<init>","parameterTypes":[] },
52+
{"name":"setCostPerDayCents","parameterTypes":["double"] },
53+
{"name":"setCostPerDayMRCents","parameterTypes":["double"] },
54+
{"name":"setCostPerDayParkedCents","parameterTypes":["double"] },
55+
{"name":"setCostPerHourCents","parameterTypes":["double"] },
56+
{"name":"setCostPerHourMRCents","parameterTypes":["double"] },
57+
{"name":"setCostPerHourParkedCents","parameterTypes":["double"] },
58+
{"name":"setCostPerMinCents","parameterTypes":["double"] },
59+
{"name":"setCostPerMinMRCents","parameterTypes":["double"] },
60+
{"name":"setCostPerMinParkedCents","parameterTypes":["double"] },
61+
{"name":"setCostPerMonthCents","parameterTypes":["double"] },
62+
{"name":"setCostPerMonthMRCents","parameterTypes":["double"] },
63+
{"name":"setCostPerMonthParkedCents","parameterTypes":["double"] },
64+
{"name":"setCostPerNetworkGbCents","parameterTypes":["double"] }
65+
]}
66+
,
67+
{
68+
"name":"com.datastax.astra.sdk.databases.domain.DatabaseInfo",
69+
"allDeclaredFields":true,
70+
"queryAllDeclaredMethods":true,
71+
"queryAllDeclaredConstructors":true,
72+
"methods":[
73+
{"name":"<init>","parameterTypes":[] },
74+
{"name":"setAdditionalKeyspaces","parameterTypes":["java.util.Set"] },
75+
{"name":"setCapacityUnits","parameterTypes":["int"] },
76+
{"name":"setCloudProvider","parameterTypes":["com.datastax.astra.sdk.databases.domain.CloudProviderType"] },
77+
{"name":"setDatacenters","parameterTypes":["java.util.Set"] },
78+
{"name":"setKeyspace","parameterTypes":["java.lang.String"] },
79+
{"name":"setKeyspaces","parameterTypes":["java.util.Set"] },
80+
{"name":"setName","parameterTypes":["java.lang.String"] },
81+
{"name":"setRegion","parameterTypes":["java.lang.String"] },
82+
{"name":"setTier","parameterTypes":["java.lang.String"] }
83+
]}
84+
,
85+
{
86+
"name":"com.datastax.astra.sdk.databases.domain.DatabaseMetrics",
87+
"allDeclaredFields":true,
88+
"queryAllDeclaredMethods":true,
89+
"queryAllDeclaredConstructors":true,
90+
"methods":[
91+
{"name":"<init>","parameterTypes":[] },
92+
{"name":"setErrorsTotalCount","parameterTypes":["int"] },
93+
{"name":"setLiveDataSizeBytes","parameterTypes":["int"] },
94+
{"name":"setReadRequestsTotalCount","parameterTypes":["int"] },
95+
{"name":"setWriteRequestsTotalCount","parameterTypes":["int"] }
96+
]}
97+
,
98+
{
99+
"name":"com.datastax.astra.sdk.databases.domain.DatabaseStatusType",
100+
"allDeclaredFields":true,
101+
"queryAllDeclaredMethods":true}
102+
,
103+
{
104+
"name":"com.datastax.astra.sdk.databases.domain.DatabaseStorage",
105+
"allDeclaredFields":true,
106+
"queryAllDeclaredMethods":true,
107+
"queryAllDeclaredConstructors":true,
108+
"methods":[
109+
{"name":"<init>","parameterTypes":[] },
110+
{"name":"setNodeCount","parameterTypes":["int"] },
111+
{"name":"setReplicationFactor","parameterTypes":["int"] },
112+
{"name":"setTotalStorage","parameterTypes":["int"] }
113+
]}
114+
,
115+
{
116+
"name":"com.datastax.astra.sdk.databases.domain.Datacenter",
117+
"allDeclaredFields":true,
118+
"queryAllDeclaredMethods":true,
119+
"queryAllDeclaredConstructors":true,
120+
"methods":[
121+
{"name":"<init>","parameterTypes":[] },
122+
{"name":"setCapacityUnits","parameterTypes":["int"] },
123+
{"name":"setCloudProvider","parameterTypes":["com.datastax.astra.sdk.databases.domain.CloudProviderType"] },
124+
{"name":"setId","parameterTypes":["java.lang.String"] },
125+
{"name":"setName","parameterTypes":["java.lang.String"] },
126+
{"name":"setRegion","parameterTypes":["java.lang.String"] },
127+
{"name":"setRegionClassification","parameterTypes":["java.lang.String"] },
128+
{"name":"setRegionZone","parameterTypes":["java.lang.String"] },
129+
{"name":"setSecureBundleInternalUrl","parameterTypes":["java.lang.String"] },
130+
{"name":"setSecureBundleMigrationProxyInternalUrl","parameterTypes":["java.lang.String"] },
131+
{"name":"setSecureBundleMigrationProxyUrl","parameterTypes":["java.lang.String"] },
132+
{"name":"setSecureBundleUrl","parameterTypes":["java.lang.String"] },
133+
{"name":"setTier","parameterTypes":["java.lang.String"] }
134+
]}
135+
,
15136
{
16137
"name":"com.datastax.astra.sdk.organizations.domain.ResponseAllUsers",
17138
"allDeclaredFields":true,
@@ -32,14 +153,22 @@
32153
"methods":[
33154
{"name":"<init>","parameterTypes":[] },
34155
{"name":"setId","parameterTypes":["java.lang.String"] },
35-
{"name":"setName","parameterTypes":["java.lang.String"] }
156+
{"name":"setName","parameterTypes":["java.lang.String"] },
157+
{"name":"setPolicy","parameterTypes":["com.datastax.astra.sdk.organizations.domain.RolePolicy"] }
36158
]}
37159
,
38160
{
39161
"name":"com.datastax.astra.sdk.organizations.domain.RolePolicy",
40162
"allDeclaredFields":true,
41163
"queryAllDeclaredMethods":true,
42-
"queryAllDeclaredConstructors":true}
164+
"queryAllDeclaredConstructors":true,
165+
"methods":[
166+
{"name":"<init>","parameterTypes":[] },
167+
{"name":"setActions","parameterTypes":["java.util.List"] },
168+
{"name":"setDescription","parameterTypes":["java.lang.String"] },
169+
{"name":"setEffect","parameterTypes":["java.lang.String"] },
170+
{"name":"setResources","parameterTypes":["java.util.List"] }
171+
]}
43172
,
44173
{
45174
"name":"com.datastax.astra.sdk.organizations.domain.User",
@@ -70,11 +199,13 @@
70199
,
71200
{
72201
"name":"com.datastax.astra.shell.cmd.HelpCommand",
73-
"allDeclaredFields":true}
202+
"allDeclaredFields":true,
203+
"methods":[{"name":"<init>","parameterTypes":[] }]}
74204
,
75205
{
76206
"name":"com.datastax.astra.shell.cmd.QuitCommand",
77-
"allDeclaredFields":true}
207+
"allDeclaredFields":true,
208+
"methods":[{"name":"<init>","parameterTypes":[] }]}
78209
,
79210
{
80211
"name":"com.datastax.astra.shell.cmd.config.AbstractConfigCommand",
@@ -126,35 +257,40 @@
126257
,
127258
{
128259
"name":"com.datastax.astra.shell.cmd.db.ShowDatabasesCommand",
129-
"allDeclaredFields":true}
260+
"allDeclaredFields":true,
261+
"methods":[{"name":"<init>","parameterTypes":[] }]}
130262
,
131263
{
132264
"name":"com.datastax.astra.shell.cmd.db.ShowDatabasesCommand$ShowDatabasesCommandBis",
133265
"allDeclaredFields":true}
134266
,
135267
{
136268
"name":"com.datastax.astra.shell.cmd.db.UseDatabaseCommand",
137-
"allDeclaredFields":true}
269+
"allDeclaredFields":true,
270+
"methods":[{"name":"<init>","parameterTypes":[] }]}
138271
,
139272
{
140273
"name":"com.datastax.astra.shell.cmd.iam.ShowRoleCommand",
141274
"allDeclaredFields":true}
142275
,
143276
{
144277
"name":"com.datastax.astra.shell.cmd.iam.ShowRolesCommand",
145-
"allDeclaredFields":true}
278+
"allDeclaredFields":true,
279+
"methods":[{"name":"<init>","parameterTypes":[] }]}
146280
,
147281
{
148282
"name":"com.datastax.astra.shell.cmd.iam.ShowUserCommand",
149283
"allDeclaredFields":true}
150284
,
151285
{
152286
"name":"com.datastax.astra.shell.cmd.iam.ShowUsersCommands",
153-
"allDeclaredFields":true}
287+
"allDeclaredFields":true,
288+
"methods":[{"name":"<init>","parameterTypes":[] }]}
154289
,
155290
{
156291
"name":"com.datastax.astra.shell.cmd.shell.ConnectCommand",
157-
"allDeclaredFields":true}
292+
"allDeclaredFields":true,
293+
"methods":[{"name":"<init>","parameterTypes":[] }]}
158294
,
159295
{
160296
"name":"com.datastax.astra.shell.cmd.shell.CqlShCommand",
@@ -175,7 +311,8 @@
175311
,
176312
{
177313
"name":"com.datastax.astra.shell.cmd.show.ShowConfigsCommand",
178-
"allDeclaredFields":true}
314+
"allDeclaredFields":true,
315+
"methods":[{"name":"<init>","parameterTypes":[] }]}
179316
,
180317
{
181318
"name":"com.fasterxml.jackson.databind.ext.Java7HandlersImpl",
@@ -264,6 +401,12 @@
264401
{
265402
"name":"java.util.Date"}
266403
,
404+
{
405+
"name":"java.util.HashSet",
406+
"queryAllDeclaredMethods":true,
407+
"queryAllDeclaredConstructors":true,
408+
"methods":[{"name":"<init>","parameterTypes":[] }]}
409+
,
267410
{
268411
"name":"javax.security.auth.x500.X500Principal",
269412
"fields":[{"name":"thisX500Name"}],
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[
2+
]

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
<module>astra-sdk</module>
6262
<module>astra-spring-boot-autoconfigure</module>
6363
<module>astra-spring-boot-starter</module>
64+
<!-- We do not want shell to be deployed to central -->
6465
<!-- <module>astra-shell</module> -->
6566
<module>stargate-sdk</module>
6667
</modules>

0 commit comments

Comments
 (0)