Skip to content

Commit 56ed319

Browse files
committed
resolve #256
1 parent ed11c7b commit 56ed319

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

src/main/java/com/dtsx/astra/cli/commands/db/DbGetCmd.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
import picocli.CommandLine.Command;
1313
import picocli.CommandLine.Option;
1414

15-
import java.util.LinkedHashMap;
16-
import java.util.Optional;
15+
import java.util.*;
1716
import java.util.function.Supplier;
1817

1918
import static com.dtsx.astra.cli.operations.db.DbGetOperation.*;
@@ -78,8 +77,8 @@ private RenderableShellTable mkTable(Database dbInfo) {
7877
put("Vector", Optional.ofNullable(dbInfo.getInfo().getDbType()).orElse("").equals("vector") ? "Enabled" : "Disabled");
7978
put("Default Keyspace", dbInfo.getInfo().getKeyspace());
8079
put("Creation Time", dbInfo.getCreationTime());
81-
put("Keyspaces", dbInfo.getInfo().getKeyspaces().stream().sorted().toList());
82-
put("Regions", dbInfo.getInfo().getDatacenters().stream().map(Datacenter::getRegion).sorted().toList());
80+
put("Keyspaces", Objects.requireNonNullElse(dbInfo.getInfo().getKeyspaces(), Set.of()).stream().sorted().toList());
81+
put("Regions", Objects.requireNonNullElse(dbInfo.getInfo().getDatacenters(), Set.<Datacenter>of()).stream().map(Datacenter::getRegion).sorted().toList());
8382
}});
8483
}
8584

src/main/java/com/dtsx/astra/cli/gateways/db/DbCache.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ default void cache(Database db) {
2424

2525
val keyspaces = db.getInfo().getKeyspaces();
2626

27-
if (keyspaces.size() == 1) {
28-
cacheDbDefaultKs(id, keyspaces.stream().toList().getFirst());
29-
} else if (keyspaces.contains(DEFAULT_KEYSPACE)) {
30-
cacheDbDefaultKs(id, DEFAULT_KEYSPACE);
27+
if (keyspaces != null) {
28+
if (keyspaces.size() == 1) {
29+
cacheDbDefaultKs(id, keyspaces.stream().toList().getFirst());
30+
} else if (keyspaces.contains(DEFAULT_KEYSPACE)) {
31+
cacheDbDefaultKs(id, DEFAULT_KEYSPACE);
32+
}
3133
}
3234
}
3335

src/main/java/com/dtsx/astra/cli/gateways/db/keyspace/KeyspaceGatewayImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import lombok.val;
1212

1313
import java.util.ArrayList;
14+
import java.util.List;
1415

1516
@RequiredArgsConstructor
1617
public class KeyspaceGatewayImpl implements KeyspaceGateway {
@@ -24,11 +25,11 @@ public FoundKeyspaces findAll(DbRef dbRef) {
2425

2526
val defaultKeyspace = db.getInfo().getKeyspace();
2627

27-
if (db.getInfo().getKeyspaces() == null) {
28-
return new FoundKeyspaces(defaultKeyspace, java.util.List.of());
29-
}
28+
val keyspaces = (db.getInfo().getKeyspaces() != null)
29+
? new ArrayList<>(db.getInfo().getKeyspaces())
30+
: List.<String>of();
3031

31-
return new FoundKeyspaces(defaultKeyspace, new ArrayList<>(db.getInfo().getKeyspaces()));
32+
return new FoundKeyspaces(defaultKeyspace, keyspaces);
3233
});
3334
}
3435

src/main/java/com/dtsx/astra/cli/operations/db/DbCreateDotEnvOperation.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@
2828
import java.io.FileNotFoundException;
2929
import java.nio.file.Files;
3030
import java.nio.file.Path;
31-
import java.util.ArrayList;
32-
import java.util.List;
33-
import java.util.Optional;
34-
import java.util.Set;
31+
import java.util.*;
3532
import java.util.function.Function;
3633
import java.util.function.Supplier;
3734
import java.util.stream.Collectors;
@@ -248,7 +245,7 @@ private RegionName resolveRegion(CreateDotEnvRequest request) {
248245
private String resolveKeyspace(CreateDotEnvRequest request) {
249246
if (cachedKeyspace == null) {
250247
cachedKeyspace = request.ksRef
251-
.map(ks -> db(request).getInfo().getKeyspaces().stream()
248+
.map(ks -> Optional.ofNullable(db(request).getInfo().getKeyspaces()).orElse(Set.of()).stream()
252249
.filter(ks.name()::equalsIgnoreCase)
253250
.findFirst()
254251
.orElseThrow(() -> new KeyspaceNotFoundException(ks))

src/main/java/com/dtsx/astra/cli/operations/db/DbGetOperation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import lombok.val;
1212

1313
import java.util.Optional;
14+
import java.util.Set;
1415

1516
@RequiredArgsConstructor
1617
public class DbGetOperation implements Operation<DbInfo> {
@@ -46,9 +47,9 @@ private DbInfo mkDbInfoValue(DbGetKeys key, Database database) {
4647
case status -> database.getStatus();
4748
case cloud -> database.getInfo().getCloudProvider();
4849
case keyspace -> database.getInfo().getKeyspace();
49-
case keyspaces -> database.getInfo().getKeyspaces().stream().sorted().toList();
50+
case keyspaces -> Optional.ofNullable(database.getInfo().getKeyspaces()).orElse(Set.of()).stream().sorted().toList();
5051
case region -> database.getInfo().getRegion();
51-
case regions -> database.getInfo().getDatacenters().stream().map(Datacenter::getRegion).sorted().toList();
52+
case regions -> Optional.of(database.getInfo().getDatacenters()).orElse(Set.of()).stream().map(Datacenter::getRegion).sorted().toList();
5253
case creation_time -> database.getCreationTime();
5354
case vector -> database.getInfo().getDbType().equals("vector");
5455
};

0 commit comments

Comments
 (0)