.setTermPropertyName(BaseKubernetesState.FIELD_NAME_ID) .setTermMatchValue(entity.id) .setOccurance(Occurance.MUST_OCCUR));
/** * @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; }
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; }
typeQuery.setOccurance(Occurance.MUST_OCCUR); typeQuery.setTermPropertyName(ComputeState.FIELD_NAME_TYPE); typeQuery.setTermMatchValue(ComputeType.ENDPOINT_HOST.name());
.setTermPropertyName(BaseKubernetesState.FIELD_NAME_PARENT_LINK) .setTermMatchValue(body.computeHostLink) .setOccurance(Occurance.MUST_OCCUR));
.setTermMatchValue(registryAddress) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR);
.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);
.setTermMatchValue(body.containerHostLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); .setTermMatchValue("overlay") .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR); Query intermediate = new Query().setOccurance(Occurance.MUST_OCCUR); intermediate.addBooleanClause(parentsClause); intermediate.addBooleanClause(overlayClause); QueryUtil.addListValueClause(ContainerNetworkState.FIELD_NAME_NAME, callback.networkIdsAndNames.values(), MatchType.TERM) .setOccurance(Occurance.SHOULD_OCCUR));
.setTermMatchValue(registry.address) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR);
.setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(Utils.buildKind(stateClass)) .setOccurance(Occurance.SHOULD_OCCUR));
.setTermMatchValue(state.documentSelfLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_OCCUR);
kindQuery.setOccurance(Occurance.MUST_OCCUR); query.addBooleanClause(kindQuery); 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);
.setTermMatchValue(state.documentSelfLink) .setTermMatchType(MatchType.TERM) .setOccurance(Occurance.MUST_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; }
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; }
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; }
@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)); }
private QueryTask getKubernetesStatesQueryTask() { QueryTask q = new QueryTask(); q.querySpec = new QueryTask.QuerySpecification(); q.taskInfo.isDirect = true; Iterator<Class<? extends ResourceState>> iterator = CompositeComponentRegistry.getClasses(); QueryTask.Query clause = new QueryTask.Query().setOccurance(Occurance.MUST_OCCUR); while (iterator.hasNext()) { clause.addBooleanClause(new Query() .setTermPropertyName(ServiceDocument.FIELD_NAME_KIND) .setTermMatchValue(Utils.buildKind(iterator.next())) .setOccurance(Occurance.SHOULD_OCCUR)); } q.querySpec.query.addBooleanClause(clause); q.documentExpirationTimeMicros = ServiceDocumentQuery.getDefaultQueryExpiration(); QueryUtil.addExpandOption(q); QueryUtil.addBroadcastOption(q); return q; }
private void queryComputesToUnassign(EpzComputeEnumerationTaskState state) { Query mustBeOut = Utils.clone(state.resourcePoolQuery) .setOccurance(Occurance.MUST_NOT_OCCUR); Query areIn = Query.Builder.create() .addKindFieldClause(ComputeState.class) .addCompositeFieldClause(ResourceState.FIELD_NAME_CUSTOM_PROPERTIES, EPZ_CUSTOM_PROP_NAME_PREFIX + extractRpId(state), EPZ_CUSTOM_PROP_VALUE) .build(); Query combinedQuery = Query.Builder.create().addClauses(mustBeOut, areIn).build(); queryComputes(state, combinedQuery, EpzComputeEnumerationTaskState.SubStage.UNASSIGN_COMPUTES, EpzComputeEnumerationTaskState.SubStage.QUERY_COMPUTES_TO_ASSIGN); }
public static Query buildQueryForUsers(String userGroupLink) { Query resultQuery = new Query(); Query kindClause = QueryUtil.createKindClause(AuthUtil.USER_STATE_CLASS) .setOccurance(Occurance.MUST_OCCUR); Query matchUsers = Query.Builder.create() .addInCollectionItemClause(FIELD_NAME_USER_GROUP_LINK, Collections.singletonList(userGroupLink), Occurance.MUST_OCCUR) .build(); resultQuery.addBooleanClause(kindClause); resultQuery.addBooleanClause(matchUsers); return resultQuery; }