Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,8 @@ private BigtableTableAdminClient(
this.baseClient =
new BigtableTableAdminClientV2(
stub,
(com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable) stub.awaitConsistencyCallable(),
(com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable)
stub.awaitConsistencyCallable(),
stub.awaitOptimizeRestoredTableCallable());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@
* generator cannot handle natively (e.g., chained Long Running Operations, Consistency Polling).
*/
public class BigtableTableAdminClientV2 extends BaseBigtableTableAdminClient {
private final com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable awaitConsistencyCallable;
private final com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable
awaitConsistencyCallable;
private final OperationCallable<Void, Empty, OptimizeRestoredTableMetadata>
optimizeRestoredTableOperationBaseCallable;

Expand Down Expand Up @@ -86,8 +87,8 @@ protected BigtableTableAdminClientV2(BigtableTableAdminStub stub) {
this.optimizeRestoredTableOperationBaseCallable = optimizeRestoredTableOperationBaseCallable;
}

private com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable createAwaitConsistencyCallable(
BigtableTableAdminStubSettings settings) throws IOException {
private com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable
createAwaitConsistencyCallable(BigtableTableAdminStubSettings settings) throws IOException {
ClientContext clientContext = ClientContext.create(settings);
// TODO(igorbernstein2): expose polling settings
RetrySettings pollingSettings =
Expand Down Expand Up @@ -316,8 +317,9 @@ private UnaryCallable<ConsistencyRequest, Void> getAwaitConsistencyCallable() {
return awaitConsistencyCallable;
}
throw new IllegalStateException(
"com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable not initialized. BigtableTableAdminClientV2 must be "
+ "initialized via settings to use this functionality.");
"com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallable not initialized."
+ " BigtableTableAdminClientV2 must be initialized via settings to use this"
Comment thread
jinseopkim0 marked this conversation as resolved.
Outdated
+ " functionality.");
}

private OperationCallable<Void, Empty, OptimizeRestoredTableMetadata>
Expand Down
31 changes: 19 additions & 12 deletions samples/snippets/src/main/java/com/example/bigtable/HelloWorld.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

import com.google.api.gax.rpc.NotFoundException;
import com.google.api.gax.rpc.ServerStream;
import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient;
import com.google.cloud.bigtable.admin.v2.BigtableTableAdminSettings;
import com.google.cloud.bigtable.admin.v2.BaseBigtableTableAdminSettings;
import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClientV2;
import com.google.cloud.bigtable.data.v2.BigtableDataClient;
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
import com.google.cloud.bigtable.data.v2.models.Filters.Filter;
Expand Down Expand Up @@ -63,7 +63,7 @@ public class HelloWorld {
private final String instanceId;
private final String tableId;
private final BigtableDataClient dataClient;
private final BigtableTableAdminClient adminClient;
private final BigtableTableAdminClientV2 adminClient;

public static void main(String[] args) throws Exception {

Expand Down Expand Up @@ -92,14 +92,11 @@ public HelloWorld(String projectId, String instanceId, String tableId) throws IO
dataClient = BigtableDataClient.create(settings);

// Creates the settings to configure a bigtable table admin client.
BigtableTableAdminSettings adminSettings =
BigtableTableAdminSettings.newBuilder()
.setProjectId(projectId)
.setInstanceId(instanceId)
.build();
BaseBigtableTableAdminSettings adminSettings =
BaseBigtableTableAdminSettings.newBuilder().build();

// Creates a bigtable table admin client.
adminClient = BigtableTableAdminClient.create(adminSettings);
adminClient = BigtableTableAdminClientV2.create(adminSettings);
// [END bigtable_hw_connect]
}

Expand All @@ -123,7 +120,17 @@ public void close() {
public void createTable() {
// [START bigtable_hw_create_table]
// Checks if table exists, creates table if does not exist.
if (!adminClient.exists(tableId)) {
boolean exists = false;
try {
adminClient.getTable(
com.google.bigtable.admin.v2.GetTableRequest.newBuilder()
.setName("projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId)
.build());
exists = true;
} catch (NotFoundException e) {
// ignore
}
if (!exists) {
System.out.println("Creating table: " + tableId);
String parent = "projects/" + projectId + "/instances/" + instanceId;
com.google.bigtable.admin.v2.CreateTableRequest request =
Expand All @@ -137,7 +144,7 @@ public void createTable() {
com.google.bigtable.admin.v2.ColumnFamily.getDefaultInstance())
.build())
.build();
adminClient.getBaseClient().createTable(request);
adminClient.createTable(request);
System.out.printf("Table %s created successfully%n", tableId);
}
// [END bigtable_hw_create_table]
Expand Down Expand Up @@ -270,7 +277,7 @@ public void deleteTable() {
try {
String tableName =
"projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId;
adminClient.getBaseClient().deleteTable(tableName);
adminClient.deleteTable(tableName);
System.out.printf("Table %s deleted successfully%n", tableId);
} catch (NotFoundException e) {
System.err.println("Failed to delete a non-existent table: " + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
import com.google.bigtable.admin.v2.ListInstancesRequest;
import com.google.bigtable.admin.v2.ListInstancesResponse;
import com.google.bigtable.admin.v2.StorageType;
import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminClient;
import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminSettings;
import com.google.cloud.bigtable.admin.v2.BaseBigtableInstanceAdminSettings;
import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminClientV2;
import java.io.IOException;
import java.util.Map;

Expand All @@ -56,7 +56,7 @@ public class InstanceAdminExample {
private final String projectId;
private final String clusterId;
private final String instanceId;
private final BigtableInstanceAdminClient adminClient;
private final BigtableInstanceAdminClientV2 adminClient;

public static void main(String[] args) throws IOException {

Expand All @@ -78,11 +78,11 @@ public InstanceAdminExample(String projectId, String instanceId, String clusterI
this.clusterId = clusterId;

// Creates the settings to configure a bigtable instance admin client.
BigtableInstanceAdminSettings instanceAdminSettings =
BigtableInstanceAdminSettings.newBuilder().setProjectId(projectId).build();
BaseBigtableInstanceAdminSettings instanceAdminSettings =
BaseBigtableInstanceAdminSettings.newBuilder().build();

// Creates a bigtable instance admin client.
adminClient = BigtableInstanceAdminClient.create(instanceAdminSettings);
adminClient = BigtableInstanceAdminClientV2.create(instanceAdminSettings);
}

public void run() {
Expand All @@ -104,7 +104,17 @@ void close() {
/** Demonstrates how to create a Production instance within a provided project. */
public void createProdInstance() {
// Checks if instance exists, creates instance if does not exists.
if (!adminClient.exists(instanceId)) {
boolean exists = false;
try {
adminClient.getInstance(
com.google.bigtable.admin.v2.GetInstanceRequest.newBuilder()
.setName("projects/" + projectId + "/instances/" + instanceId)
.build());
exists = true;
} catch (com.google.api.gax.rpc.NotFoundException e) {
// ignore
}
if (!exists) {
System.out.println("Instance does not exist, creating a PRODUCTION instance");
// [START bigtable_create_prod_instance]
// Creates a Production Instance with the ID "ssd-instance",
Expand All @@ -131,7 +141,7 @@ public void createProdInstance() {
.build();
// Creates a production instance with the given request.
try {
Instance instance = adminClient.getBaseClient().createInstanceAsync(request).get();
Instance instance = adminClient.createInstanceAsync(request).get();
System.out.printf("PRODUCTION type instance %s created successfully%n", instance.getName());
} catch (Exception e) {
System.err.println("Failed to create instance: " + e.getMessage());
Expand All @@ -148,7 +158,7 @@ public void listInstances() {
try {
String parent = "projects/" + projectId;
ListInstancesRequest request = ListInstancesRequest.newBuilder().setParent(parent).build();
ListInstancesResponse response = adminClient.getBaseClient().listInstances(request);
ListInstancesResponse response = adminClient.listInstances(request);
for (Instance instance : response.getInstancesList()) {
System.out.println(instance.getName());
}
Expand All @@ -166,7 +176,7 @@ public Instance getInstance() {
try {
String name = "projects/" + projectId + "/instances/" + instanceId;
GetInstanceRequest request = GetInstanceRequest.newBuilder().setName(name).build();
instance = adminClient.getBaseClient().getInstance(request);
instance = adminClient.getInstance(request);
System.out.println("Instance ID: " + instance.getName());
System.out.println("Display Name: " + instance.getDisplayName());
System.out.print("Labels: ");
Expand All @@ -190,7 +200,7 @@ public void listClusters() {
try {
String parent = "projects/" + projectId + "/instances/" + instanceId;
ListClustersRequest request = ListClustersRequest.newBuilder().setParent(parent).build();
ListClustersResponse response = adminClient.getBaseClient().listClusters(request);
ListClustersResponse response = adminClient.listClusters(request);
for (Cluster cluster : response.getClustersList()) {
System.out.println(cluster.getName());
}
Expand All @@ -207,7 +217,7 @@ public void deleteInstance() {
try {
String name = "projects/" + projectId + "/instances/" + instanceId;
DeleteInstanceRequest request = DeleteInstanceRequest.newBuilder().setName(name).build();
adminClient.getBaseClient().deleteInstance(request);
adminClient.deleteInstance(request);
System.out.println("Instance deleted: " + instanceId);
} catch (NotFoundException e) {
System.err.println("Failed to delete non-existent instance: " + e.getMessage());
Expand All @@ -233,7 +243,7 @@ public void addCluster() {
.setClusterId(CLUSTER)
.setCluster(clusterObj)
.build();
adminClient.getBaseClient().createClusterAsync(request).get();
adminClient.createClusterAsync(request).get();
System.out.printf("Cluster: %s created successfully%n", CLUSTER);
} catch (Exception e) {
System.err.println("Failed to add cluster: " + e.getMessage());
Expand All @@ -248,7 +258,7 @@ public void deleteCluster() {
try {
String name = "projects/" + projectId + "/instances/" + instanceId + "/clusters/" + CLUSTER;
DeleteClusterRequest request = DeleteClusterRequest.newBuilder().setName(name).build();
adminClient.getBaseClient().deleteCluster(request);
adminClient.deleteCluster(request);
System.out.printf("Cluster: %s deleted successfully%n", CLUSTER);
} catch (NotFoundException e) {
System.err.println("Failed to delete a non-existent cluster: " + e.getMessage());
Expand Down
Loading
Loading