Example usage for com.amazonaws.services.ec2 AmazonEC2Client deleteSecurityGroup

List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client deleteSecurityGroup

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2 AmazonEC2Client deleteSecurityGroup.

Prototype

@Override
public DeleteSecurityGroupResult deleteSecurityGroup(DeleteSecurityGroupRequest request) 

Source Link

Document

Deletes a security group.

Usage

From source file:n3phele.factory.ec2.VirtualServerResource.java

License:Open Source License

private boolean makeSecurityGroup(String groupName, String id, String secret, URI location, String to,
        String firstName, String lastName) {
    AmazonEC2Client client = null;
    client = getEC2Client(id, secret, location);
    boolean found = true;
    boolean failed = false;
    try {/*from   w ww  .jav  a2  s  .  co m*/
        client.createSecurityGroup(new CreateSecurityGroupRequest().withGroupName("n3phele-" + groupName)
                .withDescription("n3phele " + groupName + " security group"));

        String ownerId = null;
        DescribeSecurityGroupsResult newGroupResult = client.describeSecurityGroups();
        for (SecurityGroup g : newGroupResult.getSecurityGroups()) {
            if (g.getGroupName().equals("n3phele-" + groupName)) {
                ownerId = g.getOwnerId();
            }
        }
        if (ownerId == null)
            return false;
        log.info("found ownerId of " + ownerId);

        log.info("adding ssh ports");
        try {
            client.authorizeSecurityGroupIngress(
                    new AuthorizeSecurityGroupIngressRequest().withGroupName("n3phele-" + groupName)
                            .withCidrIp("0.0.0.0/0").withIpProtocol("tcp").withFromPort(22).withToPort(22));
        } catch (Exception e) {
            log.log(Level.SEVERE, "Create security group " + groupName, e);
            failed = true;
        }

        log.info("adding agent ports");
        try {
            client.authorizeSecurityGroupIngress(
                    new AuthorizeSecurityGroupIngressRequest().withGroupName("n3phele-" + groupName)
                            .withCidrIp("0.0.0.0/0").withIpProtocol("tcp").withFromPort(8887).withToPort(8887));
        } catch (Exception e) {
            log.log(Level.SEVERE, "Create security group " + groupName, e);
            failed = true;
        }

        if (!failed) {
            log.info("adding self access");

            try {
                List<IpPermission> permissions = new ArrayList<IpPermission>();

                UserIdGroupPair userIdGroupPairs = new UserIdGroupPair().withUserId(ownerId)
                        .withGroupName("n3phele-" + groupName);

                permissions.add(new IpPermission().withIpProtocol("icmp").withFromPort(-1).withToPort(-1)
                        .withUserIdGroupPairs(userIdGroupPairs));

                permissions.add(new IpPermission().withIpProtocol("tcp").withFromPort(1).withToPort(65535)
                        .withUserIdGroupPairs(userIdGroupPairs));

                permissions.add(new IpPermission().withIpProtocol("udp").withFromPort(1).withToPort(65535)
                        .withUserIdGroupPairs(userIdGroupPairs));

                log.info("adding icmp/tcp/udp");

                client.authorizeSecurityGroupIngress(
                        new AuthorizeSecurityGroupIngressRequest("n3phele-" + groupName, permissions));
            } catch (Exception e) {
                log.log(Level.WARNING, "Error adding self access to group " + groupName, e);
            }
        }

        if (failed) {
            client.deleteSecurityGroup(new DeleteSecurityGroupRequest().withGroupName("n3phele-" + groupName));
            found = false;
        } else {
            sendSecurityGroupNotificationEmail("n3phele-" + groupName, to, firstName, lastName, location);
        }

    } catch (Exception e) {
        log.log(Level.SEVERE, "Create security group " + groupName, e);
        client.deleteSecurityGroup(new DeleteSecurityGroupRequest().withGroupName("n3phele-" + groupName));
        found = false;
    }
    return found;
}