private QueryTask.Query createClosureDescClause(String query, List<String> tenantLinks) { QueryTask.Query closureDescClause = new QueryTask.Query(); closureDescClause.addBooleanClause(createKindClause(ClosureDescription.class)); closureDescClause.addBooleanClause(createAnyPropertyClause(query, ClosureDescription.FIELD_NAME_NAME, ClosureDescription.FIELD_NAME_DESCRIPTION, ClosureDescription.FIELD_NAME_RUNTIME)); // if tenant is null, do a global search, if not search in tenant if (tenantLinks != null && !tenantLinks.isEmpty()) { closureDescClause .addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks)); } return closureDescClause; }
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; }
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; }
private QueryTask.Query createCompositeDescClause(String query, List<String> tenantLinks, boolean templatesParentOnly) { QueryTask.Query compositeDescClause = new QueryTask.Query(); compositeDescClause.addBooleanClause(createKindClause(CompositeDescription.class)); if (templatesParentOnly) { QueryTask.Query propClause = new QueryTask.Query() .setTermPropertyName(CompositeDescription.FIELD_NAME_PARENT_DESCRIPTION_LINK) .setTermMatchType(MatchType.WILDCARD) .setTermMatchValue("*"); propClause.occurance = Occurance.MUST_NOT_OCCUR; compositeDescClause.addBooleanClause(propClause); } compositeDescClause.addBooleanClause(createAnyPropertyClause(query, CompositeDescription.FIELD_NAME_NAME)); // if tenant is null, do a global search, if not search in tenant if (tenantLinks != null && !tenantLinks.isEmpty()) { compositeDescClause .addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks)); } return compositeDescClause; }
private QueryTask.Query createContainerDescClause(String query, List<String> tenantLinks, boolean templatesParentOnly) { QueryTask.Query containerDescClause = new QueryTask.Query(); containerDescClause.addBooleanClause(createKindClause(ContainerDescription.class)); containerDescClause.addBooleanClause(createAnyPropertyClause(query, ContainerDescription.FIELD_NAME_NAME, ContainerDescription.FIELD_NAME_IMAGE)); if (templatesParentOnly) { QueryTask.Query propClause = new QueryTask.Query() .setTermPropertyName(ContainerDescription.FIELD_NAME_PARENT_DESCRIPTION_LINK) .setTermMatchType(MatchType.WILDCARD) .setTermMatchValue("*"); propClause.occurance = Occurance.MUST_NOT_OCCUR; containerDescClause.addBooleanClause(propClause); } // if tenant is null, do a global search, if not search in tenant if (tenantLinks != null && !tenantLinks.isEmpty()) { containerDescClause .addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks)); } return containerDescClause; }
containerDescClause.addBooleanClause(createKindClause(ContainerDescription.class)); containerDescClause.occurance = QueryTask.Query.Occurance.SHOULD_OCCUR; closureDescClause.addBooleanClause(createKindClause(ClosureDescription.class)); closureDescClause.occurance = QueryTask.Query.Occurance.SHOULD_OCCUR;
private DeferredResult<QueryTask> removeTrustCerts(RegistryState rs) { QueryTask queryTask = new QueryTask(); queryTask.querySpec = new QueryTask.QuerySpecification(); queryTask.taskInfo.isDirect = true; Query q = Query.Builder.create() .addFieldClause(QuerySpecification .buildCompositeFieldName(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, REGISTRY_TRUST_CERTS_PROP_NAME), UriUtils.URI_WILDCARD_CHAR, MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR).build(); q.addBooleanClause(createKindClause(RegistryState.class)); queryTask.querySpec.query.addBooleanClause(q); return sendWithDeferredResult(Operation .createPost(UriUtils.buildUri(getHost(), ServiceUriPaths.CORE_QUERY_TASKS)) .setBody(queryTask) .setReferer(getHost().getUri()), QueryTask.class) .thenCompose(qrt -> { if (qrt.results.documentCount == 0 || (qrt.results.documentCount == 1 && DEFAULT_INSTANCE_LINK .equals(qrt.results.documentLinks.get(0)))) { return doRemoveTrustCerts(rs); } return DeferredResult.completed(null); }); }
Query query = new Query(); Query kindQuery = QueryUtil.createKindClause(ProjectState.class); kindQuery.setOccurance(Occurance.MUST_OCCUR); query.addBooleanClause(kindQuery);
registryTrustCertLink, MatchType.TERM, Occurance.MUST_OCCUR).build(); q.addBooleanClause(createKindClause(RegistryState.class));
private void removeTrustCerts(ContainerHostRemovalTaskState state) { QueryTask queryTask = new QueryTask(); queryTask.querySpec = new QueryTask.QuerySpecification(); queryTask.taskInfo.isDirect = true; Query q = Query.Builder.create() .addFieldClause(QuerySpecification .buildCompositeFieldName(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, ComputeConstants.HOST_TRUST_CERTS_PROP_NAME), UriUtils.URI_WILDCARD_CHAR, MatchType.WILDCARD, Occurance.MUST_NOT_OCCUR).build(); q.addBooleanClause(createKindClause(ComputeState.class)); queryTask.querySpec.query.addBooleanClause(q); sendWithDeferredResult(Operation .createPost(UriUtils.buildUri(getHost(), ServiceUriPaths.CORE_QUERY_TASKS)) .setBody(queryTask) .setReferer(getHost().getUri()), QueryTask.class) .thenAccept(qrt -> { if (qrt.results.documentCount == 0) { doRemoveTrustCerts(state); } else { proceedTo(SubStage.REMOVED_CERTIFICATES); } }).exceptionally(e -> { logWarning("Failed to remove unused trust certificate.", e); proceedTo(SubStage.REMOVED_CERTIFICATES); return null; }); }