List of usage examples for com.amazonaws.services.ec2.model GroupIdentifier getGroupName
public String getGroupName()
The name of the security group.
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; }