Example usage for com.amazonaws.services.ec2.model DescribeSecurityGroupsRequest setGroupNames

List of usage examples for com.amazonaws.services.ec2.model DescribeSecurityGroupsRequest setGroupNames

Introduction

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

Prototype


public void setGroupNames(java.util.Collection<String> groupNames) 

Source Link

Document

[EC2-Classic and default VPC only] The names of the security groups.

Usage

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

/**
 * Checks if the security group is already present in the given region. If
 * yes, then returns its group id. If not, present the returns null.
 *
 * @param groupName to be checked for presence.
 * @param region/* ww  w. j  a  v  a  2  s . c om*/
 * @return id of the security group
 */
public String getSecurityGroupId(String groupName, String region) {
    if (groupName == null || groupName.isEmpty()) {
        return null;
    }

    DescribeSecurityGroupsRequest describeSecurityGroupsRequest = new DescribeSecurityGroupsRequest();
    if (AWSExtensionContext.getInstance().isOperatingInVPC()) {
        if (getVpcIds().size() > 0) {
            // vpc id filter
            Set<Filter> filters = getFilters(getVpcIds().iterator().next(), lbSecurityGroupName);
            describeSecurityGroupsRequest.setFilters(filters);
        } else {
            List<String> groupNames = new ArrayList<String>();
            groupNames.add(groupName);
            describeSecurityGroupsRequest.setGroupNames(groupNames);
        }
    }

    try {
        ec2Client.setEndpoint(String.format(Constants.EC2_ENDPOINT_URL_FORMAT, region));

        DescribeSecurityGroupsResult describeSecurityGroupsResult = ec2Client
                .describeSecurityGroups(describeSecurityGroupsRequest);

        List<SecurityGroup> securityGroups = describeSecurityGroupsResult.getSecurityGroups();

        if (securityGroups != null && securityGroups.size() > 0) {
            return securityGroups.get(0).getGroupId();
        } else {
            log.warn("Could not find security group id for group " + groupName);
        }
    } catch (AmazonClientException e) {
        log.debug("Could not describe security groups.", e);
    }

    return null;
}

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

/**
 * Returns the security group id for the given region if it is already
 * present. If it is not already present then creates a new security group
 * in that region./*from ww w  . j  av a  2 s  . co  m*/
 *
 * @param region
 * @param vpcId
 * @return Id of the security group
 * @throws LoadBalancerExtensionException
 */
public String getSecurityGroupIdForRegion(String region, String vpcId) throws LoadBalancerExtensionException {
    //        if (region == null)
    //            return null;
    //
    //        if (this.regionToSecurityGroupIdMap.contains(region)) {
    //            return this.regionToSecurityGroupIdMap.get(region);
    //        } else {
    //            // Get the the security group id if it is already present.
    //            String securityGroupId = getSecurityGroupId(
    //                    this.lbSecurityGroupName, region);
    //
    //            if (securityGroupId == null) {
    //                securityGroupId = createSecurityGroup(this.lbSecurityGroupName,
    //                        this.lbSecurityGroupDescription, region, vpcId);
    //            }
    //
    //            this.regionToSecurityGroupIdMap.put(region, securityGroupId);
    //
    //            return securityGroupId;
    //        }

    // if lb security group id is defined, use that, do not create a new security group
    if (lbSecurityGroupId != null && !lbSecurityGroupId.isEmpty()) {
        return lbSecurityGroupId;
    }

    // check if the security group is already exists
    DescribeSecurityGroupsRequest describeSecurityGroupsReq = new DescribeSecurityGroupsRequest();
    // set filter for vpc id
    if (vpcId != null) {
        Set<Filter> filters = getFilters(vpcId, lbSecurityGroupName);
        describeSecurityGroupsReq.setFilters(filters);
    } else {
        // no vpc id defined, assume default vpc
        List<String> groupNames = new ArrayList<String>();
        groupNames.add(lbSecurityGroupName);
        describeSecurityGroupsReq.setGroupNames(groupNames);
    }

    DescribeSecurityGroupsResult describeSecurityGroupsRes = null;
    try {
        ec2Client.setEndpoint(String.format(Constants.EC2_ENDPOINT_URL_FORMAT, region));

        describeSecurityGroupsRes = ec2Client.describeSecurityGroups(describeSecurityGroupsReq);
        if (describeSecurityGroupsRes != null && describeSecurityGroupsRes.getSecurityGroups() != null) {
            // already exists, return the id
            if (describeSecurityGroupsRes.getSecurityGroups().size() > 0) {
                return describeSecurityGroupsRes.getSecurityGroups().get(0).getGroupId();
            }
        }

    } catch (AmazonClientException e) {
        throw new LoadBalancerExtensionException(e.getMessage(), e);
    }
    return createSecurityGroup(this.lbSecurityGroupName, this.lbSecurityGroupDescription, region, vpcId);
}