List of usage examples for com.amazonaws.services.ec2.model Filter Filter
public Filter(String name)
From source file:Conductor.java
License:Open Source License
/** * Gets number of current running and pending instances in a security group. * // w w w . j a v a 2 s .c om * * @param inTheSecurityGroup if we put null for this argument it gives all of a region instances. * @return */ private static int getNumberOfPendingAndRunnedInstances(String inTheSecurityGroup) { try { List<Filter> ls = new ArrayList<Filter>(); ls.add(new Filter("instance-state-name").withValues("running").withValues("pending")); // Get the instances in the security group. if (inTheSecurityGroup.length() > 0) ls.add(new Filter("group-name").withValues(inTheSecurityGroup)); DescribeInstancesResult describeInstancesRequest = ec2 .describeInstances(new DescribeInstancesRequest().withFilters(ls)); // instances.getPlacement().getAvailabilityZone(); List<Reservation> reservations = describeInstancesRequest.getReservations(); Set<Instance> instances = new HashSet<Instance>(); for (Reservation reservation : reservations) { instances.addAll(reservation.getInstances()); // System.out.println(reservation.getInstances()); } return instances.size(); } catch (Exception e) { DebugMessage.ShowErrors("getNumberOfPendingAndRunnedInstances()", e.getMessage(), "", true); return -1; } }
From source file:Conductor.java
License:Open Source License
/** * Get number of running,pending,stopped,terminated,stopping,shutting-down servers in one security group. * @param typeOfReport/*from ww w . j a v a 2 s.com*/ * @return */ private static int getNumberofInstances(int typeOfReport) { try { List<Filter> ls = new ArrayList<Filter>(); if (typeOfReport == 0) { ls.add(new Filter("instance-state-name").withValues("running")); } else if (typeOfReport == 1) { ls.add(new Filter("instance-state-name").withValues("pending")); } else if (typeOfReport == 2) { ls.add(new Filter("instance-state-name").withValues("stopped")); } else if (typeOfReport == 3) { ls.add(new Filter("instance-state-name").withValues("terminated")); } else if (typeOfReport == 4) { ls.add(new Filter("instance-state-name").withValues("stopping")); } else if (typeOfReport == 5) { ls.add(new Filter("instance-state-name").withValues("shutting-down")); } else if (typeOfReport == 6) { ls.add(new Filter("instance-state-name").withValues("running").withValues("pending")); } else { ls.add(new Filter("instance-state-name").withValues("pending")); ls.add(new Filter("instance-state-name").withValues("running")); } // Get the instances in the security group. ls.add(new Filter("group-name").withValues(config.getProperty("InstanceAmiSecurityGroup"))); DescribeInstancesResult describeInstancesRequest = ec2 .describeInstances(new DescribeInstancesRequest().withFilters(ls)); // instances.getPlacement().getAvailabilityZone(); List<Reservation> reservations = describeInstancesRequest.getReservations(); Set<Instance> instances = new HashSet<Instance>(); for (Reservation reservation : reservations) { instances.addAll(reservation.getInstances()); } return instances.size(); } catch (Exception e) { DebugMessage.ShowErrors("getNumberofInstances()", e.getMessage(), "", true); return -1; } }
From source file:Conductor.java
License:Open Source License
/** * Returns a security group or in a region running and pending servers. * If inTheSecurityGroup = "" then it returns all of servers (running and pending) in a region. * //w w w . j a va2 s.c o m * @param inTheSecurityGroup * @return */ public static String restGetServersInfo(String inTheSecurityGroup) { try { List<Filter> ls = new ArrayList<Filter>(); ls.add(new Filter("instance-state-name").withValues("running").withValues("pending")); // Get the instances in the security group if . if (inTheSecurityGroup.length() > 0) ls.add(new Filter("group-name").withValues(inTheSecurityGroup)); DescribeInstancesResult describeInstancesRequest = ec2 .describeInstances(new DescribeInstancesRequest().withFilters(ls)); List<Reservation> reservations = describeInstancesRequest.getReservations(); Set<Instance> instances = new HashSet<Instance>(); String strResulttoReturn = null; for (Reservation reservation : reservations) { instances.addAll(reservation.getInstances()); // System.out.println(reservation.getInstances().toString()); strResulttoReturn += reservation.getInstances().toString(); } return strResulttoReturn; } catch (Exception e) { DebugMessage.ShowErrors("restGetServersInfo()", e.getMessage(), "", true); return ""; } }
From source file:com.bloomreach.bstore.highavailability.zookeeper.ZkClient.java
License:Apache License
/** * Fetch the public DNS names for the corresponding private Ips. SolrCloud defaults to private ips for all * interactions. If you want to run HAFT locally to copy data across 2 different zookeeper clusters, then we need * public IP translations to access the index. This method helps achieve that. * * @return {@link #getZkClusterData()} with private Ip to Public DNS Mapping based on EC2 api. *//*from w w w.j a v a2s.c o m*/ public ZkClusterData translatePrivateIpToPublicHostNames() { AWSCredentials credentials = new BasicAWSCredentials(AwsConfigReader.fetchAccessKey(), AwsConfigReader.fetchSecretyKey()); AmazonEC2 ec2 = new AmazonEC2Client(credentials); Set<String> publicDnsNameHosts = new HashSet<String>(); Map<String, String> privateIptoPublicHostNames = new HashMap<String, String>(); if (allSolrNodes.isEmpty()) { logger.info("No valid solr hosts are found. Cannot do any mapping"); return zkClusterData; } //Describe Filter with private-ips matching all solr nodes DescribeInstancesRequest request = new DescribeInstancesRequest() .withFilters(new Filter("private-ip-address").withValues(allSolrNodes)); DescribeInstancesResult describeInstancesResult = ec2.describeInstances(request); List<Reservation> reservations = describeInstancesResult.getReservations(); //Iterate over all instances and map their private Ip to Public Host Name logger.info("Fetching Public HostNames...."); for (Reservation reservation : reservations) { List<Instance> instances = reservation.getInstances(); for (Instance instance : instances) { logger.info("Private to Public Name of the Host is " + instance.getPrivateIpAddress() + " => " + instance.getPublicDnsName()); publicDnsNameHosts.add(instance.getPublicDnsName()); privateIptoPublicHostNames.put(instance.getPrivateIpAddress(), instance.getPublicDnsName()); } } //Point all zk data to point to the public dns names zkClusterData.updateSolrNodes(publicDnsNameHosts); //Set the data in a map so that it doesn't need to get recomputed by every function needing hostnames zkClusterData.setPrivateIpToPublicHostNameMap(privateIptoPublicHostNames); return zkClusterData; }
From source file:com.dtolabs.rundeck.ec2.NodeGenerator.java
License:Apache License
private static Set<Instance> performQuery(AWSCredentials credentials, final String endPoint, final ArrayList<String> filterParams) { AmazonEC2Client ec2 = new AmazonEC2Client(credentials); if (null != endPoint && !"".equals(endPoint) && !"-".equals(endPoint)) { ec2.setEndpoint(endPoint);/*from w ww .j a va 2 s .c o m*/ } //create "running" filter ArrayList<Filter> filters = new ArrayList<Filter>(); Filter filter = new Filter("instance-state-name").withValues(InstanceStateName.Running.toString()); filters.add(filter); if (null != filterParams) { for (final String filterParam : filterParams) { String[] x = filterParam.split("=", 2); if (!"".equals(x[0]) && !"".equals(x[1])) { filters.add(new Filter(x[0]).withValues(x[1])); } } } DescribeInstancesRequest request = new DescribeInstancesRequest().withFilters(filters); DescribeInstancesResult describeInstancesRequest = ec2.describeInstances(request); List<Reservation> reservations = describeInstancesRequest.getReservations(); Set<Instance> instances = new HashSet<Instance>(); for (final Reservation reservation : reservations) { instances.addAll(reservation.getInstances()); } return instances; }
From source file:com.dtolabs.rundeck.plugin.resources.ec2.InstanceToNodeMapper.java
License:Apache License
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);//from w ww .j a va 2 s. c o m } 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])); } } } return filters; }
From source file:com.hazelcast.samples.amazon.elasticbeanstalk.HazelcastInstanceFactory.java
License:Open Source License
protected Properties getAwsProperties() { EC2MetadataUtils.InstanceInfo instanceInfo = EC2MetadataUtils.getInstanceInfo(); String instanceId = instanceInfo.getInstanceId(); // EB sets the environment ID and name as the elasticbeanstalk:environment-id and // elasticbeanstalk:environment-name EC2 tags on all of the parts of an EB app environment: load balancer, // EC2 instances, security groups, etc. Surprisingly, EC2 tags aren't available to instances through the // instance metadata interface, but they are available through the normal AWS APIs DescribeTags call. Collection<Filter> filters = new ArrayList<Filter>(); filters.add(new Filter("resource-type").withValues("instance")); filters.add(new Filter("resource-id").withValues(instanceId)); filters.add(new Filter("key").withValues(ELASTICBEANSTALK_ENVIRONMENT_NAME)); DescribeTagsRequest describeTagsRequest = new DescribeTagsRequest(); describeTagsRequest.setFilters(filters); DescribeTagsResult describeTagsResult = amazonEC2.describeTags(describeTagsRequest); if (describeTagsResult == null || describeTagsResult.getTags().isEmpty()) { throw new IllegalStateException( "No tag " + ELASTICBEANSTALK_ENVIRONMENT_NAME + " found for instance " + instanceId + "."); }//w w w . j av a 2 s. c o m String environmentName = describeTagsResult.getTags().get(0).getValue(); String environmentPassword = MD5Util.toMD5String(environmentName); Properties properties = new Properties(); properties.setProperty(HAZELCAST_ENVIRONMENT_NAME, environmentName); properties.setProperty(HAZELCAST_ENVIRONMENT_PASSWORD, environmentPassword); properties.setProperty(HAZELCAST_AWS_IAM_ROLE, ELASTICBEANSTALK_EC2_ROLE_NAME); properties.setProperty(HAZELCAST_AWS_REGION, instanceInfo.getRegion()); return properties; }
From source file:com.lunabeat.dooper.HadoopCluster.java
License:Apache License
/** * * @return whether security groups exist for this cluster. *//*from www .j av a2s. c om*/ public boolean groupsExist() { update(); DescribeSecurityGroupsResult dsr = _ec2.describeSecurityGroups(new DescribeSecurityGroupsRequest() .withFilters(new Filter(GROUP_NAME_KEY).withValues(_groupName, _masterGroupName))); if (dsr.getSecurityGroups().size() > 0) { return true; } return false; }
From source file:com.netflix.spinnaker.clouddriver.aws.agent.ReconcileClassicLinkSecurityGroupsAgent.java
License:Apache License
@Override public void run() { if (!deployDefaults.isReconcileClassicLinkAccount(account)) { return;//from w ww. java 2 s . co m } log.info("Checking classic link security groups in {}/{}", account.getName(), region); AmazonEC2 ec2 = amazonClientProvider.getAmazonEC2(account, region, true); List<String> classicLinkVpcIds = ec2.describeVpcClassicLink().getVpcs().stream() .filter(VpcClassicLink::getClassicLinkEnabled).map(VpcClassicLink::getVpcId) .collect(Collectors.toList()); if (classicLinkVpcIds.size() > 1) { log.warn("Multiple classicLinkVpcs found: {}", classicLinkVpcIds); throw new IllegalStateException("More than 1 classicLinkVpc found: " + classicLinkVpcIds); } if (classicLinkVpcIds.isEmpty()) { return; } String classicLinkVpcId = classicLinkVpcIds.get(0); RateLimiter apiRequestRateLimit = RateLimiter.create(5); final Map<String, ClassicLinkInstance> classicLinkInstances = new HashMap<>(); DescribeInstancesRequest describeInstances = new DescribeInstancesRequest().withMaxResults(500); while (true) { apiRequestRateLimit.acquire(); DescribeInstancesResult instanceResult = ec2.describeInstances(describeInstances); instanceResult.getReservations().stream().flatMap(r -> r.getInstances().stream()) .filter(i -> i.getVpcId() == null) .filter(i -> Optional .ofNullable(i.getState()).filter(is -> is.getCode() == RUNNING_STATE).isPresent()) .filter(this::isInstanceOldEnough) .map(i -> new ClassicLinkInstance().withInstanceId(i.getInstanceId()) .withVpcId(classicLinkVpcId).withTags(i.getTags())) .forEach(cli -> classicLinkInstances.put(cli.getInstanceId(), cli)); if (instanceResult.getNextToken() == null) { break; } describeInstances.setNextToken(instanceResult.getNextToken()); } DescribeClassicLinkInstancesRequest request = new DescribeClassicLinkInstancesRequest() .withMaxResults(1000); while (true) { apiRequestRateLimit.acquire(); DescribeClassicLinkInstancesResult result = ec2.describeClassicLinkInstances(request); result.getInstances().forEach(i -> classicLinkInstances.put(i.getInstanceId(), i)); if (result.getNextToken() == null) { break; } request.setNextToken(result.getNextToken()); } log.info("{} existing classic instances in {}/{}", classicLinkInstances.size(), account.getName(), region); Map<String, String> groupNamesToIds = ec2 .describeSecurityGroups(new DescribeSecurityGroupsRequest() .withFilters(new Filter("vpc-id").withValues(classicLinkVpcId))) .getSecurityGroups().stream() .collect(Collectors.toMap(SecurityGroup::getGroupName, SecurityGroup::getGroupId)); reconcileInstances(ec2, groupNamesToIds, classicLinkInstances.values()); }
From source file:com.noctarius.hazelcast.aws.HazelcastAwsDiscoveryStrategy.java
License:Open Source License
private void configureFilter(DescribeInstancesRequest instancesRequest, String key, String... values) { instancesRequest.withFilters(new Filter(key).withValues(values)); }