Example usage for com.amazonaws.services.ec2.model GroupIdentifier getGroupName

List of usage examples for com.amazonaws.services.ec2.model GroupIdentifier getGroupName

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model GroupIdentifier getGroupName.

Prototype


public String getGroupName() 

Source Link

Document

The name of the security group.

Usage

From source file:com.chimpler.example.hazelcast.AccountClient.java

License:Apache License

public static HazelcastInstance initHazelcastClient() throws Exception {
    ClientConfig hazelCastClientConfig = new ClientConfig();
    hazelCastClientConfig.getGroupConfig().setName("dev").setPassword("dev-pass");

    AWSCredentialsProvider awsCredentialProvider = new ClasspathPropertiesFileCredentialsProvider(
            "aws.properties");
    AmazonEC2Client ec2 = new AmazonEC2Client(awsCredentialProvider);
    DescribeAvailabilityZonesResult availabilityZonesResult = ec2.describeAvailabilityZones();
    System.out.println("You have access to " + availabilityZonesResult.getAvailabilityZones().size()
            + " Availability Zones.");

    DescribeInstancesResult describeInstancesRequest = ec2.describeInstances();

    for (Reservation reservation : describeInstancesRequest.getReservations()) {
        for (Instance instance : reservation.getInstances()) {
            for (GroupIdentifier group : instance.getSecurityGroups()) {
                if (group.getGroupName().equals("jclouds#hazelcast")) {
                    System.out.println("EC2 instance " + instance.getPublicIpAddress());
                    hazelCastClientConfig.addAddress(instance.getPublicIpAddress(),
                            instance.getPublicIpAddress() + ":5701");
                }//from  w  w  w  . j ava 2  s  . c  o  m
            }
        }
    }
    HazelcastInstance hazelCastClient = HazelcastClient.newHazelcastClient(hazelCastClientConfig);

    return hazelCastClient;
}

From source file:com.netflix.simianarmy.aws.conformity.rule.InstanceInSecurityGroup.java

License:Apache License

/**
 * Gets the security groups for a list of instance ids of the same region. The default implementation
 * is using an AWS client. The method can be overridden in subclasses to get the security groups differently.
 * @param region//  w  w  w.  java2  s .c om
 *      the region of the instances
 * @param instanceIds
 *      the instance ids, all instances should be in the same region.
 * @return
 *      the map from instance id to the list of security group names the instance has
 */
protected Map<String, List<String>> getInstanceSecurityGroups(String region, String... instanceIds) {
    Map<String, List<String>> result = Maps.newHashMap();
    if (instanceIds == null || instanceIds.length == 0) {
        return result;
    }
    AWSClient awsClient = new AWSClient(region, awsCredentialsProvider);
    for (Instance instance : awsClient.describeInstances(instanceIds)) {
        // Ignore instances that are in VPC
        if (StringUtils.isNotEmpty(instance.getVpcId())) {
            LOGGER.info(String.format("Instance %s is in VPC and is ignored.", instance.getInstanceId()));
            continue;
        }

        if (!"running".equals(instance.getState().getName())) {
            LOGGER.info(String.format("Instance %s is not running, state is %s.", instance.getInstanceId(),
                    instance.getState().getName()));
            continue;
        }

        List<String> sgs = Lists.newArrayList();
        for (GroupIdentifier groupId : instance.getSecurityGroups()) {
            sgs.add(groupId.getGroupName());
        }
        result.put(instance.getInstanceId(), sgs);
    }
    return result;
}

From source file:jp.aws.test.ec2.EC2Instance.java

License:Apache License

/**
 * ?//from  w  ww  .ja  v a 2  s  .  c  o  m
 *
 * @note - ????????
 * @return
 * @throws Exception
 */
public List<EC2Item> list() {

    List<EC2Item> ec2ItemList = new ArrayList<EC2Item>();

    // 
    this.clientManager.changeRegion();

    // Reservation?List?
    List<Reservation> reservationList = this.clientManager.ec2().describeInstances().getReservations();

    for (Reservation reservation : reservationList) {
        // EC2?Instance?List?
        List<Instance> instanceList = reservation.getInstances();

        for (Instance instance : instanceList) {
            EC2Item ec2Item = new EC2Item();

            // com.amazonaws.services.ec2.model.Instance
            // http://docs.amazonwebservices.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/services/ec2/model/Instance.html
            ec2Item.architecture = instance.getArchitecture(); // i386,
            // x86_64
            ec2Item.instanceId = instance.getInstanceId(); // i-xxxxxxxx
            ec2Item.instanceType = instance.getInstanceType(); // t1.micro
            ec2Item.keyName = instance.getKeyName(); //
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            ec2Item.launchTime = sdf.format(instance.getLaunchTime()); // 2012-01-01
            // 01:02:03
            // +9:00
            ec2Item.privateDnsName = instance.getPrivateDnsName(); // domU-xxx.compute-1.internal
            ec2Item.privateIpAddress = instance.getPrivateIpAddress(); // 10.xxx.xxx.xxx
            ec2Item.publicDnsName = instance.getPublicDnsName(); // ec2-xxx.compute-1.amazonaws.com
            ec2Item.publicIpAddress = instance.getPublicIpAddress(); // 201.xxx.xxx.xxx
            ec2Item.rootDeviceType = instance.getRootDeviceType(); // ebs /
            // s3
            ec2Item.rootDeviceName = instance.getRootDeviceName(); // /dev/sda1)
            StringBuilder builder = new StringBuilder();
            List<GroupIdentifier> sgs = instance.getSecurityGroups(); // default
            for (GroupIdentifier sg : sgs) {
                builder.append(sg.getGroupName());
                builder.append(", ");
            }
            ec2Item.securityGroups = builder.toString();
            ec2Item.stateName = instance.getState().getName(); // Runnning
            ec2Item.imageId = instance.getImageId(); // ami-xxxxxxxx
            ec2Item.platform = instance.getPlatform(); // Windows
            builder.setLength(0); // ?
            List<Tag> tags = instance.getTags(); // tag
            for (Tag tag : tags) {
                builder.append(tag.getValue());
                builder.append(", ");
            }
            ec2Item.availabilityZone = instance.getPlacement().getAvailabilityZone(); // AvailabilityZone

            // ?
            ec2ItemList.add(ec2Item);
        }
    }

    return ec2ItemList;
}

From source file:jp.primecloud.auto.process.aws.AwsInstanceProcess.java

License:Open Source License

public void modify(AwsProcessClient awsProcessClient, Long instanceNo) {
    AwsInstance awsInstance = awsInstanceDao.read(instanceNo);
    String instanceId = awsInstance.getInstanceId();

    com.amazonaws.services.ec2.model.Instance instance2 = awsCommonProcess.describeInstance(awsProcessClient,
            instanceId);// w  w  w  . jav  a2 s .  c o  m

    // InstanceType
    if (!StringUtils.equals(awsInstance.getInstanceType(), instance2.getInstanceType())) {
        // InstanceType?
        ModifyInstanceAttributeRequest request = new ModifyInstanceAttributeRequest();
        request.withInstanceId(instanceId);
        request.withInstanceType(awsInstance.getInstanceType());
        awsProcessClient.getEc2Client().modifyInstanceAttribute(request);

        // 
        if (log.isInfoEnabled()) {
            log.info(MessageUtils.getMessage("IPROCESS-100161", instanceId));
        }
    }

    // SecurityGroup
    if (BooleanUtils.isTrue(awsProcessClient.getPlatformAws().getVpc())) {
        // ????SecurityGroup
        List<String> groupNames = new ArrayList<String>();
        List<GroupIdentifier> groupIdentifiers = instance2.getSecurityGroups();
        for (GroupIdentifier groupIdentifier : groupIdentifiers) {
            groupNames.add(groupIdentifier.getGroupName());
        }

        // ????SecurityGroup
        List<String> newGroupNames = new ArrayList<String>();
        for (String groupName : StringUtils.split(awsInstance.getSecurityGroups(), ",")) {
            newGroupNames.add(groupName.trim());
        }

        // SecurityGroup???????
        if (!(groupNames.size() == newGroupNames.size()) || !groupNames.containsAll(newGroupNames)) {
            // SecurityGroup?ID??
            List<String> newSecurityGroups = new ArrayList<String>();
            List<SecurityGroup> securityGroups = awsCommonProcess.describeSecurityGroupsByVpcId(
                    awsProcessClient, awsProcessClient.getPlatformAws().getVpcId());
            for (String groupName : newGroupNames) {
                for (SecurityGroup securityGroup : securityGroups) {
                    if (StringUtils.equals(groupName, securityGroup.getGroupName())) {
                        newSecurityGroups.add(securityGroup.getGroupId());
                        break;
                    }
                }
            }

            // SecurityGroup?
            ModifyInstanceAttributeRequest request = new ModifyInstanceAttributeRequest();
            request.withInstanceId(instanceId);
            request.withGroups(newSecurityGroups);
            awsProcessClient.getEc2Client().modifyInstanceAttribute(request);

            // 
            if (log.isInfoEnabled()) {
                log.info(MessageUtils.getMessage("IPROCESS-100162", instanceId));
            }
        }
    }
}

From source file:org.elasticsearch.discovery.ec2.AwsEc2UnicastHostsProvider.java

License:Apache License

@Override
public List<DiscoveryNode> buildDynamicNodes() {
    List<DiscoveryNode> discoNodes = Lists.newArrayList();

    DescribeInstancesResult descInstances;
    try {//  w ww.j  a v a  2  s .c  o m
        // Query EC2 API based on AZ, instance state, and tag.

        // NOTE: we don't filter by security group during the describe instances request for two reasons:
        // 1. differences in VPCs require different parameters during query (ID vs Name)
        // 2. We want to use two different strategies: (all security groups vs. any security groups)
        descInstances = client.describeInstances(buildDescribeInstancesRequest());
    } catch (AmazonClientException e) {
        logger.info("Exception while retrieving instance list from AWS API: {}", e.getMessage());
        logger.debug("Full exception:", e);
        return discoNodes;
    }

    logger.trace("building dynamic unicast discovery nodes...");
    for (Reservation reservation : descInstances.getReservations()) {
        for (Instance instance : reservation.getInstances()) {
            // lets see if we can filter based on groups
            if (!groups.isEmpty()) {
                List<GroupIdentifier> instanceSecurityGroups = instance.getSecurityGroups();
                ArrayList<String> securityGroupNames = new ArrayList<String>();
                ArrayList<String> securityGroupIds = new ArrayList<String>();
                for (GroupIdentifier sg : instanceSecurityGroups) {
                    securityGroupNames.add(sg.getGroupName());
                    securityGroupIds.add(sg.getGroupId());
                }
                if (bindAnyGroup) {
                    // We check if we can find at least one group name or one group id in groups.
                    if (Collections.disjoint(securityGroupNames, groups)
                            && Collections.disjoint(securityGroupIds, groups)) {
                        logger.trace("filtering out instance {} based on groups {}, not part of {}",
                                instance.getInstanceId(), instanceSecurityGroups, groups);
                        // continue to the next instance
                        continue;
                    }
                } else {
                    // We need tp match all group names or group ids, otherwise we ignore this instance
                    if (!(securityGroupNames.containsAll(groups) || securityGroupIds.containsAll(groups))) {
                        logger.trace("filtering out instance {} based on groups {}, does not include all of {}",
                                instance.getInstanceId(), instanceSecurityGroups, groups);
                        // continue to the next instance
                        continue;
                    }
                }
            }

            String address = null;
            switch (hostType) {
            case PRIVATE_DNS:
                address = instance.getPrivateDnsName();
                break;
            case PRIVATE_IP:
                address = instance.getPrivateIpAddress();
                break;
            case PUBLIC_DNS:
                address = instance.getPublicDnsName();
                break;
            case PUBLIC_IP:
                address = instance.getPublicDnsName();
                break;
            }
            if (address != null) {
                try {
                    TransportAddress[] addresses = transportService.addressesFromString(address);
                    // we only limit to 1 addresses, makes no sense to ping 100 ports
                    for (int i = 0; (i < addresses.length && i < UnicastZenPing.LIMIT_PORTS_COUNT); i++) {
                        logger.trace("adding {}, address {}, transport_address {}", instance.getInstanceId(),
                                address, addresses[i]);
                        discoNodes.add(new DiscoveryNode("#cloud-" + instance.getInstanceId() + "-" + i,
                                addresses[i], Version.CURRENT));
                    }
                } catch (Exception e) {
                    logger.warn("failed ot add {}, address {}", e, instance.getInstanceId(), address);
                }
            } else {
                logger.trace("not adding {}, address is null, host_type {}", instance.getInstanceId(),
                        hostType);
            }
        }
    }

    logger.debug("using dynamic discovery nodes {}", discoNodes);

    return discoNodes;
}

From source file:org.occiware.clouddriver.util.InstanceDataFactory.java

License:Apache License

/**
 *
 * @param groups//from   w w w. j  a  v  a2  s .  c o  m
 * @return
 */
private static List<GroupIdentifierDO> buildSecurityGroupsDatas(List<GroupIdentifier> groups) {
    GroupIdentifierDO groupIdentifierDO;
    List<GroupIdentifierDO> groupIdentifierDOs = new ArrayList<>();
    for (GroupIdentifier group : groups) {
        groupIdentifierDO = new GroupIdentifierDO();
        groupIdentifierDO.setGroupId(group.getGroupId());
        groupIdentifierDO.setGroupName(group.getGroupName());
        groupIdentifierDOs.add(groupIdentifierDO);
    }
    return groupIdentifierDOs;
}