Skip to content

Commit 5f377f8

Browse files
fix: address code review comments regarding instance-level tags and duplication
1 parent f1311d9 commit 5f377f8

4 files changed

Lines changed: 48 additions & 5 deletions

File tree

java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Datastore.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -643,9 +643,7 @@ AggregationResults runAggregation(
643643
* @param requestTags the request tags to append to existing ones
644644
*/
645645
default Datastore withRequestTags(String... requestTags) {
646-
ImmutableList.Builder<String> builder = ImmutableList.builder();
647-
builder.addAll(getOptions().getRequestTags()).add(requestTags);
648-
return getOptions().toBuilder().setTags(builder.build()).build().getService();
646+
return withRequestTags(java.util.Arrays.asList(requestTags));
649647
}
650648

651649
/**

java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/QueryResultsImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private void sendRequest() {
102102
if (explainOptions != null) {
103103
requestPb.setExplainOptions(explainOptions);
104104
}
105-
if (requestOptions != null) {
105+
if (requestOptions != null || !datastore.getOptions().getRequestTags().isEmpty()) {
106106
requestPb.setRequestOptions(
107107
RequestOptionsHelper.createRequestOptions(datastore.getOptions(), requestOptions));
108108
}

java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/execution/request/AggregationQueryRequestProtoPreparer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public RunAggregationQueryRequest prepare(QueryConfig<AggregationQuery> queryCon
7575
readOptionsPb.ifPresent(aggregationQueryRequestBuilder::setReadOptions);
7676

7777
// add request options to the request.
78-
if (queryConfig.getRequestOptions() != null) {
78+
if (queryConfig.getRequestOptions() != null || !datastoreOptions.getRequestTags().isEmpty()) {
7979
aggregationQueryRequestBuilder.setRequestOptions(
8080
createRequestOptions(datastoreOptions, queryConfig.getRequestOptions()));
8181
}

java-datastore/google-cloud-datastore/src/test/java/com/google/cloud/datastore/AbstractDatastoreTest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,6 +1400,51 @@ private Predicate<RunAggregationQueryRequest> aggregationQueryWithAlias(String a
14001400
.getAlias());
14011401
}
14021402

1403+
@Test
1404+
public void testRunQueryWithInstanceLevelRequestTags() {
1405+
DatastoreOptions optionsWithTags = options.toBuilder().setTags("instance-tag").build();
1406+
Datastore datastoreWithTags = optionsWithTags.getService();
1407+
1408+
PartitionId partitionId =
1409+
PartitionId.newBuilder()
1410+
.setProjectId(PROJECT_ID)
1411+
.setDatabaseId(options.getDatabaseId())
1412+
.setNamespaceId(options.getNamespace())
1413+
.build();
1414+
1415+
com.google.datastore.v1.Query queryPb =
1416+
com.google.datastore.v1.Query.newBuilder()
1417+
.addKind(com.google.datastore.v1.KindExpression.newBuilder().setName(KIND1))
1418+
.build();
1419+
1420+
RunQueryRequest expectedRequest =
1421+
RunQueryRequest.newBuilder()
1422+
.setProjectId(PROJECT_ID)
1423+
.setPartitionId(partitionId)
1424+
.setQuery(queryPb)
1425+
.setRequestOptions(
1426+
com.google.datastore.v1.RequestOptions.newBuilder().addRequestTags("instance-tag").build())
1427+
.build();
1428+
1429+
RunQueryResponse response =
1430+
RunQueryResponse.newBuilder()
1431+
.setBatch(
1432+
com.google.datastore.v1.QueryResultBatch.newBuilder()
1433+
.addEntityResults(EntityResult.newBuilder().setEntity(ENTITY1.toPb()))
1434+
.build())
1435+
.build();
1436+
1437+
EasyMock.expect(rpcMock.runQuery(expectedRequest)).andReturn(response);
1438+
EasyMock.replay(rpcFactoryMock, rpcMock);
1439+
1440+
Query<Entity> query = Query.newEntityQueryBuilder().setKind(KIND1).build();
1441+
QueryResults<Entity> results = datastoreWithTags.run(query);
1442+
assertTrue(results.hasNext());
1443+
assertEquals(ENTITY1, results.next());
1444+
1445+
EasyMock.verify(rpcFactoryMock, rpcMock);
1446+
}
1447+
14031448
@Test
14041449
public void testRunQueryWithRequestOptions() {
14051450
com.google.datastore.v1.RequestOptions requestOptions =

0 commit comments

Comments
 (0)