com.amazonaws.services.ec2.model.Filter.withValues()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(14.6k)|赞(0)|评价(0)|浏览(80)

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

Filter.withValues介绍

[英]One or more filter values. Filter values are case-sensitive.
[中]一个或多个筛选器值。筛选器值区分大小写。

代码示例

代码示例来源:origin: apache/incubator-gobblin

/***
 * Get list of EC2 {@link Instance}s for a auto scaling group
 *
 * @param groupName Auto scaling group name
 * @param status Instance status (eg. running)
 * @return List of EC2 instances found for the input auto scaling group
 */
public List<Instance> getInstancesForGroup(String groupName,
  String status) {
 final AmazonEC2 amazonEC2 = getEc2Client();
 final DescribeInstancesResult instancesResult = amazonEC2.describeInstances(new DescribeInstancesRequest()
   .withFilters(new Filter().withName("tag:aws:autoscaling:groupName").withValues(groupName)));
 final List<Instance> instances = new ArrayList<>();
 for (Reservation reservation : instancesResult.getReservations()) {
  for (Instance instance : reservation.getInstances()) {
   if (null == status|| null == instance.getState()
     || status.equals(instance.getState().getName())) {
    instances.add(instance);
    LOGGER.info("Found instance: " + instance + " which qualified filter: " + status);
   } else {
    LOGGER.info("Found instance: " + instance + " but did not qualify for filter: " + status);
   }
  }
 }
 return instances;
}

代码示例来源:origin: aws/aws-sdk-java

public Filter unmarshall(StaxUnmarshallerContext context) throws Exception {
  Filter filter = new Filter();
  int originalDepth = context.getCurrentDepth();
  int targetDepth = originalDepth + 1;
  if (context.isStartOfDocument())
    targetDepth += 1;
  while (true) {
    XMLEvent xmlEvent = context.nextEvent();
    if (xmlEvent.isEndDocument())
      return filter;
    if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) {
      if (context.testExpression("Name", targetDepth)) {
        filter.setName(StringStaxUnmarshaller.getInstance().unmarshall(context));
        continue;
      }
      if (context.testExpression("Value", targetDepth)) {
        filter.withValues(new ArrayList<String>());
        continue;
      }
      if (context.testExpression("Value/item", targetDepth)) {
        filter.withValues(StringStaxUnmarshaller.getInstance().unmarshall(context));
        continue;
      }
    } else if (xmlEvent.isEndElement()) {
      if (context.getCurrentDepth() < originalDepth) {
        return filter;
      }
    }
  }
}

代码示例来源:origin: Netflix/Priam

new Filter().withName("group-name").withValues(config.getACLGroupName());
String vpcid = instanceInfo.getVpcId();
if (vpcid == null || vpcid.isEmpty()) {
Filter vpcFilter = new Filter().withName("vpc-id").withValues(vpcid);
DescribeSecurityGroupsRequest req =
    new DescribeSecurityGroupsRequest().withFilters(nameFilter, vpcFilter);

代码示例来源:origin: Netflix/Priam

protected String getVpcGoupId() {
  AmazonEC2 client = null;
  try {
    client = getEc2Client();
    Filter nameFilter =
        new Filter().withName("group-name").withValues(config.getACLGroupName()); // SG
    Filter vpcFilter = new Filter().withName("vpc-id").withValues(instanceInfo.getVpcId());
    DescribeSecurityGroupsRequest req =
        new DescribeSecurityGroupsRequest().withFilters(nameFilter, vpcFilter);
    DescribeSecurityGroupsResult result = client.describeSecurityGroups(req);
    for (SecurityGroup group : result.getSecurityGroups()) {
      logger.debug(
          "got group-id:{} for group-name:{},vpc-id:{}",
          group.getGroupId(),
          config.getACLGroupName(),
          instanceInfo.getVpcId());
      return group.getGroupId();
    }
    logger.error(
        "unable to get group-id for group-name={} vpc-id={}",
        config.getACLGroupName(),
        instanceInfo.getVpcId());
    return "";
  } finally {
    if (client != null) client.shutdown();
  }
}

代码示例来源:origin: electronicarts/gatling-aws-maven-plugin

private Filter[] getInstanceFilters(final String instanceType) {
  // Setup a filter to find any previously generated EC2 instances.
  return new Filter[]{
    new Filter("tag:" + this.instanceTag.getKey()).withValues(this.instanceTag.getValue()),
    new Filter("instance-state-name").withValues("running"),
    new Filter("instance-type").withValues(instanceType)
  };
}

代码示例来源:origin: rundeck-plugins/rundeck-ec2-nodes-plugin

private ArrayList<Filter> buildFilters() {
  final ArrayList<Filter> filters = new ArrayList<Filter>();
  if (isRunningStateOnly()) {
    final Filter filter = new Filter("instance-state-name").withValues(InstanceStateName.Running.toString());
    filters.add(filter);
  }
  if (null != getFilterParams()) {
    for (final String filterParam : getFilterParams()) {
      final String[] x = filterParam.split("=", 2);
      if (!"".equals(x[0]) && !"".equals(x[1])) {
        filters.add(new Filter(x[0]).withValues(x[1].split(",")));
      }
    }
  }
  return filters;
}

代码示例来源:origin: zalando-stups/fullstop

@Override
  @Cacheable(cacheNames = "ami-expiration-time", cacheManager = "oneMinuteTTLCacheManager")
  public ZonedDateTime getExpirationTime(String regionName, String imageOwner, String imageId) {
    // tags are only visible in the owning account of the image
    final AmazonEC2Client ec2 = clientProvider.getClient(AmazonEC2Client.class, imageOwner,
        Region.getRegion(Regions.fromName(regionName)));
    final DescribeTagsRequest tagsRequest = new DescribeTagsRequest().withFilters(
        new Filter("resource-id").withValues(imageId),
        new Filter("resource-type").withValues("image"),
        new Filter("key").withValues(TAG_KEY));
    return ec2.describeTags(tagsRequest).getTags().stream()
        .findFirst()
        .map(TagDescription::getValue)
        .map(value -> ZonedDateTime.parse(value, ISO_DATE_TIME))
        .orElse(null);
  }
}

代码示例来源:origin: paulhoule/infovore

private String getClusterHeadInstanceId(String jobFlowId) throws Exception {
  DescribeInstancesResult r=ec2Client.describeInstances(
    new DescribeInstancesRequest().withFilters(
      new Filter().withName("tag:aws:elasticmapreduce:instance-group-role").withValues("MASTER"),
      new Filter().withName("tag:aws:elasticmapreduce:job-flow-id").withValues(jobFlowId)
    )
  );
  List<Reservation> instances=r.getReservations();
  if(instances.size() != 1)
    throw new Exception("Could not find cluster head ["+jobFlowId+"]");
  return instances.get(0).getInstances().get(0).getInstanceId();
}

代码示例来源:origin: Kixeye/chassis

/**
 * Fetches and instance's name Tag or null if it does not have one
 * @param instanceId
 * @param amazonEC2
 * @return
 */
public static String getInstanceName(String instanceId, AmazonEC2 amazonEC2){
  DescribeTagsResult result = amazonEC2.describeTags(new DescribeTagsRequest().withFilters(
      new Filter().withName("resource-id").withValues(instanceId),
      new Filter().withName("resource-type").withValues("instance"),
      new Filter().withName("key").withValues(TAG_KEY_NAME)));
  if(result.getTags().isEmpty()){
    return null;
  }
  String name = result.getTags().get(0).getValue();
  return name == null || name.trim().equals("") ? null : name;
}

代码示例来源:origin: org.elasticsearch/elasticsearch-cloud-aws

private DescribeInstancesRequest buildDescribeInstancesRequest() {
    DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest()
      .withFilters(
        new Filter("instance-state-name").withValues("running", "pending")
      );

    for (Map.Entry<String, String> tagFilter : tags.entrySet()) {
      // for a given tag key, OR relationship for multiple different values
      describeInstancesRequest.withFilters(
        new Filter("tag:" + tagFilter.getKey()).withValues(tagFilter.getValue())
      );
    }

    if (!availabilityZones.isEmpty()) {
      // OR relationship amongst multiple values of the availability-zone filter
      describeInstancesRequest.withFilters(
        new Filter("availability-zone").withValues(availabilityZones)
      );
    }

    return describeInstancesRequest;
  }
}

代码示例来源:origin: jenkinsci/ec2-plugin

/**
 * Get a list of security group ids for the slave
 */
private List<String> getEc2SecurityGroups(AmazonEC2 ec2) throws AmazonClientException {
  List<String> groupIds = new ArrayList<String>();
  DescribeSecurityGroupsResult groupResult = getSecurityGroupsBy("group-name", securityGroupSet, ec2);
  if (groupResult.getSecurityGroups().size() == 0) {
    groupResult = getSecurityGroupsBy("group-id", securityGroupSet, ec2);
  }
  for (SecurityGroup group : groupResult.getSecurityGroups()) {
    if (group.getVpcId() != null && !group.getVpcId().isEmpty()) {
      List<Filter> filters = new ArrayList<Filter>();
      filters.add(new Filter("vpc-id").withValues(group.getVpcId()));
      filters.add(new Filter("state").withValues("available"));
      filters.add(new Filter("subnet-id").withValues(getCurrentSubnetId()));
      DescribeSubnetsRequest subnetReq = new DescribeSubnetsRequest();
      subnetReq.withFilters(filters);
      DescribeSubnetsResult subnetResult = ec2.describeSubnets(subnetReq);
      List<Subnet> subnets = subnetResult.getSubnets();
      if (subnets != null && !subnets.isEmpty()) {
        groupIds.add(group.getGroupId());
      }
    }
  }
  if (securityGroupSet.size() != groupIds.size()) {
    throw new AmazonClientException("Security groups must all be VPC security groups to work in a VPC context");
  }
  return groupIds;
}

代码示例来源:origin: jenkinsci/ec2-plugin

private DescribeSecurityGroupsResult getSecurityGroupsBy(String filterName, Set<String> filterValues, AmazonEC2 ec2) {
  DescribeSecurityGroupsRequest groupReq = new DescribeSecurityGroupsRequest();
  groupReq.withFilters(new Filter(filterName).withValues(filterValues));
  return ec2.describeSecurityGroups(groupReq);
}

代码示例来源:origin: org.jenkins-ci.plugins/ec2

private DescribeSecurityGroupsResult getSecurityGroupsBy(String filterName, Set<String> filterValues, AmazonEC2 ec2) {
  DescribeSecurityGroupsRequest group_req = new DescribeSecurityGroupsRequest();
  group_req.withFilters(new Filter(filterName).withValues(filterValues));
  return ec2.describeSecurityGroups(group_req);
}

代码示例来源:origin: ContaAzul/turbine-ec2

/**
   * Builds a describe instance request.
   * @return Request.
   */
  private DescribeInstancesRequest request(
    final String tag,
    final String value
  ) {
    final Filter filter = new Filter()
      .withName(tag)
      .withValues(value);
    return new DescribeInstancesRequest().withFilters(filter);
  }
}

代码示例来源:origin: zalando-stups/fullstop

private List<RouteTable> fetchRouteTables(final List<Filter> subnetIdFilters, final AmazonEC2Client amazonEC2Client,
                     final Instance instance) {
  subnetIdFilters.add(
      new Filter().withName("association.subnet-id")
            .withValues(instance.getSubnetId())); // filter by subnetId
  final DescribeRouteTablesRequest describeRouteTablesRequest = new DescribeRouteTablesRequest()
      .withFilters(subnetIdFilters);
  final DescribeRouteTablesResult describeRouteTablesResult = amazonEC2Client
      .describeRouteTables(describeRouteTablesRequest);
  return describeRouteTablesResult.getRouteTables();
}

代码示例来源:origin: org.apache.gobblin/gobblin-aws

/***
 * Get list of EC2 {@link Instance}s for a auto scaling group
 *
 * @param groupName Auto scaling group name
 * @param status Instance status (eg. running)
 * @return List of EC2 instances found for the input auto scaling group
 */
public List<Instance> getInstancesForGroup(String groupName,
  String status) {
 final AmazonEC2 amazonEC2 = getEc2Client();
 final DescribeInstancesResult instancesResult = amazonEC2.describeInstances(new DescribeInstancesRequest()
   .withFilters(new Filter().withName("tag:aws:autoscaling:groupName").withValues(groupName)));
 final List<Instance> instances = new ArrayList<>();
 for (Reservation reservation : instancesResult.getReservations()) {
  for (Instance instance : reservation.getInstances()) {
   if (null == status|| null == instance.getState()
     || status.equals(instance.getState().getName())) {
    instances.add(instance);
    LOGGER.info("Found instance: " + instance + " which qualified filter: " + status);
   } else {
    LOGGER.info("Found instance: " + instance + " but did not qualify for filter: " + status);
   }
  }
 }
 return instances;
}

代码示例来源:origin: paulhoule/infovore

private void tagInstancesForJob(String jobFlowId) {
  DescribeInstancesResult r=ec2Client.describeInstances(
      new DescribeInstancesRequest().withFilters(
          new Filter().withName("tag:aws:elasticmapreduce:job-flow-id").withValues(jobFlowId)
      )
  );
  List<String> clusterInstances=newArrayList();
  for(Reservation that:r.getReservations())  {
    for(Instance i:that.getInstances()) {
      logger.info("Adding monitoring for instance " + i.getInstanceId());
      clusterInstances.add(i.getInstanceId());
    }
  }
  ec2Client.monitorInstances(new MonitorInstancesRequest(clusterInstances));
};

代码示例来源:origin: RetailMeNot/SeleniumGridScaler

@Override
public void doWork() {
  log.info("Running " + AutomationReaperTask.NAME);
  DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
  Filter filter = new Filter("tag:LaunchSource");
  filter.withValues("SeleniumGridScalerPlugin");
  describeInstancesRequest.withFilters(filter);
  List<Reservation> reservations = ec2.describeInstances(describeInstancesRequest);
  for(Reservation reservation : reservations) {
    for(Instance instance : reservation.getInstances()) {
      // Look for orphaned nodes
      Date threshold = AutomationUtils.modifyDate(new Date(),-30, Calendar.MINUTE);
      String instanceId = instance.getInstanceId();
      // If we found a node old enough AND we're not internally tracking it, this means this is an orphaned node and we should terminate it
      if(threshold.after(instance.getLaunchTime()) && !AutomationContext.getContext().nodeExists(instanceId)) {
        log.info("Terminating orphaned node: " + instanceId);
        ec2.terminateInstance(instanceId);
      }
    }
  }
}

代码示例来源:origin: UrbanCode/terraform

/**
 *
 * @param interfaceIds
 * @param vpcId
 * @param ec2Client
 * @return
 */
public List<NetworkInterface> getNetworkInterfaces(List<String> interfaceIds, String vpcId, AmazonEC2 ec2Client) {
  DescribeNetworkInterfacesRequest request = new DescribeNetworkInterfacesRequest();
  if (interfaceIds != null) {
    request = request.withNetworkInterfaceIds(interfaceIds);
  }
  if (vpcId != null && !vpcId.equals("")) {
    Filter vpcFilter = new Filter().withName("vpc-id").withValues(vpcId);
    request = request.withFilters(vpcFilter);
  }
  DescribeNetworkInterfacesResult result = ec2Client.describeNetworkInterfaces(request);
  return result.getNetworkInterfaces();
}

代码示例来源:origin: com.netflix.dynomitemanager/dynomitemanager-common

protected String getVpcGroupId() {
  AmazonEC2 client = null;
  try {
    client = getEc2Client();
    Filter nameFilter = new Filter().withName("group-name").withValues(envVariables.getDynomiteClusterName()); // SG
    Filter vpcFilter = new Filter().withName("vpc-id").withValues(retriever.getVpcId());
    logger.info("Dynomite name: " + envVariables.getDynomiteClusterName());
    DescribeSecurityGroupsRequest req = new DescribeSecurityGroupsRequest().withFilters(nameFilter, vpcFilter);
    DescribeSecurityGroupsResult result = client.describeSecurityGroups(req);
    for (SecurityGroup group : result.getSecurityGroups()) {
      logger.debug(String.format("got group-id:%s for group-name:%s,vpc-id:%s", group.getGroupId(),
          envVariables.getDynomiteClusterName(), retriever.getVpcId()));
      return group.getGroupId();
    }
    logger.error(String.format("unable to get group-id for group-name=%s vpc-id=%s",
        envVariables.getDynomiteClusterName(), retriever.getVpcId()));
    return "";
  } finally {
    if (client != null)
      client.shutdown();
  }
}

相关文章