Example usage for com.amazonaws.services.ec2.model ModifyInstanceAttributeRequest withInstanceType

List of usage examples for com.amazonaws.services.ec2.model ModifyInstanceAttributeRequest withInstanceType

Introduction

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

Prototype


public ModifyInstanceAttributeRequest withInstanceType(String instanceType) 

Source Link

Document

Changes the instance type to the specified value.

Usage

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  ww .  ja  v  a  2 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));
            }
        }
    }
}