List of usage examples for com.amazonaws.services.ec2.model ModifyInstanceAttributeRequest withGroups
public ModifyInstanceAttributeRequest withGroups(java.util.Collection<String> groups)
[EC2-VPC] Changes the security groups of the instance.
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);/* ww w. j av a2 s . c om*/ // 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)); } } } }