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

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

Introduction

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

Prototype


public DescribeSecurityGroupsRequest withGroupNames(java.util.Collection<String> groupNames) 

Source Link

Document

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

Usage

From source file:com.appdynamics.connectors.AWSConnector.java

License:Apache License

private void validateAndConfigureSecurityGroups(List<String> securityGroupNames, AmazonEC2 connector)
        throws ConnectorException {
    DescribeSecurityGroupsRequest describeSecurityGroupsRequest = new DescribeSecurityGroupsRequest();
    DescribeSecurityGroupsResult describeSecurityGroupsResult = connector
            .describeSecurityGroups(describeSecurityGroupsRequest.withGroupNames(securityGroupNames));

    String controllerIp = "0.0.0.0/0";
    int agentPort = controllerServices.getDefaultAgentPort();

    // check if any one of the security group
    // already has agent port and controller ip
    List<SecurityGroup> securityGroups = describeSecurityGroupsResult.getSecurityGroups();
    for (SecurityGroup securityGroup : securityGroups) {
        List<IpPermission> ipPermissions = securityGroup.getIpPermissions();
        for (IpPermission permission : ipPermissions) {
            if (permission.getIpRanges().contains(controllerIp)
                    && (agentPort >= permission.getFromPort() && agentPort <= permission.getToPort())) {
                return;
            }//from w  w w.jav a2 s. c o m
        }
    }

    String securityGroup = null;

    if (securityGroups.contains(Utils.DEFAULT_SECURITY_GROUP)) {
        securityGroup = Utils.DEFAULT_SECURITY_GROUP;
    } else {
        securityGroup = securityGroups.get(0).getGroupName();
    }

    IpPermission ipPermission = new IpPermission();
    ipPermission.setFromPort(agentPort);
    ipPermission.setToPort(agentPort);
    ipPermission.setIpProtocol("tcp");
    ipPermission.setIpRanges(Lists.newArrayList(controllerIp));
    connector.authorizeSecurityGroupIngress(
            new AuthorizeSecurityGroupIngressRequest(securityGroup, Lists.newArrayList(ipPermission)));
}

From source file:com.netflix.simianarmy.client.aws.AWSClient.java

License:Apache License

/**
 * Describe a set of security groups./*ww w .jav  a2 s.com*/
 *
 * @param groupNames the names of the groups to find
 * @return a list of matching groups
 */
public List<SecurityGroup> describeSecurityGroups(String... groupNames) {
    AmazonEC2 ec2Client = ec2Client();
    DescribeSecurityGroupsRequest request = new DescribeSecurityGroupsRequest();

    if (groupNames == null || groupNames.length == 0) {
        LOGGER.info(String.format("Getting all EC2 security groups in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting EC2 security groups for %d names in region %s.", groupNames.length,
                region));
        request.withGroupNames(groupNames);
    }

    DescribeSecurityGroupsResult result;
    try {
        result = ec2Client.describeSecurityGroups(request);
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("InvalidGroup.NotFound")) {
            LOGGER.info("Got InvalidGroup.NotFound error for security groups; returning empty list");
            return Collections.emptyList();
        }
        throw e;
    }

    List<SecurityGroup> securityGroups = result.getSecurityGroups();
    LOGGER.info(String.format("Got %d EC2 security groups in region %s.", securityGroups.size(), region));
    return securityGroups;
}

From source file:com.netflix.spinnaker.clouddriver.aws.security.DefaultAWSAccountInfoLookup.java

License:Apache License

@Override
public String findAccountId() {
    AmazonEC2 ec2 = amazonClientProvider.getAmazonEC2(credentialsProvider, AmazonClientProvider.DEFAULT_REGION);
    try {// w w w .j a  va 2 s . c o  m
        List<Vpc> vpcs = ec2.describeVpcs().getVpcs();
        boolean supportsByName = false;
        if (vpcs.isEmpty()) {
            supportsByName = true;
        } else {
            for (Vpc vpc : vpcs) {
                if (vpc.getIsDefault()) {
                    supportsByName = true;
                    break;
                }
            }
        }

        DescribeSecurityGroupsRequest request = new DescribeSecurityGroupsRequest();
        if (supportsByName) {
            request.withGroupNames(DEFAULT_SECURITY_GROUP_NAME);
        }
        DescribeSecurityGroupsResult result = ec2.describeSecurityGroups(request);

        for (SecurityGroup sg : result.getSecurityGroups()) {
            //if there is a vpcId or it is the default security group it won't be an EC2 cross account group
            if ((sg.getVpcId() != null && sg.getVpcId().length() > 0)
                    || DEFAULT_SECURITY_GROUP_NAME.equals(sg.getGroupName())) {
                return sg.getOwnerId();
            }
        }

        throw new IllegalArgumentException("Unable to lookup accountId with provided credentials");
    } catch (AmazonServiceException ase) {
        if ("AccessDenied".equals(ase.getErrorCode())) {
            String message = ase.getMessage();
            Matcher matcher = IAM_ARN_PATTERN.matcher(message);
            if (matcher.matches()) {
                return matcher.group(1);
            }
        }
        throw ase;
    }
}