Skip to content

Commit 286f727

Browse files
committed
feat(bigtable): update legacy escape hatch to return V2 admin clients
1 parent 9567312 commit 286f727

5 files changed

Lines changed: 42 additions & 11 deletions

File tree

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
public final class BigtableInstanceAdminClient implements AutoCloseable {
126126
private final String projectId;
127127
private final BigtableInstanceAdminStub stub;
128-
private final BaseBigtableInstanceAdminClient baseClient;
128+
private final BigtableInstanceAdminClientV2 baseClient;
129129

130130
/** Constructs an instance of BigtableInstanceAdminClient with the given project ID. */
131131
public static BigtableInstanceAdminClient create(@Nonnull String projectId) throws IOException {
@@ -148,7 +148,7 @@ private BigtableInstanceAdminClient(
148148
@Nonnull String projectId, @Nonnull BigtableInstanceAdminStub stub) {
149149
this.projectId = projectId;
150150
this.stub = stub;
151-
this.baseClient = BaseBigtableInstanceAdminClient.create(stub);
151+
this.baseClient = BigtableInstanceAdminClientV2.create(stub);
152152
}
153153

154154
/** Gets the project ID this client is associated with. */
@@ -157,10 +157,10 @@ public String getProjectId() {
157157
}
158158

159159
/**
160-
* Returns the modern autogenerated client. This provides access to the newest features and
160+
* Returns the modern V2 client. This provides access to the newest features and
161161
* proto-based methods.
162162
*/
163-
public BaseBigtableInstanceAdminClient getBaseClient() {
163+
public BigtableInstanceAdminClientV2 getBaseClient() {
164164
return baseClient;
165165
}
166166

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientV2.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,9 @@ public static final BigtableInstanceAdminClientV2 create(
4040
BaseBigtableInstanceAdminSettings settings) throws IOException {
4141
return new BigtableInstanceAdminClientV2(settings);
4242
}
43+
44+
/** Constructs an instance of BigtableInstanceAdminClientV2 with the given stub. */
45+
public static final BigtableInstanceAdminClientV2 create(BigtableInstanceAdminStub stub) {
46+
return new BigtableInstanceAdminClientV2(stub);
47+
}
4348
}

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import com.google.cloud.bigtable.admin.v2.models.UpdateBackupRequest;
7171
import com.google.cloud.bigtable.admin.v2.models.UpdateSchemaBundleRequest;
7272
import com.google.cloud.bigtable.admin.v2.models.UpdateTableRequest;
73+
import com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallableV2;
7374
import com.google.cloud.bigtable.admin.v2.stub.EnhancedBigtableTableAdminStub;
7475
import com.google.cloud.bigtable.data.v2.internal.TableAdminRequestContext;
7576
import com.google.common.base.Preconditions;
@@ -89,6 +90,7 @@
8990
import java.util.List;
9091
import java.util.Map;
9192
import java.util.concurrent.ExecutionException;
93+
import java.util.concurrent.ScheduledExecutorService;
9294
import javax.annotation.Nonnull;
9395

9496
/**
@@ -169,7 +171,7 @@ public final class BigtableTableAdminClient implements AutoCloseable {
169171
private final EnhancedBigtableTableAdminStub stub;
170172
private final String projectId;
171173
private final String instanceId;
172-
private final BaseBigtableTableAdminClient baseClient;
174+
private final BigtableTableAdminClientV2 baseClient;
173175

174176
/** Constructs an instance of BigtableTableAdminClient with the given project and instance IDs. */
175177
public static BigtableTableAdminClient create(
@@ -209,7 +211,22 @@ private BigtableTableAdminClient(
209211
this.projectId = projectId;
210212
this.instanceId = instanceId;
211213
this.stub = stub;
212-
this.baseClient = BaseBigtableTableAdminClient.create(stub);
214+
215+
ScheduledExecutorService backgroundExecutor =
216+
stub.getSettings().getBackgroundExecutorProvider().getExecutor();
217+
boolean shouldAutoClose = stub.getSettings().getBackgroundExecutorProvider().shouldAutoClose();
218+
219+
AwaitConsistencyCallableV2 awaitConsistencyCallable =
220+
BigtableTableAdminClientV2.createAwaitConsistencyCallable(
221+
stub, stub.getSettings(), stub.getClientContext().getClock(), backgroundExecutor);
222+
223+
this.baseClient =
224+
new BigtableTableAdminClientV2(
225+
stub,
226+
backgroundExecutor,
227+
shouldAutoClose,
228+
awaitConsistencyCallable,
229+
stub.awaitOptimizeRestoredTableCallable());
213230
}
214231

215232
/** Gets the project ID of the instance whose tables this client manages. */
@@ -223,10 +240,10 @@ public String getInstanceId() {
223240
}
224241

225242
/**
226-
* Returns the modern autogenerated client. This provides access to the newest features and
243+
* Returns the modern V2 client. This provides access to the newest features and
227244
* proto-based methods.
228245
*/
229-
public BaseBigtableTableAdminClient getBaseClient() {
246+
public BigtableTableAdminClientV2 getBaseClient() {
230247
return baseClient;
231248
}
232249

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientV2.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import com.google.bigtable.admin.v2.OptimizeRestoredTableMetadata;
3737
import com.google.bigtable.admin.v2.TableName;
3838
import com.google.cloud.bigtable.admin.v2.stub.AwaitConsistencyCallableV2;
39+
import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStub;
3940
import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings;
4041
import com.google.cloud.bigtable.admin.v2.stub.GrpcBigtableTableAdminStub;
4142
import com.google.common.base.Strings;
@@ -119,7 +120,7 @@ public static final BigtableTableAdminClientV2 create(BaseBigtableTableAdminSett
119120
}
120121

121122
protected BigtableTableAdminClientV2(
122-
GrpcBigtableTableAdminStub stub,
123+
BigtableTableAdminStub stub,
123124
@Nullable ScheduledExecutorService backgroundExecutor,
124125
boolean shouldAutoClose,
125126
@Nullable AwaitConsistencyCallableV2 awaitConsistencyCallable,
@@ -133,8 +134,8 @@ protected BigtableTableAdminClientV2(
133134
this.optimizeRestoredTableOperationBaseCallable = optimizeRestoredTableOperationBaseCallable;
134135
}
135136

136-
private static AwaitConsistencyCallableV2 createAwaitConsistencyCallable(
137-
GrpcBigtableTableAdminStub stub,
137+
static AwaitConsistencyCallableV2 createAwaitConsistencyCallable(
138+
BigtableTableAdminStub stub,
138139
BigtableTableAdminStubSettings settings,
139140
ApiClock clock,
140141
ScheduledExecutorService executor) {

java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/EnhancedBigtableTableAdminStub.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,12 @@ public UnaryCallable<ConsistencyRequest, Void> awaitConsistencyCallable() {
245245
awaitOptimizeRestoredTableCallable() {
246246
return optimizeRestoredTableOperationBaseCallable;
247247
}
248+
249+
public BigtableTableAdminStubSettings getSettings() {
250+
return settings;
251+
}
252+
253+
public ClientContext getClientContext() {
254+
return clientContext;
255+
}
248256
}

0 commit comments

Comments
 (0)