/** * Create a query to return all RegistryState links within a group, tenant or global * RegistryState links if the tenantLinks collection is null/empty. * * @param tenantLinks * @return QueryTask */ private static Query buildQueryByTenantLinks(Collection<String> tenantLinks) { return QueryUtil.addTenantGroupAndUserClause(tenantLinks); }
public static Query addTenantGroupAndUserClause(String tenantLink) { List<String> listValues = null; if (tenantLink != null && !tenantLink.isEmpty()) { AssertUtil.assertTrue(tenantLink.startsWith(MultiTenantDocument.TENANTS_PREFIX) || tenantLink.startsWith(MultiTenantDocument.USERS_PREFIX), String.format("tenantLink does not have %s or %s prefix.", MultiTenantDocument.TENANTS_PREFIX, MultiTenantDocument.USERS_PREFIX)); listValues = Collections.singletonList(tenantLink); } return addTenantGroupAndUserClause(listValues); }
@Test public void testAddTenantGroupAndUserClauseWhenTenantAndSubTenantAreSet() { List<String> tenantLinks = Arrays.asList(TENANT_ID, GROUP_ID); Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); Query tenantQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(TENANT_ID)).findFirst().get(); Query subTenantQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(GROUP_ID)).findFirst().get(); assertNotNull(tenantQuery); assertNotNull(subTenantQuery); assertEquals(tenantQuery.occurance, Occurance.MUST_OCCUR); assertEquals(subTenantQuery.occurance, Occurance.MUST_OCCUR); }
@Test public void testAddTenantGroupAndUserClauseWhenTenantAndUserAreSet() { List<String> tenantLinks = Arrays.asList(TENANT_ID, USER_ID); Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); Query tenantQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(TENANT_ID)).findFirst().get(); Query userQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(USER_ID)).findFirst().get(); assertNotNull(tenantQuery); assertNotNull(userQuery); assertEquals(tenantQuery.occurance, Occurance.MUST_OCCUR); assertEquals(userQuery.occurance, Occurance.MUST_OCCUR); }
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; }
@Test public void testAddTenantGroupAndUserClauseWhenTenantAndSubtenantAndUserAreSet() { List<String> tenantLinks = Arrays.asList(TENANT_ID, GROUP_ID, USER_ID); Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); Query tenantQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(TENANT_ID)).findFirst().get(); Query subTenantQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(GROUP_ID)).findFirst().get(); Query userQuery = query.booleanClauses.stream() .filter(l -> l.term.matchValue.contains(USER_ID)).findFirst().get(); assertNotNull(tenantQuery); assertNotNull(subTenantQuery); assertNotNull(userQuery); assertEquals(tenantQuery.occurance, Occurance.MUST_OCCUR); assertEquals(subTenantQuery.occurance, Occurance.MUST_OCCUR); assertEquals(userQuery.occurance, Occurance.MUST_OCCUR); }
@Test public void testAddProjectLinkClauseWhenOnlyProjectIsSet() { List<String> tenantLinks = Arrays.asList(PROJECT_ID); Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); assertNotNull(query); assertEquals(query.occurance, Occurance.MUST_OCCUR); assertEquals(query.term.matchValue, PROJECT_ID); }
@Test public void testAddTenantGroupAndUserClauseWhenOnlyTenantIsSet() { List<String> tenantLinks = Arrays.asList(TENANT_ID); Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); assertNotNull(query); assertEquals(query.occurance, Occurance.MUST_OCCUR); assertEquals(query.term.matchValue, TENANT_ID); }
.addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks));
registryQuery.querySpec.query.addBooleanClause(QueryUtil.addTenantGroupAndUserClause( context.tenantLinks));
if (tenantLinks != null) { q.querySpec.query .addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks));
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; }
@Test public void testAddTenantGroupAndUserClauseWhenTenantLinksIsNull() { List<String> tenantLinks = null; Query query = QueryUtil.addTenantGroupAndUserClause(tenantLinks); assertNotNull(query); assertEquals(query.occurance, Occurance.MUST_NOT_OCCUR); assertEquals(query.term.matchValue, UriUtils.URI_WILDCARD_CHAR); assertEquals(query.term.matchType, MatchType.WILDCARD); }
private QueryTask buildRequestStatusQuery(List<String> tenantLinks) { QueryTask requestStatusQuery = QueryUtil.buildQuery(RequestStatus.class, true); QueryTask.Query runningTasksClause = new QueryTask.Query(); if (!tenantLinks.isEmpty()) { requestStatusQuery.querySpec.query.addBooleanClause(QueryUtil .addTenantGroupAndUserClause(tenantLinks)); } QueryTask.Query taskCreatedClause = new QueryTask.Query() .setTermPropertyName(TaskStatusState.FIELD_NAME_TASK_INFO + ".stage") .setTermMatchValue(TaskState.TaskStage.CREATED.toString()); taskCreatedClause.occurance = Occurance.SHOULD_OCCUR; runningTasksClause.addBooleanClause(taskCreatedClause); QueryTask.Query taskStartedClause = new QueryTask.Query() .setTermPropertyName(TaskStatusState.FIELD_NAME_TASK_INFO + ".stage") .setTermMatchValue(TaskState.TaskStage.STARTED.toString()); taskStartedClause.occurance = Occurance.SHOULD_OCCUR; runningTasksClause.addBooleanClause(taskStartedClause); requestStatusQuery.querySpec.query.addBooleanClause(runningTasksClause); QueryUtil.addCountOption(requestStatusQuery); return requestStatusQuery; }
private QueryTask buildEventLogCountQuery(List<String> tenantLinks) { QueryTask qt = QueryUtil.buildQuery(EventLogState.class, true); if (!tenantLinks.isEmpty()) { qt.querySpec.query.addBooleanClause(QueryUtil.addTenantGroupAndUserClause(tenantLinks)); } long nMinutesAgo = Utils.fromNowMicrosUtc(-EVENTS_TIME_INTERVAL_MICROS); QueryTask.Query numOfInstancesClause = new QueryTask.Query() .setTermPropertyName(ServiceDocument.FIELD_NAME_UPDATE_TIME_MICROS) .setNumericRange(NumericRange.createLongRange(nMinutesAgo, Long.MAX_VALUE, true, false)) .setTermMatchType(MatchType.TERM); qt.querySpec.query.addBooleanClause(numOfInstancesClause); QueryTask.Query eventTypeClause = new QueryTask.Query() .setTermPropertyName(EventLogState.FIELD_NAME_EVENT_LOG_TYPE) .setTermMatchValue(EventLogState.EventLogType.INFO.toString()) .setTermMatchType(MatchType.TERM); eventTypeClause.occurance = Occurance.MUST_NOT_OCCUR; qt.querySpec.query.addBooleanClause(eventTypeClause); QueryUtil.addCountOption(qt); return qt; }
.addTenantGroupAndUserClause(registry.tenantLinks)); QueryUtil.addExpandOption(queryTask);