Skip to content

Commit 00d7e9f

Browse files
fix: Remove URL encoding in project name
1 parent a615749 commit 00d7e9f

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected com.google.iam.v1.Policy toPb(Policy policy) {
5353
}
5454

5555
private static final PathTemplate PROJECT_NAME_TEMPLATE =
56-
PathTemplate.create("projects/{project}");
56+
PathTemplate.createWithoutUrlEncoding("projects/{project}");
5757
private final DatabaseAdminClient dbClient;
5858
private final String projectId;
5959
private final SpannerRpc rpc;

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,37 @@ public void createInstance() throws Exception {
296296
assertThat(op.get().getId().getName()).isEqualTo(INSTANCE_NAME);
297297
}
298298

299+
@Test
300+
public void createInstanceWithOrgNameInProjectId() throws Exception {
301+
String projectIdWithOrg = "my-org:my-project";
302+
String instanceNameWithOrg = "projects/my-org:my-project/instances/my-instance";
303+
String configNameWithOrg = "projects/my-org:my-project/instanceConfigs/my-config";
304+
305+
InstanceAdminClient universeClient = new InstanceAdminClientImpl(projectIdWithOrg, rpc, dbClient);
306+
com.google.spanner.admin.instance.v1.Instance instance = com.google.spanner.admin.instance.v1.Instance.newBuilder()
307+
.setConfig(configNameWithOrg)
308+
.setName(instanceNameWithOrg)
309+
.setNodeCount(1)
310+
.setProcessingUnits(0)
311+
.setEdition(com.google.spanner.admin.instance.v1.Instance.Edition.ENTERPRISE_PLUS)
312+
.build();
313+
OperationFuture<com.google.spanner.admin.instance.v1.Instance, CreateInstanceMetadata>
314+
rawOperationFuture =
315+
OperationFutureUtil.immediateOperationFuture(
316+
"createInstance", instance, CreateInstanceMetadata.getDefaultInstance());
317+
when(rpc.createInstance("projects/" + projectIdWithOrg, INSTANCE_ID, instance))
318+
.thenReturn(rawOperationFuture);
319+
OperationFuture<Instance, CreateInstanceMetadata> op =
320+
universeClient.createInstance(
321+
InstanceInfo.newBuilder(InstanceId.of(projectIdWithOrg, INSTANCE_ID))
322+
.setInstanceConfigId(InstanceConfigId.of(projectIdWithOrg, CONFIG_ID))
323+
.setEdition(com.google.spanner.admin.instance.v1.Instance.Edition.ENTERPRISE_PLUS)
324+
.setNodeCount(1)
325+
.build());
326+
assertThat(op.isDone()).isTrue();
327+
assertThat(op.get().getId().getName()).isEqualTo(instanceNameWithOrg);
328+
}
329+
299330
@Test
300331
public void testCreateInstanceWithProcessingUnits() throws Exception {
301332
OperationFuture<com.google.spanner.admin.instance.v1.Instance, CreateInstanceMetadata>

0 commit comments

Comments
 (0)