Skip to content

Commit 7daad81

Browse files
committed
add fromProto to RpcPriority enum
1 parent 661df5f commit 7daad81

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@
2222
import com.google.api.gax.paging.Page;
2323
import com.google.api.gax.retrying.RetrySettings;
2424
import com.google.api.gax.rpc.DeadlineExceededException;
25+
import com.google.api.gax.rpc.TransportChannelProvider;
2526
import com.google.api.gax.rpc.UnavailableException;
27+
import com.google.auth.Credentials;
28+
import com.google.auth.oauth2.GoogleCredentials;
2629
import com.google.cloud.ByteArray;
2730
import com.google.cloud.Date;
31+
import com.google.cloud.NoCredentials;
2832
import com.google.cloud.Timestamp;
2933
import com.google.cloud.spanner.Backup;
3034
import com.google.cloud.spanner.BatchClient;
@@ -144,6 +148,8 @@
144148
import com.google.spanner.v1.TypeCode;
145149
import io.grpc.Status;
146150
import io.grpc.stub.StreamObserver;
151+
import java.io.ByteArrayInputStream;
152+
import java.io.File;
147153
import java.io.IOException;
148154
import java.io.ObjectInputStream;
149155
import java.io.ObjectOutputStream;
@@ -162,6 +168,7 @@
162168
import java.util.logging.Logger;
163169
import java.util.stream.Collectors;
164170
import javax.annotation.Nullable;
171+
import org.apache.commons.io.FileUtils;
165172
import org.jetbrains.annotations.NotNull;
166173
import org.threeten.bp.Duration;
167174
import org.threeten.bp.LocalDate;
@@ -743,6 +750,20 @@ private synchronized Spanner getClient() throws IOException {
743750

744751
// Return the spanner client, create one if not exists.
745752
private synchronized Spanner getClient(long timeoutSeconds) throws IOException {
753+
// Create a cloud spanner client
754+
Credentials credentials;
755+
if (WorkerProxy.serviceKeyFile.isEmpty()) {
756+
credentials = NoCredentials.getInstance();
757+
} else {
758+
credentials =
759+
GoogleCredentials.fromStream(
760+
new ByteArrayInputStream(
761+
FileUtils.readFileToByteArray(new File(WorkerProxy.serviceKeyFile))),
762+
HTTP_TRANSPORT_FACTORY);
763+
}
764+
765+
TransportChannelProvider channelProvider =
766+
CloudUtil.newChannelProviderHelper(WorkerProxy.spannerPort);
746767

747768
Duration rpcTimeout = Duration.ofHours(1L);
748769
if (timeoutSeconds > 0) {
@@ -761,7 +782,12 @@ private synchronized Spanner getClient(long timeoutSeconds) throws IOException {
761782

762783
// Cloud Spanner Client does not support global retry settings,
763784
// Thus, we need to add retry settings to each individual stub.
764-
SpannerOptions.Builder optionsBuilder = SpannerOptions.newBuilder().setProjectId(PROJECT_ID);
785+
SpannerOptions.Builder optionsBuilder =
786+
SpannerOptions.newBuilder()
787+
.setProjectId(PROJECT_ID)
788+
.setHost(HOST_PREFIX + WorkerProxy.spannerPort)
789+
.setCredentials(credentials)
790+
.setChannelProvider(channelProvider);
765791

766792
SpannerStubSettings.Builder stubSettingsBuilder =
767793
optionsBuilder.getSpannerStubSettingsBuilder();

google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ public enum RpcPriority {
3939
RpcPriority(Priority proto) {
4040
this.proto = Preconditions.checkNotNull(proto);
4141
}
42+
43+
public static RpcPriority getEnumFromProto(Priority proto){
44+
for(RpcPriority e : RpcPriority.values()){
45+
if(e.proto.equals(proto)) return e;
46+
}
47+
return null;
48+
}
4249
}
4350

4451
/** Marker interface to mark options applicable to both Read and Query operations */

google-cloud-spanner/src/test/java/com/google/cloud/spanner/OptionsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static org.junit.Assert.assertEquals;
2121
import static org.junit.Assert.assertNotEquals;
2222
import static org.junit.Assert.assertNotNull;
23+
import static org.junit.Assert.assertNull;
2324
import static org.junit.Assert.assertThrows;
2425
import static org.junit.Assert.assertTrue;
2526

@@ -300,6 +301,14 @@ public void testUpdateOptionsPriority() {
300301
assertEquals("priority: " + priority + " ", options.toString());
301302
}
302303

304+
@Test
305+
public void testRpcPriorityEnumFromProto() {
306+
assertEquals(RpcPriority.getEnumFromProto(Priority.PRIORITY_LOW), RpcPriority.LOW);
307+
assertEquals(RpcPriority.getEnumFromProto(Priority.PRIORITY_MEDIUM), RpcPriority.MEDIUM);
308+
assertEquals(RpcPriority.getEnumFromProto(Priority.PRIORITY_HIGH), RpcPriority.HIGH);
309+
assertNull(RpcPriority.getEnumFromProto(Priority.PRIORITY_UNSPECIFIED));
310+
}
311+
303312
@Test
304313
public void testTransactionOptionsHashCode() {
305314
Options option1 = Options.fromTransactionOptions();

0 commit comments

Comments
 (0)