Example usage for com.amazonaws.services.ec2.model InstanceAttributeName GroupSet

List of usage examples for com.amazonaws.services.ec2.model InstanceAttributeName GroupSet

Introduction

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

Prototype

InstanceAttributeName GroupSet

To view the source code for com.amazonaws.services.ec2.model InstanceAttributeName GroupSet.

Click Source Link

Usage

From source file:org.finra.dm.dao.impl.Ec2DaoImpl.java

License:Apache License

/**
 * Adds the security groups to an EC2 instance.
 *
 * @param ec2InstanceId, the ec2 instance id.
 * @param securityGroups, security groups to be added.
 * @param awsParams, awsParamsDto object
 *
 * @return updated security groups./*from ww  w .j  av a2  s .  c  o  m*/
 */
@Override
public List<String> addSecurityGroupsToEc2Instance(String ec2InstanceId, List<String> securityGroups,
        AwsParamsDto awsParams) {
    Set<String> updatedSecurityGroups = new HashSet<>();
    for (String securityGroup : securityGroups) {
        updatedSecurityGroups.add(securityGroup);
    }

    // Get existing security groups
    DescribeInstanceAttributeRequest describeInstanceAttributeRequest = new DescribeInstanceAttributeRequest()
            .withInstanceId(ec2InstanceId).withAttribute(InstanceAttributeName.GroupSet);

    DescribeInstanceAttributeResult describeInstanceAttributeResult = ec2Operations
            .describeInstanceAttribute(getEc2Client(awsParams), describeInstanceAttributeRequest);

    List<GroupIdentifier> groups = describeInstanceAttributeResult.getInstanceAttribute().getGroups();
    for (GroupIdentifier groupIdentifier : groups) {
        updatedSecurityGroups.add(groupIdentifier.getGroupId());
    }

    // Add security group on master EC2 instance
    ModifyInstanceAttributeRequest modifyInstanceAttributeRequest = new ModifyInstanceAttributeRequest()
            .withInstanceId(ec2InstanceId).withGroups(updatedSecurityGroups);

    ec2Operations.modifyInstanceAttribute(getEc2Client(awsParams), modifyInstanceAttributeRequest);

    return new ArrayList<>(updatedSecurityGroups);
}