QueryUtil.addListValueClause(volumeQuery, ServiceDocument.FIELD_NAME_SELF_LINK, volumes); QueryUtil.addBroadcastOption(volumeQuery); QueryUtil.addExpandOption(volumeQuery);
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)); }
private void queryContainerResources(ContainerRemovalTaskState state) { QueryTask computeQuery = createResourcesQuery(ContainerState.class, state.resourceLinks); ServiceDocumentQuery<ContainerState> query = new ServiceDocumentQuery<>(getHost(), ContainerState.class); List<String> containerLinks = new ArrayList<>(); state.containersParentLinks = new HashSet<>(); QueryUtil.addBroadcastOption(computeQuery); QueryUtil.addExpandOption(computeQuery); query.query(computeQuery, (r) -> { if (r.hasException()) { failTask("Failure retrieving query results", r.getException()); } else if (r.hasResult()) { containerLinks.add(r.getDocumentSelfLink()); state.containersParentLinks.add(r.getResult().parentLink); } else { if (containerLinks.isEmpty()) { logWarning("No available resources found to be removed with links: %s", state.resourceLinks); proceedTo(SubStage.COMPLETED); } else { proceedTo(SubStage.INSTANCES_REMOVING, s -> { s.containersParentLinks = state.containersParentLinks; }); deleteResourceInstances(state, containerLinks, null); } } }); }
private void queryContainerVolumeResources(ContainerVolumeRemovalTaskState state) { QueryTask volumeQuery = createResourcesQuery(ContainerVolumeState.class, state.resourceLinks); ServiceDocumentQuery<ContainerVolumeState> query = new ServiceDocumentQuery<>(getHost(), ContainerVolumeState.class); List<String> volumeLinks = new ArrayList<>(); QueryUtil.addBroadcastOption(volumeQuery); QueryUtil.addExpandOption(volumeQuery); query.query(volumeQuery, (r) -> { if (r.hasException()) { failTask("Failure retrieving query results", r.getException()); } else if (r.hasResult()) { volumeLinks.add(r.getDocumentSelfLink()); } else { if (volumeLinks.isEmpty()) { logWarning("No available resources found to be removed with links: %s", state.resourceLinks); proceedTo(SubStage.COMPLETED); } else { deleteResourceInstances(state, volumeLinks, null); } } }); }
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); } } }); }
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 processPools(Collection<ElasticPlacementZoneConfigurationState> collection, Operation post) { // Get the placements for every pool. If there is more that one placement, clone the pool // and point one of the placements to it. for (ElasticPlacementZoneConfigurationState state : collection) { QueryTask queryTask = QueryUtil.buildPropertyQuery(GroupResourcePlacementState.class, GroupResourcePlacementState.FIELD_NAME_RESOURCE_POOL_LINK, state.resourcePoolState.documentSelfLink); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); List<GroupResourcePlacementState> placements = new ArrayList<GroupResourcePlacementState>(); new ServiceDocumentQuery<GroupResourcePlacementState>(getHost(), GroupResourcePlacementState.class) .query(queryTask, (r) -> { if (r.hasException()) { logSevere( "Failed to query resource pool placement states eith resource pool link %s", state.documentSelfLink); post.fail(r.getException()); } else if (r.hasResult()) { placements.add(r.getResult()); } else { logInfo("Resource pool placements found %d for resource pool %s", placements.size(), state.documentSelfLink); processPlacement(state, placements, post); } }); } }
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; }
QueryUtil.addBroadcastOption(computeQuery); ServiceDocumentQuery<ComputeState> query = new ServiceDocumentQuery<>(getHost(), ComputeState.class);
QueryUtil.addBroadcastOption(queryTask);
private <T extends BaseKubernetesState> List<T> getEntities(Class<T> tClass) throws Throwable { List<T> entitiesFound = new ArrayList<>(); TestContext ctx = testCreate(1); ServiceDocumentQuery<T> query = new ServiceDocumentQuery<>(host, tClass); QueryTask queryTask = QueryUtil.buildPropertyQuery(tClass, BaseKubernetesState.FIELD_NAME_PARENT_LINK, COMPUTE_HOST_LINK); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); query.query(queryTask, (r) -> { if (r.hasException()) { host.log("Exception while retrieving ContainerNetworkState: " + (r.getException() instanceof CancellationException ? r.getException().getMessage() : Utils.toString(r.getException()))); ctx.fail(r.getException()); } else if (r.hasResult()) { entitiesFound.add(r.getResult()); } else { ctx.complete(); } }); ctx.await(); return entitiesFound; }
QueryUtil.addBroadcastOption(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; }
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; }