private void queryExternalNetworks(List<String> networks, Consumer<Boolean> resultCallback) { if (!networks.isEmpty()) { QueryTask networkQuery = QueryUtil.buildQuery(ContainerNetworkState.class, false); QueryUtil.addListValueClause(networkQuery, ServiceDocument.FIELD_NAME_SELF_LINK, networks); QueryUtil.addBroadcastOption(networkQuery); QueryUtil.addExpandOption(networkQuery);
private void queryExistingContainerStates(ContainerListCallback body) { String containerHostLink = body.containerHostLink; QueryTask queryTask = QueryUtil.buildPropertyQuery(ContainerState.class, ContainerState.FIELD_NAME_PARENT_LINK, containerHostLink); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(queryTask, processContainerStatesQueryResults(body)); }
@SuppressWarnings("unchecked") private <T extends ServiceDocument> void countResourcesForPlacement( GroupResourcePlacementState state, Consumer<ServiceDocumentQueryElementResult<T>> completionHandler) { QueryTask queryTask; Class<T> resourceClass; if (ResourceType.CONTAINER_TYPE.getName().equals(state.resourceType)) { resourceClass = (Class<T>) ContainerState.class; queryTask = QueryUtil.buildPropertyQuery(resourceClass, ContainerState.FIELD_NAME_GROUP_RESOURCE_PLACEMENT_LINK, state.documentSelfLink); } else { throw new LocalizableValidationException("Unsupported placement resourceType " + state.resourceType, "compute.placements.invalid.resource.type"); } QueryUtil.addCountOption(queryTask); new ServiceDocumentQuery<>(getHost(), resourceClass) .query(queryTask, completionHandler); }
private QueryTask createResourcesQuery(Class<? extends ServiceDocument> type, Collection<String> resourceLinks) { QueryTask query = QueryUtil.buildQuery(type, false); QueryUtil.addListValueClause(query, ServiceDocument.FIELD_NAME_SELF_LINK, resourceLinks); return query; }
protected QueryTask getDescQuery() { final QueryTask q = QueryUtil.buildQuery(ContainerDescription.class, false); QueryUtil.addCaseInsensitiveListValueClause(q, ContainerDescription.FIELD_NAME_NAME, getAffinity()); QueryUtil.addExpandOption(q); return q; }
protected QueryTask getDescQuery(List<String> descriptionLinks) { // get container descriptions for descriptionLinks having a service link to // the container description which is being clustered QueryTask q = QueryUtil.buildQuery(ContainerDescription.class, false); String linksItemField = QueryTask.QuerySpecification.buildCollectionItemName( ContainerDescription.FIELD_NAME_LINKS); QueryUtil.addListValueClause(q, linksItemField, Arrays.asList(containerDescriptionName + ":*", containerDescriptionName), MatchType.WILDCARD); QueryUtil.addListValueClause(q, ContainerDescription.FIELD_NAME_SELF_LINK, descriptionLinks); QueryUtil.addExpandOption(q); return q; }
public static <R extends MultiTenantDocument> void getDocuments(Class<R> type, Consumer<List<MultiTenantDocument>> consumer, ServiceHost host, Operation post) { QueryTask queryTask = QueryUtil.buildQuery(type, true); QueryUtil.addExpandOption(queryTask); List<MultiTenantDocument> documents = new ArrayList<>(); new ServiceDocumentQuery<R>(host, type) .query(queryTask, (r) -> { if (r.hasException()) { host.log(Level.SEVERE, "Failed to query for project states"); post.fail(r.getException()); } else if (r.hasResult()) { documents.add((MultiTenantDocument) r.getResult()); } else { host.log(Level.INFO, "projects found: %d", documents.size()); consumer.accept(documents); } }); } }
QueryTask queryTask = QueryUtil.buildQuery(ContainerVolumeState.class, true); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask);
private void queryNetworksByHost(AdapterRequest state, Consumer<List<ContainerNetworkState>> callback) { String hostLink = state.resourceReference.getPath(); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerNetworkToHostState.class, MockDockerNetworkToHostState.FIELD_NAME_HOST_LINK, hostLink); QueryUtil.addExpandOption(q); List<ContainerNetworkState> networkStates = new ArrayList< >(); new ServiceDocumentQuery<>(getHost(), MockDockerNetworkToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { networkStates.add(buildContainerNetwork(r.getResult())); } else { callback.accept(networkStates); } }); }
QueryTask q = QueryUtil.buildQuery(GroupResourcePlacementState.class, false); + " count: [%s]..", state.resourceDescriptionLink, state.resourceCount); Query tenantLinksQuery = QueryUtil.addTenantAndGroupClause(null); q.querySpec.query.addBooleanClause(tenantLinksQuery); } else { state.tenantLinks, state.resourceDescriptionLink, state.resourceCount); Query tenantLinksQuery = QueryUtil.addTenantAndGroupClause(state.tenantLinks); q.querySpec.query.addBooleanClause(tenantLinksQuery); QueryUtil.addExpandOption(q);
QueryTask q = QueryUtil.buildQuery(ContainerVolumeState.class, false, driverClause); QueryUtil.addListValueClause(q, compositeComponentLinksItemField, cclValues); QueryUtil.addListValueClause(q, ContainerVolumeState.FIELD_NAME_DESCRIPTION_LINK, descLinksWithNames.keySet()); QueryUtil.addCountOption(q);
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 void queryPortProfiles(ContainerHostRemovalTaskState state) { QueryTask q = QueryUtil .buildQuery(HostPortProfileService.HostPortProfileState.class, false); QueryUtil.addListValueClause(q, HostPortProfileService.HostPortProfileState.FIELD_HOST_LINK, state.resourceLinks); ServiceDocumentQuery<HostPortProfileService.HostPortProfileState> query = new ServiceDocumentQuery<>( getHost(), HostPortProfileService.HostPortProfileState.class); QueryUtil.addBroadcastOption(q); ArrayList<String> hostPortProfileLinks = new ArrayList<>(); query.query(q, (r) -> { if (r.hasException()) { failTask("Failure retrieving query results", r.getException()); return; } else if (r.hasResult()) { hostPortProfileLinks.add(r.getDocumentSelfLink()); } else { // if there are no host port profiles, go to the next stage if (hostPortProfileLinks.isEmpty()) { proceedTo(SubStage.REMOVED_PORT_PROFILES); return; } removePortProfiles(state, hostPortProfileLinks, null); proceedTo(SubStage.REMOVING_PORT_PROFILES); } }); }
private void queryContainerNetworkResources(ContainerNetworkRemovalTaskState state) { QueryTask networkQuery = createResourcesQuery(ContainerNetworkState.class, state.resourceLinks); ServiceDocumentQuery<ContainerNetworkState> query = new ServiceDocumentQuery<>(getHost(), ContainerNetworkState.class); List<String> networkLinks = new ArrayList<>(); QueryUtil.addBroadcastOption(networkQuery); QueryUtil.addExpandOption(networkQuery); query.query(networkQuery, (r) -> { if (r.hasException()) { failTask("Failure retrieving query results", r.getException()); } else if (r.hasResult()) { networkLinks.add(r.getDocumentSelfLink()); } else { if (networkLinks.isEmpty()) { logWarning("No available resources found to be removed with links: %s", state.resourceLinks); proceedTo(SubStage.COMPLETED); } else { deleteResourceInstances(state, networkLinks, null); } } }); }
QueryTask queryTask = QueryUtil.buildQuery(RegistryState.class, true); RegistryState registry = post.getBody(RegistryState.class); AssertUtil.assertNotNullOrEmpty(registry.address, "registry.address"); .addTenantGroupAndUserClause(registry.tenantLinks)); QueryUtil.addExpandOption(queryTask);
public static QueryTask buildQuery(Class<? extends ServiceDocument> stateClass, boolean direct, QueryTask.Query... clauses) { String kind = Utils.buildKind(stateClass); return buildQuery(kind, direct, clauses); }
@SuppressWarnings("unchecked") @Override public void handlePost(Operation post) { logInfo("Population of favorite images for specific tenants triggered."); List<String> tenantLinks = post.getBody(List.class); List<FavoriteImage> globalFavorites = new LinkedList<>(); QueryTask queryTask = QueryUtil.buildQuery(FavoriteImage.class, true, QueryUtil.addTenantClause(null)); QueryUtil.addExpandOption(queryTask); new ServiceDocumentQuery<>(getHost(), FavoriteImage.class) .query(queryTask, r -> { if (r.hasException()) { post.fail(r.getException()); } else if (r.hasResult()) { globalFavorites.add(r.getResult()); } else { createFavoriteImagesBasedOnFlagStatus(post, tenantLinks, globalFavorites); } }); }
QueryTask queryTask = QueryUtil.buildQuery(ContainerState.class, true); QueryUtil.addCountOption(queryTask); ManagementUriParts.CONTAINER_DESC, Service.getId(currentState.descriptionLink)); QueryUtil.addListValueClause(queryTask, ContainerState.FIELD_NAME_DESCRIPTION_LINK, Arrays.asList(containerDescriptionLink)); QueryUtil.addListValueExcludeClause(queryTask, ContainerState.FIELD_NAME_SELF_LINK, Arrays.asList(currentState.documentSelfLink));
public static QueryTask createQueryTaskForProjectAssociatedWithPlacement(ResourceState project, Query query) { QueryTask queryTask = null; if (query != null) { queryTask = QueryTask.Builder.createDirectTask().setQuery(query).build(); } else if (project != null && project.documentSelfLink != null) { queryTask = QueryUtil.buildQuery(GroupResourcePlacementState.class, true, QueryUtil.addTenantAndGroupClause(Arrays.asList(project.documentSelfLink))); } if (queryTask != null) { QueryUtil.addCountOption(queryTask); } return queryTask; }
@Override protected QueryTask getDescQuery() { return QueryUtil.buildPropertyQuery(ContainerDescription.class, ContainerDescription.FIELD_NAME_POD, pod); }