public static QueryTask createQueryTaskForProjectAssociatedWithPlacement(ResourceState project, Query query) { QueryTask queryTask = null; if (query != null) { queryTask = QueryTask.Builder.createDirectTask().setQuery(query).build(); } else if (project != null && project.documentSelfLink != null) { queryTask = QueryUtil.buildQuery(GroupResourcePlacementState.class, true, QueryUtil.addTenantAndGroupClause(Arrays.asList(project.documentSelfLink))); } if (queryTask != null) { QueryUtil.addCountOption(queryTask); } return queryTask; }
private void assertDocumentCount(long expectedCount, Collection<String> documentLinks) throws Throwable { Query query = Query.Builder.create() .addInClause(ServiceDocument.FIELD_NAME_SELF_LINK, documentLinks).build(); QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query) .addOption(QueryOption.COUNT).build(); QueryTask returnedTask = querySynchronously(queryTask); assertThat(returnedTask.results.documentCount, is(expectedCount)); }
private static QueryTask getQueryTask() { Query computeQuery = Query.Builder.create() .addKindFieldClause(SslTrustCertificateState.class) .build(); QueryTask task = QueryTask.Builder .create() .addOption(QueryOption.CONTINUOUS) .addOption(QueryOption.EXPAND_CONTENT) .setQuery(computeQuery).build(); task.documentSelfLink = QUERY_TASK_SELF_LINK_PREFIX; task.documentExpirationTimeMicros = Utils.fromNowMicrosUtc( TimeUnit.DAYS.toMicros(QUERY_TASK_EXPIRATION_DAYS)); return task; }
@Test public void maxExpirationTimeForGroupByQuery() throws Throwable { setUpHost(false); Query query = Query.Builder.create() .addFieldClause(ServiceDocument.FIELD_NAME_KIND, Utils.buildKind(ExampleServiceState.class)) .build(); // create a group by paginated query with MAX expiration time QueryTask queryTask = QueryTask.Builder.createDirectTask() .addOption(QueryOption.GROUP_BY) .setGroupResultLimit(10) .orderAscending(ExampleServiceState.FIELD_NAME_ID, TypeName.STRING) .groupOrder(ExampleServiceState.FIELD_NAME_NAME, TypeName.STRING, SortOrder.ASC) .setQuery(query).build(); queryTask.documentExpirationTimeMicros = Long.MAX_VALUE; this.host.createQueryTaskService(queryTask, false, true, queryTask, null); assertThat(this.indexService.getPaginatedSearchersByExpirationTime()) .hasSize(1) .containsOnlyKeys(Long.MAX_VALUE); }
private void verifyNumericGroupQueryPaginatedPerGroup(VerificationHost targetHost, List<Long> groups) throws Throwable { Query query = Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .build(); QueryTask queryTask = QueryTask.Builder.create() .addOption(QueryOption.GROUP_BY) .addOption(QueryOption.EXPAND_CONTENT) .setResultLimit(this.serviceCount / 5) .orderAscending(ExampleServiceState.FIELD_NAME_NAME, TypeName.STRING) .groupOrder(ExampleServiceState.FIELD_NAME_SORTED_COUNTER, TypeName.LONG, SortOrder.ASC) .setQuery(query).build(); URI queryTaskURI = this.host.createQueryTaskService(queryTask); QueryTask finalState = this.host.waitForQueryTask(queryTaskURI, TaskStage.FINISHED); int expectedCountPerPage = queryTask.querySpec.resultLimit; validateNumericGroupByResults(targetHost, groups, null, finalState, null, expectedCountPerPage); }
private void verifyGroupQueryPaginatedPerGroup(VerificationHost targetHost, List<String> groups) throws Throwable { Query query = Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .build(); QueryTask queryTask = QueryTask.Builder.create() .addOption(QueryOption.GROUP_BY) .addOption(QueryOption.EXPAND_CONTENT) .setResultLimit(this.serviceCount / 5) .orderAscending(ExampleServiceState.FIELD_NAME_ID, TypeName.STRING) .groupOrder(ExampleServiceState.FIELD_NAME_NAME, TypeName.STRING, SortOrder.ASC) .setQuery(query).build(); URI queryTaskURI = this.host.createQueryTaskService(queryTask); QueryTask finalState = this.host.waitForQueryTask(queryTaskURI, TaskStage.FINISHED); int expectedCountPerPage = queryTask.querySpec.resultLimit; validateGroupByResults(targetHost, groups, null, finalState, null, expectedCountPerPage); }
private static Operation buildLatestNonTransactionQueryTaskOp(StatefulService s, AuthorizationContext authContext) { Query.Builder queryBuilder = Query.Builder.create(); queryBuilder.addFieldClause(ServiceDocument.FIELD_NAME_SELF_LINK, s.getSelfLink()); queryBuilder.addFieldClause(ServiceDocument.FIELD_NAME_TRANSACTION_ID, "*", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR); QueryTask.Builder queryTaskBuilder = QueryTask.Builder.createDirectTask() .setQuery(queryBuilder.build()); queryTaskBuilder.addOption(QueryOption.EXPAND_CONTENT); queryTaskBuilder.addOption(QueryOption.INCLUDE_ALL_VERSIONS); queryTaskBuilder.orderDescending(ServiceDocument.FIELD_NAME_VERSION, TypeName.LONG); QueryTask task = queryTaskBuilder.build(); Operation returnOp = Operation .createPost(s.getHost(), ServiceUriPaths.CORE_QUERY_TASKS) .setBody(task); returnOp.setAuthorizationContext(authContext); return returnOp; }
private void verifyNumericGroupQueryPaginatedPerGroup(VerificationHost targetHost, List<Long> groups) throws Throwable { Query query = Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .build(); QueryTask queryTask = QueryTask.Builder.create() .addOption(QueryOption.GROUP_BY) .addOption(QueryOption.EXPAND_CONTENT) .setResultLimit(this.serviceCount / 5) .orderAscending(ExampleServiceState.FIELD_NAME_NAME, TypeName.STRING) .groupOrder(ExampleServiceState.FIELD_NAME_SORTED_COUNTER, TypeName.LONG, SortOrder.ASC) .setQuery(query).build(); URI queryTaskURI = this.host.createQueryTaskService(queryTask); QueryTask finalState = this.host.waitForQueryTask(queryTaskURI, TaskStage.FINISHED); int expectedCountPerPage = queryTask.querySpec.resultLimit; validateNumericGroupByResults(targetHost, groups, null, finalState, null, expectedCountPerPage); }
private void verifyGroupQueryPaginatedPerGroup(VerificationHost targetHost, List<String> groups) throws Throwable { Query query = Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .build(); QueryTask queryTask = QueryTask.Builder.create() .addOption(QueryOption.GROUP_BY) .addOption(QueryOption.EXPAND_CONTENT) .setResultLimit(this.serviceCount / 5) .orderAscending(ExampleServiceState.FIELD_NAME_ID, TypeName.STRING) .groupOrder(ExampleServiceState.FIELD_NAME_NAME, TypeName.STRING, SortOrder.ASC) .setQuery(query).build(); URI queryTaskURI = this.host.createQueryTaskService(queryTask); QueryTask finalState = this.host.waitForQueryTask(queryTaskURI, TaskStage.FINISHED); int expectedCountPerPage = queryTask.querySpec.resultLimit; validateGroupByResults(targetHost, groups, null, finalState, null, expectedCountPerPage); }
private Operation createEpzQueryOperation(String resourcePoolLink, boolean expandContent) { Query epzQuery = Query.Builder.create() .addKindFieldClause(ElasticPlacementZoneState.class) .addFieldClause(ElasticPlacementZoneState.FIELD_NAME_RESOURCE_POOL_LINK, resourcePoolLink) .build(); QueryTask.Builder epzQueryTaskBuilder = QueryTask.Builder.createDirectTask() .setQuery(epzQuery); if (expandContent) { epzQueryTaskBuilder.addOption(QueryOption.EXPAND_CONTENT); } Operation queryEpzOp = Operation .createPost(getHost(), ServiceUriPaths.CORE_QUERY_TASKS) .setBody(epzQueryTaskBuilder.build()) .setReferer(getUri()); return queryEpzOp; }
private static Operation buildLatestInTransactionQueryTaskOp(StatefulService s, String txid, AuthorizationContext authContext) { Query.Builder queryBuilder = Query.Builder.create(); queryBuilder.addFieldClause(ServiceDocument.FIELD_NAME_SELF_LINK, s.getSelfLink()); queryBuilder.addFieldClause(ServiceDocument.FIELD_NAME_TRANSACTION_ID, txid); QueryTask.Builder queryTaskBuilder = QueryTask.Builder.createDirectTask() .setQuery(queryBuilder.build()); queryTaskBuilder.addOption(QueryOption.EXPAND_CONTENT); queryTaskBuilder.addOption(QueryOption.INCLUDE_ALL_VERSIONS); queryTaskBuilder.orderDescending(ServiceDocument.FIELD_NAME_VERSION, TypeName.LONG); QueryTask task = queryTaskBuilder.build(); Operation returnOp = Operation .createPost(s.getHost(), ServiceUriPaths.CORE_QUERY_TASKS) .setBody(task); returnOp.setAuthorizationContext(authContext); return returnOp; }
private QueryTask makeQueryTask() { return QueryTask.Builder.createDirectTask() .setQuery(QueryTask.Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "a", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "c", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "5", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .build()) .setResultLimit(50) .build(); }
@Test public void maxExpirationTimeForPaginatedQuery() throws Throwable { setUpHost(false); Query query = Query.Builder.create() .addFieldClause(ServiceDocument.FIELD_NAME_KIND, Utils.buildKind(ExampleServiceState.class)) .build(); // create a paginated query with MAX expiration time QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query).setResultLimit(2).build(); queryTask.documentExpirationTimeMicros = Long.MAX_VALUE; this.host.createQueryTaskService(queryTask, false, true, queryTask, null); assertThat(this.indexService.getPaginatedSearchersByExpirationTime()) .hasSize(1) .containsOnlyKeys(Long.MAX_VALUE); }
private QueryTask makeQueryTask() { return QueryTask.Builder.createDirectTask() .setQuery(QueryTask.Query.Builder.create() .addKindFieldClause(ExampleServiceState.class) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "a", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "c", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .addFieldClause(ExampleServiceState.FIELD_NAME_NAME, "5", MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR) .build()) .setResultLimit(50) .build(); }
public QueryTask createTagsQueryTask(boolean deletedTags) { Query.Builder query = Query.Builder.create() .addKindFieldClause(TagState.class); if (deletedTags) { query.addFieldClause(TagState.FIELD_NAME_DELETED, Boolean.TRUE); } else { query.addFieldClause(TagState.FIELD_NAME_DELETED, Boolean.FALSE); } return QueryTask.Builder.createDirectTask() .addOption(QueryOption.EXPAND_CONTENT) .setQuery(query.build()) .build(); }
private QueryTask createGraphQueryStage(int stageIndex) { QueryTask stage = QueryTask.Builder.create() .addOption(QueryOption.SELECT_LINKS) .addLinkTerm(QueryValidationServiceState.FIELD_NAME_SERVICE_LINKS) .setQuery(Query.Builder.create() .addRangeClause(QueryValidationServiceState.FIELD_NAME_LONG_VALUE, NumericRange.createLongRange((long) stageIndex, (long) stageIndex, true, true)) .addKindFieldClause(QueryValidationServiceState.class) .build()) .build(); return stage; }
private Long getDocumentCount(VerificationHost host, String factoryLink) { QueryTask queryTask = QueryTask.Builder .createDirectTask() .addOption(QueryOption.INCLUDE_ALL_VERSIONS) .addOption(QueryOption.COUNT) .setQuery( Query.Builder.create().addFieldClause(ServiceDocument.FIELD_NAME_SELF_LINK, factoryLink, MatchType.PREFIX).build()) .build(); host.createQueryTaskService(queryTask, false, true, queryTask, null); return queryTask.results.documentCount; } }
private QueryTask createGraphQueryStage(int stageIndex) { QueryTask stage = QueryTask.Builder.create() .addOption(QueryOption.SELECT_LINKS) .addLinkTerm(QueryValidationServiceState.FIELD_NAME_SERVICE_LINKS) .setQuery(Query.Builder.create() .addRangeClause(QueryValidationServiceState.FIELD_NAME_LONG_VALUE, NumericRange.createLongRange((long) stageIndex, (long) stageIndex, true, true)) .addKindFieldClause(QueryValidationServiceState.class) .build()) .build(); return stage; }
private void doThroughputPostWithNoQueryResults(boolean interleaveQueries, URI factoryUri) throws Throwable { // Create a query which will match no documents. This code path is designed to simulate // the cost of queries on the index without incurring the cost of processing results. QueryTask queryTask = QueryTask.Builder.createDirectTask() .setQuery(Query.Builder.create() .addFieldClause(ExampleServiceState.FIELD_NAME_ID, "saffsdfs") .build()) .build(); queryTask.indexLink = this.indexLink; doThroughputPost(interleaveQueries, factoryUri, null, queryTask); }
private void doThroughputPostWithNoQueryResults(boolean interleaveQueries, URI factoryUri) throws Throwable { // Create a query which will match no documents. This code path is designed to simulate // the cost of queries on the index without incurring the cost of processing results. QueryTask queryTask = QueryTask.Builder.createDirectTask() .setQuery(Query.Builder.create() .addFieldClause(ExampleServiceState.FIELD_NAME_ID, "saffsdfs") .build()) .build(); queryTask.indexLink = this.indexLink; doThroughputPost(interleaveQueries, factoryUri, null, queryTask); }