com.vmware.admiral.common.util.QueryUtil.addListValueClause()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(12.9k)|赞(0)|评价(0)|浏览(84)

本文整理了Java中com.vmware.admiral.common.util.QueryUtil.addListValueClause方法的一些代码示例,展示了QueryUtil.addListValueClause的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryUtil.addListValueClause方法的具体详情如下:
包路径:com.vmware.admiral.common.util.QueryUtil
类名称:QueryUtil
方法名:addListValueClause

QueryUtil.addListValueClause介绍

暂无

代码示例

代码示例来源:origin: vmware/admiral

public static void addListValueClause(QueryTask q, String propName, Collection<String> values) {
  addListValueClause(q, propName, values, MatchType.TERM);
}

代码示例来源:origin: vmware/admiral

public static void addListValueClause(QueryTask.Query q, String propName,
    Collection<String> values,
    MatchType termMatchType) {
  QueryTask.Query inClause = addListValueClause(propName, values, termMatchType);
  q.addBooleanClause(inClause);
}

代码示例来源:origin: vmware/admiral

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;
}

代码示例来源:origin: vmware/admiral

private QueryTask createResourcesQuery(Class<? extends ServiceDocument> type,
    Set<String> resourceLinks) {
  QueryTask query = QueryUtil.buildQuery(type, false);
  query.querySpec.options = EnumSet.of(QueryOption.EXPAND_CONTENT);
  QueryUtil.addListValueClause(query, ServiceDocument.FIELD_NAME_SELF_LINK, resourceLinks);
  return query;
}

代码示例来源:origin: vmware/admiral

private QueryTask createResourcesQuery(Class<? extends ServiceDocument> type,
    Collection<String> resourceLinks) {
  QueryTask query = QueryUtil.buildQuery(type, false);
  if (resourceLinks != null && !resourceLinks.isEmpty()) {
    QueryUtil.addListValueClause(query, ServiceDocument.FIELD_NAME_SELF_LINK,
        resourceLinks);
  }
  return query;
}

代码示例来源:origin: vmware/admiral

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;
  }
}

代码示例来源:origin: vmware/admiral

public static void addListValueClause(QueryTask q, String propName,
    Collection<String> values,
    MatchType termMatchType) {
  Query inClause = addListValueClause(propName, values, termMatchType);
  q.querySpec.query.addBooleanClause(inClause);
}

代码示例来源:origin: vmware/admiral

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;
}

代码示例来源:origin: vmware/admiral

public static Query addTenantAndGroupClause(List<String> tenantLinks) {
  Query groupClause = null;
  String propertyName = QueryTask.QuerySpecification
      .buildCollectionItemName(MultiTenantDocument.FIELD_NAME_TENANT_LINKS);
  // if a tenant is not specified, search global only
  if (tenantLinks == null || tenantLinks.isEmpty()) {
    groupClause = new Query()
        .setTermPropertyName(propertyName);
    groupClause.setTermMatchType(MatchType.WILDCARD)
        .setTermMatchValue(UriUtils.URI_WILDCARD_CHAR);
    groupClause.occurance = Occurance.MUST_NOT_OCCUR;
  } else {
    groupClause = addListValueClause(propertyName, tenantLinks.stream()
        .filter(tenantLink -> !tenantLink.startsWith(MultiTenantDocument.USERS_PREFIX))
        .collect(Collectors.toList()), MatchType.TERM);
  }
  return groupClause;
}

代码示例来源:origin: vmware/admiral

public static Query addTenantClause(List<String> tenantLinks) {
  Query groupClause = null;
  String propertyName = QueryTask.QuerySpecification
      .buildCollectionItemName(MultiTenantDocument.FIELD_NAME_TENANT_LINKS);
  // if a tenant is not specified, search global only
  if (tenantLinks == null || tenantLinks.isEmpty()) {
    groupClause = new Query()
        .setTermPropertyName(propertyName);
    groupClause.setTermMatchType(MatchType.WILDCARD)
        .setTermMatchValue(UriUtils.URI_WILDCARD_CHAR);
    groupClause.occurance = Occurance.MUST_NOT_OCCUR;
  } else {
    groupClause = addListValueClause(propertyName, tenantLinks.stream()
        .filter(tenantLink -> tenantLink.startsWith(MultiTenantDocument.TENANTS_PREFIX)
            || tenantLink.startsWith(MultiTenantDocument.PROJECTS_IDENTIFIER))
        .filter(tenantLink -> !tenantLink.contains(
            MultiTenantDocument.GROUP_IDENTIFIER))
        .collect(Collectors.toList()), MatchType.TERM);
  }
  return groupClause;
}

代码示例来源:origin: vmware/admiral

public static Query addTenantAndUserClause(List<String> tenantLinks) {
  Query groupClause = null;
  String propertyName = QueryTask.QuerySpecification
      .buildCollectionItemName(MultiTenantDocument.FIELD_NAME_TENANT_LINKS);
  // if a tenant is not specified, search global only
  if (tenantLinks == null || tenantLinks.isEmpty()) {
    groupClause = new Query()
        .setTermPropertyName(propertyName);
    groupClause.setTermMatchType(MatchType.WILDCARD)
        .setTermMatchValue(UriUtils.URI_WILDCARD_CHAR);
    groupClause.occurance = Occurance.MUST_NOT_OCCUR;
  } else {
    groupClause = addListValueClause(propertyName, tenantLinks.stream()
        .filter(tenantLink -> !tenantLink.contains(
            MultiTenantDocument.GROUP_IDENTIFIER))
        .collect(Collectors.toList()), MatchType.TERM);
  }
  return groupClause;
}

代码示例来源:origin: vmware/admiral

private void getContextContainerDescriptions(
    Map<String, List<ContainerState>> containersByDescriptionLink,
    Consumer<List<ContainerDescription>> callback) {
  if ((containersByDescriptionLink == null) || (containersByDescriptionLink.isEmpty())) {
    callback.accept(Collections.emptyList());
    return;
  }
  QueryTask q = QueryUtil.buildQuery(ContainerDescription.class, true);
  QueryUtil.addExpandOption(q);
  QueryUtil.addListValueClause(q, ContainerDescription.FIELD_NAME_SELF_LINK,
      containersByDescriptionLink.keySet());
  q.taskInfo.isDirect = false;
  List<ContainerDescription> result = new ArrayList<>();
  new ServiceDocumentQuery<ContainerDescription>(getHost(), ContainerDescription.class)
      .query(q, (r) -> {
        if (r.hasException()) {
          failTask("Exception while selecting container descriptions",
              r.getException());
        } else if (r.hasResult()) {
          result.add(r.getResult());
        } else {
          callback.accept(result);
        }
      });
}

代码示例来源:origin: vmware/admiral

public static Query addTenantGroupAndUserClause(Collection<String> tenantLinks) {
  Query groupClause = null;
  String propertyName = QueryTask.QuerySpecification
      .buildCollectionItemName(MultiTenantDocument.FIELD_NAME_TENANT_LINKS);
  // if a tenant is not specified, search global only
  if (tenantLinks == null || tenantLinks.isEmpty()) {
    groupClause = new Query()
        .setTermPropertyName(propertyName);
    groupClause.setTermMatchType(MatchType.WILDCARD)
        .setTermMatchValue(UriUtils.URI_WILDCARD_CHAR);
    groupClause.occurance = Occurance.MUST_NOT_OCCUR;
  } else {
    groupClause = addListValueClause(propertyName, tenantLinks, MatchType.TERM);
  }
  return groupClause;
}

代码示例来源:origin: vmware/admiral

private void getContextContainerDescriptions(
    Map<String, List<ContainerState>> containersByDescriptionLink,
    Consumer<List<ContainerDescription>> callback) {
  if ((containersByDescriptionLink == null) || (containersByDescriptionLink.isEmpty())) {
    callback.accept(Collections.emptyList());
    return;
  }
  QueryTask q = QueryUtil.buildQuery(ContainerDescription.class, true);
  QueryUtil.addExpandOption(q);
  QueryUtil.addListValueClause(q, ContainerDescription.FIELD_NAME_SELF_LINK,
      containersByDescriptionLink.keySet());
  q.taskInfo.isDirect = false;
  List<ContainerDescription> result = new ArrayList<>();
  new ServiceDocumentQuery<ContainerDescription>(getHost(), ContainerDescription.class)
      .query(q, (r) -> {
        if (r.hasException()) {
          failTask("Exception while selecting container descriptions",
              r.getException());
        } else if (r.hasResult()) {
          result.add(r.getResult());
        } else {
          callback.accept(result);
        }
      });
}

代码示例来源:origin: vmware/admiral

private void queryVolumes(ContainerHostRemovalTaskState state) {
  QueryTask volumeQuery = QueryUtil.buildQuery(ContainerVolumeState.class, false);
  QueryUtil.addListValueClause(volumeQuery,
      ContainerVolumeState.FIELD_NAME_ORIGINATING_HOST_LINK, state.resourceLinks);
  Set<String> volumeLinks = new HashSet<>();
  new ServiceDocumentQuery<ContainerVolumeState>(getHost(), ContainerVolumeState.class).query(
      volumeQuery, (r) -> {
        if (r.hasException()) {
          failTask("Failure retrieving query results", r.getException());
          return;
        } else if (r.hasResult()) {
          volumeLinks.add(r.getDocumentSelfLink());
        } else {
          if (volumeLinks.isEmpty()) {
            filterKubernetesHosts(state);
            return;
          }
          removeVolumes(state, volumeLinks);
        }
      });
}

代码示例来源:origin: vmware/admiral

private void queryContainers(ContainerHostRemovalTaskState state) {
  QueryTask containerQuery = QueryUtil.buildQuery(ContainerState.class, true);
  QueryUtil.addListValueClause(containerQuery,
      ContainerState.FIELD_NAME_PARENT_LINK, state.resourceLinks);
  Set<String> containerLinks = new HashSet<>();
  new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class).query(
      containerQuery, (r) -> {
        if (r.hasException()) {
          failTask("Failure retrieving query results", r.getException());
          return;
        } else if (r.hasResult()) {
          containerLinks.add(r.getDocumentSelfLink());
        } else {
          if (containerLinks.isEmpty()) {
            queryNetworks(state);
            return;
          }
          removeContainers(state, containerLinks);
        }
      });
}

代码示例来源:origin: vmware/admiral

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);
    }
  });
}

代码示例来源:origin: vmware/admiral

@Override
public void handleDelete(Operation delete) {
  if (delete.getBodyRaw() == null) {
    super.handleDelete(delete);
    return;
  }
  QueryTask compositeQueryTask = QueryUtil.buildQuery(CompositeDescription.class, true);
  String descriptionLinksItemField = QueryTask.QuerySpecification.buildCollectionItemName(
      CompositeDescription.FIELD_NAME_DESCRIPTION_LINKS);
  QueryUtil.addExpandOption(compositeQueryTask);
  QueryUtil.addListValueClause(compositeQueryTask,
      descriptionLinksItemField, Arrays.asList(getSelfLink()));
  List<String> compositeDescriptions = new ArrayList<>();
  new ServiceDocumentQuery<CompositeDescription>(getHost(), CompositeDescription.class)
      .query(compositeQueryTask, (r) -> {
        if (r.hasException()) {
          logSevere(
              "Failed to retrieve composite-descriptions: %s - %s",
              r.getDocumentSelfLink(), r.getException());
        } else if (r.hasResult()) {
          compositeDescriptions.addAll(r.getResult().descriptionLinks);
        } else {
          deleteContainerDescriptionLink(getState(delete), compositeDescriptions);
        }
      });
  super.handleDelete(delete);
}

代码示例来源:origin: vmware/admiral

private void processContainerHealth(ServiceHost host,
    ContainerDescription containerDescription) {
  if (containerDescription.healthConfig == null
      || containerDescription.healthConfig.protocol == null) {
    host.log(Level.FINE, "Container's health config not set for: %s",
        containerDescription.documentSelfLink);
    return;
  }
  QueryTask compositeQueryTask = QueryUtil.buildQuery(ContainerState.class, true);
  QueryUtil.addExpandOption(compositeQueryTask);
  String containerDescriptionLink = UriUtils.buildUriPath(
      ManagementUriParts.CONTAINER_DESC,
      Service.getId(containerDescription.documentSelfLink));
  QueryUtil.addListValueClause(compositeQueryTask,
      ContainerState.FIELD_NAME_DESCRIPTION_LINK,
      Arrays.asList(containerDescriptionLink));
  new ServiceDocumentQuery<>(host, ContainerState.class)
      .query(compositeQueryTask, (r) -> {
        if (r.hasException()) {
          host.log(Level.SEVERE,
              "Failed to retrieve child containers for: %s - %s",
              containerDescriptionLink, Utils.toString(r.getException()));
        } else if (r.hasResult()) {
          doHealthCheckRequest(host, r.getResult(), containerDescription.healthConfig,
              null);
        }
      });
}

代码示例来源:origin: vmware/admiral

public List<String> findResourceLinks(Class<? extends ServiceDocument> type,
    Collection<String> resourceLinks) throws Throwable {
  TestContext ctx = testCreate(1);
  QueryTask query = QueryUtil.buildQuery(type, true);
  QueryUtil.addListValueClause(query, ServiceDocument.FIELD_NAME_SELF_LINK, resourceLinks);
  List<String> result = new LinkedList<>();
  new ServiceDocumentQuery<>(
      host, type).query(query,
          (r) -> {
            if (r.hasException()) {
              ctx.failIteration(r.getException());
              return;
            }
            if (r.hasResult()) {
              result.add(r.getDocumentSelfLink());
              return;
            }
            ctx.completeIteration();
          });
  ctx.await();
  return result;
}

相关文章