private void doInQuery(String fieldName, String fieldValue, long documentCount, long expectedResultCount) throws Throwable { QuerySpecification spec = new QuerySpecification(); spec.query = Query.Builder.create().addInClause( fieldName, Arrays.asList( UUID.randomUUID().toString(), fieldValue, UUID.randomUUID().toString())) .build(); this.host.createAndWaitSimpleDirectQuery(spec, documentCount, expectedResultCount); }
private void doInQuery(String fieldName, String fieldValue, long documentCount, long expectedResultCount) throws Throwable { QuerySpecification spec = new QuerySpecification(); spec.query = Query.Builder.create().addInClause( fieldName, Arrays.asList( UUID.randomUUID().toString(), fieldValue, UUID.randomUUID().toString())) .build(); this.host.createAndWaitSimpleDirectQuery(spec, documentCount, expectedResultCount); }
@SuppressWarnings({"rawtypes"}) private void doInCollectionQuery(String collName, Collection coll, long documentCount, long expectedResultCount) throws Throwable { for (Object val : coll) { QuerySpecification spec = new QuerySpecification(); spec.query = Query.Builder.create().addInCollectionItemClause( collName, Arrays.asList( UUID.randomUUID().toString(), (String) val, UUID.randomUUID().toString())) .build(); this.host.createAndWaitSimpleDirectQuery(spec, documentCount, expectedResultCount); } }
public void logAllDocuments(Set<URI> baseHostUris) { QueryTask task = new QueryTask(); task.setDirect(true); task.querySpec = new QuerySpecification(); task.querySpec.query.setTermPropertyName("documentSelfLink").setTermMatchValue("*"); task.querySpec.query.setTermMatchType(MatchType.WILDCARD); task.querySpec.options = EnumSet.of(QueryOption.EXPAND_CONTENT); List<Operation> ops = new ArrayList<>(); for (URI baseHost : baseHostUris) { Operation queryPost = Operation .createPost(UriUtils.buildUri(baseHost, ServiceUriPaths.CORE_QUERY_TASKS)) .setBody(task); ops.add(queryPost); } List<QueryTask> queryTasks = this.sender.sendAndWait(ops, QueryTask.class); for (QueryTask queryTask : queryTasks) { log(Utils.toJsonHtml(queryTask)); } }
private void nonpaginatedBroadcastQueryTasksOnExampleStates(VerificationHost targetHost, EnumSet<QueryOption> queryOptions) throws Throwable { QuerySpecification q = new QuerySpecification(); Query kindClause = new Query(); kindClause.setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(Utils.buildKind(ExampleServiceState.class)); q.query = kindClause; q.options = queryOptions; QueryTask task = QueryTask.create(q); URI taskUri = this.host.createQueryTaskService(task, false, task.taskInfo.isDirect, task, null); task = this.host.waitForQueryTaskCompletion(task.querySpec, 0, 0, taskUri, false, false); QueryTask rsp = this.host.getTestRequestSender().sendAndWait(Operation.createGet(taskUri), QueryTask.class); assertNotNull(rsp.results.documentCount); assertEquals(this.serviceCount, rsp.results.documentCount.intValue()); assertNotNull(rsp.results.queryTimeMicros); }
@SuppressWarnings({"rawtypes"}) private void doInCollectionQuery(String collName, Collection coll, long documentCount, long expectedResultCount) throws Throwable { for (Object val : coll) { QuerySpecification spec = new QuerySpecification(); spec.query = Query.Builder.create().addInCollectionItemClause( collName, Arrays.asList( UUID.randomUUID().toString(), (String) val, UUID.randomUUID().toString())) .build(); this.host.createAndWaitSimpleDirectQuery(spec, documentCount, expectedResultCount); } }
private void nonpaginatedBroadcastQueryTasksOnExampleStates(VerificationHost targetHost, EnumSet<QueryOption> queryOptions) throws Throwable { QuerySpecification q = new QuerySpecification(); Query kindClause = new Query(); kindClause.setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(Utils.buildKind(ExampleServiceState.class)); q.query = kindClause; q.options = queryOptions; QueryTask task = QueryTask.create(q); URI taskUri = this.host.createQueryTaskService(task, false, task.taskInfo.isDirect, task, null); task = this.host.waitForQueryTaskCompletion(task.querySpec, 0, 0, taskUri, false, false); QueryTask rsp = this.host.getTestRequestSender().sendAndWait(Operation.createGet(taskUri), QueryTask.class); assertNotNull(rsp.results.documentCount); assertEquals(this.serviceCount, rsp.results.documentCount.intValue()); assertNotNull(rsp.results.queryTimeMicros); }
private void queryAllVersions(ExampleVersionRetentionState serviceState, int versionRetentionLimit, int versionRetentionFloor) { QueryTask.Query.Builder b = QueryTask.Query.Builder.create(); b.addFieldClause(ServiceDocument.FIELD_NAME_SELF_LINK, serviceState.documentSelfLink, QueryTask.Query.Occurance.SHOULD_OCCUR); QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query = b.build(); q.options = EnumSet.of(QueryOption.COUNT, QueryOption.INCLUDE_ALL_VERSIONS); this.host.waitFor("Version retention failed to remove some documents", () -> { QueryTask qt = QueryTask.create(q).setDirect(true); this.host.createQueryTaskService(UriUtils.buildUri(this.host, ServiceUriPaths .CORE_QUERY_TASKS), qt, false, true, qt, null); return qt.results.documentCount >= versionRetentionFloor && qt.results.documentCount <= versionRetentionLimit; }); }
private State triggerMigrationTask(URI sourceHostUri, URI destHostUri) { State state = new State(); state.destinationFactoryLink = ExampleODLService.FACTORY_LINK; state.destinationNodeGroupReference = UriUtils.buildUri(destHostUri, ServiceUriPaths.DEFAULT_NODE_GROUP); state.sourceFactoryLink = ExampleODLService.FACTORY_LINK; state.sourceNodeGroupReference = UriUtils.buildUri(sourceHostUri, ServiceUriPaths.DEFAULT_NODE_GROUP); state.maintenanceIntervalMicros = TimeUnit.SECONDS.toMicros(1); state.querySpec = new QuerySpecification(); state.querySpec.resultLimit = this.resultLimit; // specify expiration time which transcends to query pages state.documentExpirationTimeMicros = Utils.getSystemNowMicrosUtc() + TimeUnit.SECONDS.toMicros(this.taskWaitSeconds); Operation op = Operation.createPost(UriUtils.buildUri(destHostUri, MigrationTaskService.FACTORY_LINK)).setBody(state); state = this.host.getTestRequestSender().sendAndWait(op, State.class); return state; }
public static QueryTask buildQuery(String documentKind, boolean direct, QueryTask.Query... clauses) { QueryTask q = new QueryTask(); q.querySpec = new QueryTask.QuerySpecification(); q.taskInfo.isDirect = direct; QueryTask.Query kindClause = new QueryTask.Query() .setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(documentKind); q.querySpec.query.addBooleanClause(kindClause); for (QueryTask.Query query : clauses) { q.querySpec.query.addBooleanClause(query); } q.documentExpirationTimeMicros = ServiceDocumentQuery.getDefaultQueryExpiration(); return q; }
private State triggerMigrationTask(URI sourceHostUri, URI destHostUri) { State state = new State(); state.destinationFactoryLink = ExampleODLService.FACTORY_LINK; state.destinationNodeGroupReference = UriUtils.buildUri(destHostUri, ServiceUriPaths.DEFAULT_NODE_GROUP); state.sourceFactoryLink = ExampleODLService.FACTORY_LINK; state.sourceNodeGroupReference = UriUtils.buildUri(sourceHostUri, ServiceUriPaths.DEFAULT_NODE_GROUP); state.maintenanceIntervalMicros = TimeUnit.SECONDS.toMicros(1); state.querySpec = new QuerySpecification(); state.querySpec.resultLimit = this.resultLimit; // specify expiration time which transcends to query pages state.documentExpirationTimeMicros = Utils.getSystemNowMicrosUtc() + TimeUnit.SECONDS.toMicros(this.taskWaitSeconds); Operation op = Operation.createPost(UriUtils.buildUri(destHostUri, MigrationTaskService.FACTORY_LINK)).setBody(state); state = this.host.getTestRequestSender().sendAndWait(op, State.class); return state; }
private void queryAllVersions(ExampleVersionRetentionState serviceState, int versionRetentionLimit, int versionRetentionFloor) { QueryTask.Query.Builder b = QueryTask.Query.Builder.create(); b.addFieldClause(ServiceDocument.FIELD_NAME_SELF_LINK, serviceState.documentSelfLink, QueryTask.Query.Occurance.SHOULD_OCCUR); QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query = b.build(); q.options = EnumSet.of(QueryOption.COUNT, QueryOption.INCLUDE_ALL_VERSIONS); this.host.waitFor("Version retention failed to remove some documents", () -> { QueryTask qt = QueryTask.create(q).setDirect(true); this.host.createQueryTaskService(UriUtils.buildUri(this.host, ServiceUriPaths .CORE_QUERY_TASKS), qt, false, true, qt, null); return qt.results.documentCount >= versionRetentionFloor && qt.results.documentCount <= versionRetentionLimit; }); }
private ServiceDocumentQueryResult queryDocuments(String documentKind, int desiredCount) throws Throwable { QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query.setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(documentKind); q.options = EnumSet .of(QueryTask.QuerySpecification.QueryOption.EXPAND_CONTENT); return this.host .createAndWaitSimpleDirectQuery(this.host.getUri(), q, desiredCount, desiredCount, null); }
public <T extends TaskService.TaskServiceState> T getServiceStateUsingQueryTask( Class<T> type, String uri) { QueryTask.Query q = QueryTask.Query.Builder.create() .setTerm(ServiceDocument.FIELD_NAME_SELF_LINK, uri) .build(); QueryTask queryTask = new QueryTask(); queryTask.querySpec = new QueryTask.QuerySpecification(); queryTask.querySpec.query = q; queryTask.querySpec.options.add(QueryOption.EXPAND_CONTENT); this.createQueryTaskService(null, queryTask, false, true, queryTask, null); return Utils.fromJson(queryTask.results.documents.get(uri), type); }
public ServiceDocumentQueryResult createAndWaitSimpleDirectQuery(URI hostUri, String fieldName, String fieldValue, long documentCount, long expectedResultCount, TestResults testResults) { QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query.setTermPropertyName(fieldName).setTermMatchValue(fieldValue); return createAndWaitSimpleDirectQuery(hostUri, q, documentCount, expectedResultCount, testResults); }
private Builder(boolean isDirect) { this.queryTask = new QueryTask(); this.querySpec = new QuerySpecification(); this.queryTask.querySpec = this.querySpec; this.queryTask.taskInfo.isDirect = isDirect; }
private static ResourceRemovalTaskState buildValidStartState() { ResourceRemovalTaskState startState = new ResourceRemovalTaskState(); startState.resourceQuerySpec = new QueryTask.QuerySpecification(); QueryTask.Query kindClause = new QueryTask.Query().setTermPropertyName( ServiceDocument.FIELD_NAME_KIND).setTermMatchValue( Utils.buildKind(ComputeService.ComputeState.class)); startState.resourceQuerySpec.query.addBooleanClause(kindClause); startState.isMockRequest = true; return startState; }
public <T extends TaskService.TaskServiceState> T getServiceStateUsingQueryTask( Class<T> type, String uri) { QueryTask.Query q = QueryTask.Query.Builder.create() .setTerm(ServiceDocument.FIELD_NAME_SELF_LINK, uri) .build(); QueryTask queryTask = new QueryTask(); queryTask.querySpec = new QueryTask.QuerySpecification(); queryTask.querySpec.query = q; queryTask.querySpec.options.add(QueryOption.EXPAND_CONTENT); this.createQueryTaskService(null, queryTask, false, true, queryTask, null); return Utils.fromJson(queryTask.results.documents.get(uri), type); }
public ServiceDocumentQueryResult createAndWaitSimpleDirectQuery(URI hostUri, String fieldName, String fieldValue, long documentCount, long expectedResultCount, TestResults testResults) { QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query.setTermPropertyName(fieldName).setTermMatchValue(fieldValue); return createAndWaitSimpleDirectQuery(hostUri, q, documentCount, expectedResultCount, testResults); }
private ServiceDocumentQueryResult queryDocuments(String documentKind, int desiredCount) throws Throwable { QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query.setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(documentKind); q.options = EnumSet .of(QueryTask.QuerySpecification.QueryOption.EXPAND_CONTENT); return this.host .createAndWaitSimpleDirectQuery(this.host.getUri(), q, desiredCount, desiredCount, null); }