Query typeQuery = new Query(); typeQuery.setOccurance(Occurance.MUST_OCCUR); typeQuery.setTermPropertyName(ComputeState.FIELD_NAME_TYPE); typeQuery.setTermMatchValue(ComputeType.ENDPOINT_HOST.name()); queries.add(typeQuery);
QueryTask.Query parentsClause = new QueryTask.Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(body.containerHostLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); QueryTask.Query globalScopeClause = new QueryTask.Query() .setTermPropertyName(ContainerVolumeState.FIELD_NAME_SCOPE) .setTermMatchValue("global") .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); Query intermediate = new QueryTask.Query().setOccurance(Occurance.MUST_OCCUR); intermediate.addBooleanClause(parentsClause); intermediate.addBooleanClause(globalScopeClause); queryTask.querySpec.query.addBooleanClause(intermediate);
@Test public void testSimpleDoubleEqualQuery() throws Throwable { Query expected = new Query(); // The test $filter is (age eq 50.0). NumericRange<Double> r = QueryTask.NumericRange.createDoubleRange((double) 50, (double) 50, true, true); expected.setNumericRange(r); expected.setTermPropertyName("age"); String odataFilter = String.format("%s eq 50.0", expected.term.propertyName); Query actual = toQuery(odataFilter); assertQueriesEqual(actual, expected); }
q.querySpec.query.addBooleanClause(new QueryTask.Query() .setTermPropertyName(BaseKubernetesState.FIELD_NAME_PARENT_LINK) .setTermMatchValue(body.computeHostLink) .setOccurance(Occurance.MUST_OCCUR));
Query searchClause = new Query() .setTermPropertyName(RegistryState.FIELD_NAME_ADDRESS) .setTermMatchValue(registryAddress) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); queryTask.querySpec.query.addBooleanClause(searchClause); QueryUtil.addExpandOption(queryTask);
RegistryState registry = post.getBody(RegistryState.class); AssertUtil.assertNotNullOrEmpty(registry.address, "registry.address"); Query parentsClause = new Query() .setTermPropertyName(RegistryState.FIELD_NAME_ADDRESS) .setTermMatchValue(registry.address) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); queryTask.querySpec.query.addBooleanClause(parentsClause); queryTask.querySpec.query.addBooleanClause(QueryUtil .addTenantGroupAndUserClause(registry.tenantLinks)); QueryUtil.addExpandOption(queryTask);
Query nameClause = new Query() .setTermPropertyName(FavoriteImage.FIELD_NAME_NAME) .setTermMatchValue(imageToFavorite.name) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); Query registryClause = new Query() .setTermPropertyName(FavoriteImage.FIELD_NAME_REGISTRY) .setTermMatchValue(imageToFavorite.registry) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); queryTask.querySpec.query.addBooleanClause(nameClause); queryTask.querySpec.query.addBooleanClause(registryClause); queryTask.querySpec.query.addBooleanClause(tenantLinkClause);
entityStatesQuery.querySpec.query.addBooleanClause(new QueryTask.Query() .setTermPropertyName(BaseKubernetesState.FIELD_NAME_ID) .setTermMatchValue(entity.id) .setOccurance(Occurance.MUST_OCCUR));
Query parentsClause = new Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(body.containerHostLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); Query overlayClause = new Query() .setTermPropertyName(ContainerNetworkState.FIELD_NAME_DRIVER) .setTermMatchValue("overlay") .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); Query intermediate = new Query().setOccurance(Occurance.MUST_OCCUR); intermediate.addBooleanClause(parentsClause); intermediate.addBooleanClause(overlayClause); queryTask.querySpec.query.addBooleanClause(intermediate); intermediate.addBooleanClause( QueryUtil.addListValueClause(ContainerNetworkState.FIELD_NAME_NAME, callback.networkIdsAndNames.values(), MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR));
/** * Generates a ComputeState query based on the tag links defined in the elastic placement zone * and the configuration of the underlying resource pool. * * The query includes computes matched by tags and computes explicitly assigned to the RP: * is of type ComputeState AND * (compute RP * ? (match endpoint AND compute type in VM_HOST, ZONE) * : (compute type is VM_GUEST)) AND * (match-tags OR explicitly-assigned) AND * tenant links matches RP tenant links */ private static Query generateRpQuery(ElasticPlacementZoneState epz, ResourcePoolState rp) { Query.Builder tagQueryBuilder = Query.Builder.create(); for (String tagLink : epz.tagLinksToMatch) { // all tagLinksToMatch must be set on the compute tagQueryBuilder.addCollectionItemClause(ResourceState.FIELD_NAME_TAG_LINKS, tagLink); } Query kindClause = Query.Builder.create().addKindFieldClause(ComputeState.class).build(); Query assignmentClause = Query.Builder.create() .addClause(tagQueryBuilder.build().setOccurance(Occurance.SHOULD_OCCUR)) .addFieldClause(ComputeState.FIELD_NAME_RESOURCE_POOL_LINK, epz.resourcePoolLink, Occurance.SHOULD_OCCUR) .build(); Query tenantClause = QueryUtil.addTenantClause(rp.tenantLinks); Query epzQuery = Query.Builder.create() .addClauses(kindClause, assignmentClause, tenantClause) .build(); return epzQuery; }
Query query = new Query(); kindQuery.setOccurance(Occurance.MUST_OCCUR); query.addBooleanClause(kindQuery); Query groupQuery = new Query(); groupQuery.setOccurance(Occurance.MUST_OCCUR); query.addBooleanClause(groupQuery); ProjectState.FIELD_NAME_ADMINISTRATORS_USER_GROUP_LINKS), groupLinks, MatchType.TERM); adminGroupQuery.setOccurance(Occurance.SHOULD_OCCUR); groupQuery.addBooleanClause(adminGroupQuery); .buildCollectionItemName(ProjectState.FIELD_NAME_MEMBERS_USER_GROUP_LINKS), groupLinks, MatchType.TERM); membersGroupQuery.setOccurance(Occurance.SHOULD_OCCUR); groupQuery.addBooleanClause(membersGroupQuery); .buildCollectionItemName(ProjectState.FIELD_NAME_VIEWERS_USER_GROUP_LINKS), groupLinks, MatchType.TERM); viewersGroupQuery.setOccurance(Occurance.SHOULD_OCCUR); groupQuery.addBooleanClause(viewersGroupQuery);
Query parentsClause = new Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(state.documentSelfLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); queryTask.querySpec.query.addBooleanClause(parentsClause); QueryUtil.addExpandOption(queryTask);
kubernetesQuery.querySpec.query.addBooleanClause(new Query() .setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(Utils.buildKind(stateClass)) .setOccurance(Occurance.SHOULD_OCCUR));
Query parentsClause = new Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(state.documentSelfLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); queryTask.querySpec.query.addBooleanClause(parentsClause); QueryUtil.addExpandOption(queryTask);
public static QueryTask getVolumeByHostAndNameQueryTask(String hostLink, String volumeName) { QueryTask queryTask = QueryUtil.buildQuery(ContainerVolumeState.class, true); String parentLinksItemField = QueryTask.QuerySpecification .buildCollectionItemName(ContainerVolumeState.FIELD_NAME_PARENT_LINKS); QueryTask.Query parentsClause = new QueryTask.Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(hostLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); QueryTask.Query nameClause = new QueryTask.Query() .setTermPropertyName(ContainerVolumeState.FIELD_NAME_NAME) .setCaseInsensitiveTermMatchValue(volumeName) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); QueryTask.Query stateClause = new QueryTask.Query() .setTermPropertyName(ContainerVolumeState.FIELD_NAME_POWER_STATE) .setTermMatchValue(PowerState.CONNECTED.toString()) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); Query intermediate = new QueryTask.Query().setOccurance(Occurance.MUST_OCCUR); intermediate.addBooleanClause(parentsClause); intermediate.addBooleanClause(nameClause); intermediate.addBooleanClause(stateClause); queryTask.querySpec.query.addBooleanClause(intermediate); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); return queryTask; }
/** * @param external * @param origin * @return Returns a query with the needed terms for external and origin field */ public static Query createOriginTagQuery(Boolean external, Map<String, Occurance> origin) { QueryTask.Query externalQuery = new Query() .setTermPropertyName(TagService.TagState.FIELD_NAME_EXTERNAL) .setTermMatchValue(external.toString()); externalQuery.occurance = Occurance.SHOULD_OCCUR; QueryTask.Query.Builder originClauseBuilder = QueryTask.Query.Builder.create(); for (Map.Entry<String, Occurance> entry : origin.entrySet()) { Occurance occurance = entry.getValue() == null ? Occurance.MUST_OCCUR : entry.getValue(); if (entry.getKey() != null) { originClauseBuilder.addCollectionItemClause(TagService.TagState.FIELD_NAME_ORIGIN, entry.getKey(), occurance); } } Query originQuery = originClauseBuilder.build() .setOccurance(Occurance.SHOULD_OCCUR); Query originOrExternalQuery = new Query().addBooleanClause(externalQuery) .addBooleanClause(originQuery) .setOccurance(Occurance.MUST_OCCUR); return originOrExternalQuery; }
@Test public void evaluateWithEnum2() throws QueryFilterException { Query q = Query.Builder.create() .addFieldClause("e1", QueryTask.QuerySpecification.toMatchValue(Color.RED), MatchType.TERM, Occurance.SHOULD_OCCUR) .addFieldClause("e1", QueryTask.QuerySpecification.toMatchValue(Color.BLUE), MatchType.TERM, Occurance.SHOULD_OCCUR) .build(); q.setOccurance(Occurance.MUST_NOT_OCCUR); QueryFilter filter = QueryFilter.create(q); QueryFilterDocument document = new QueryFilterDocument(); document.e1 = Color.RED; assertFalse(filter.evaluate(document, this.description)); document.e1 = Color.BLUE; assertFalse(filter.evaluate(document, this.description)); document.e1 = Color.WHITE; assertTrue(filter.evaluate(document, this.description)); }
public static QueryTask getNetworkByHostAndNameQueryTask(String hostLink, String networkName) { QueryTask queryTask = QueryUtil.buildQuery(ContainerNetworkState.class, true); String parentLinksItemField = QueryTask.QuerySpecification .buildCollectionItemName(ContainerNetworkState.FIELD_NAME_PARENT_LINKS); QueryTask.Query parentsClause = new QueryTask.Query() .setTermPropertyName(parentLinksItemField) .setTermMatchValue(hostLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); QueryTask.Query nameClause = new QueryTask.Query() .setTermPropertyName(ContainerNetworkState.FIELD_NAME_NAME) .setCaseInsensitiveTermMatchValue(networkName) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); QueryTask.Query stateClause = new QueryTask.Query() .setTermPropertyName(ContainerNetworkState.FIELD_NAME_POWER_STATE) .setTermMatchValue(PowerState.CONNECTED.toString()) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR); Query intermediate = new QueryTask.Query().setOccurance(Occurance.MUST_OCCUR); intermediate.addBooleanClause(parentsClause); intermediate.addBooleanClause(nameClause); intermediate.addBooleanClause(stateClause); queryTask.querySpec.query.addBooleanClause(intermediate); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); return queryTask; }
public static Query buildUsersQuery(List<String> userLinks) { Query resultQuery = new Query(); Query kindClause = QueryUtil.createKindClause(AuthUtil.USER_STATE_CLASS) .setOccurance(Occurance.MUST_OCCUR); Query documentLinkClause = new Query().setOccurance(Occurance.MUST_OCCUR); if (userLinks == null || userLinks.isEmpty()) { // make a query that will match no users documentLinkClause.setTermMatchType(MatchType.TERM) .setTermPropertyName(ServiceDocument.FIELD_NAME_SELF_LINK) .setTermMatchValue(USERS_QUERY_NO_USERS_SELF_LINK); } else { userLinks.stream().map((documentLink) -> { return new Query().setTermPropertyName(UserState.FIELD_NAME_SELF_LINK) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR) .setTermMatchValue(documentLink); }).forEach(documentLinkClause::addBooleanClause); } resultQuery.addBooleanClause(kindClause); resultQuery.addBooleanClause(documentLinkClause); return resultQuery; }
@Test public void expireQueryTask() throws Throwable { setUpHost(); // Create a query task with isDirect=false, testing that LuceneQueryTaskService // expires the task and sends a DELETE request. QueryTask.QuerySpecification q = new QueryTask.QuerySpecification(); q.query.setTermPropertyName(QueryValidationServiceState.FIELD_NAME_TEXT_VALUE) .setTermMatchValue(TEXT_VALUE) .setTermMatchType(MatchType.PHRASE); QueryTask task = QueryTask.create(q); task.documentExpirationTimeMicros = Utils.fromNowMicrosUtc(TimeUnit.MILLISECONDS .toMicros(250)); URI taskURI = this.host.createQueryTaskService(task, false, false, task, null); this.host.waitFor("task did not expire", () -> { if (this.host.getServiceStage(taskURI.getPath()) != null) { return false; } return true; }); verifyTaskAutoExpiration(taskURI); verifyPaginatedIndexSearcherExpiration(); }