From 524184da0ea26c311b04d1a6cbd4857877441038 Mon Sep 17 00:00:00 2001 From: "J. Liu" Date: Tue, 22 Nov 2022 10:36:15 -0500 Subject: [PATCH] test(fix): update the test proxy to set app profile id and connect to emulator correctly (#1529) This change makes the test proxy work with the hermetic testing that exercises app_profile_id and emulator (https://togithub.com/googleapis/cloud-bigtable-clients-test) --- .../bigtable/testproxy/CbtTestProxy.java | 21 ++++++++++++------- test-proxy/src/main/proto/v2_test_proxy.proto | 4 +++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 5119eae41f..18e9be1e92 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -215,7 +215,12 @@ public synchronized void createClient( return; } - BigtableDataSettings.Builder settingsBuilder = BigtableDataSettings.newBuilder(); + BigtableDataSettings.Builder settingsBuilder = + BigtableDataSettings.newBuilder() + .setProjectId(request.getProjectId()) + .setInstanceId(request.getInstanceId()) + .setAppProfileId(request.getAppProfileId()); + if (request.hasPerOperationTimeout()) { Duration newTimeout = Duration.ofMillis(Durations.toMillis(request.getPerOperationTimeout())); settingsBuilder = overrideTimeoutSetting(newTimeout, settingsBuilder); @@ -227,13 +232,13 @@ public synchronized void createClient( // Create and store CbtClient for later use try { - settingsBuilder - .setProjectId(request.getProjectId()) - .setInstanceId(request.getInstanceId()) - .stubSettings() - .setEndpoint(request.getDataTarget()) - .setTransportChannelProvider(getTransportChannel()) - .setCredentialsProvider(getCredentialsProvider()); + if (!request.getDataTarget().equals("emulator")) { + settingsBuilder + .stubSettings() + .setEndpoint(request.getDataTarget()) + .setTransportChannelProvider(getTransportChannel()) + .setCredentialsProvider(getCredentialsProvider()); + } BigtableDataSettings settings = settingsBuilder.build(); BigtableDataClient client = BigtableDataClient.create(settings); CbtClient cbtClient = CbtClient.create(settings, client); diff --git a/test-proxy/src/main/proto/v2_test_proxy.proto b/test-proxy/src/main/proto/v2_test_proxy.proto index 76e4f7826c..43b540c463 100644 --- a/test-proxy/src/main/proto/v2_test_proxy.proto +++ b/test-proxy/src/main/proto/v2_test_proxy.proto @@ -57,7 +57,9 @@ option go_package = "./testproxypb"; message CreateClientRequest { string client_id = 1; // The "host:port" address of the data API endpoint (i.e. the backend being - // proxied to). Example: 127.0.0.1:38543 + // proxied to). Example: 127.0.0.1:38543. If you want to connect to a local + // emulator via BIGTABLE_EMULATOR_HOST environment variable, you can use + // "emulator" instead of "host:port" for this field. string data_target = 2; // The project for all calls on this client. string project_id = 3;