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

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

Introduction

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

Prototype

@Override
public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest request) 

Source Link

Document

Describes one or more of your subnets.

Usage

From source file:com.cloudera.director.aws.ec2.EC2InstanceTemplateConfigurationValidator.java

License:Apache License

/**
 * Validates the configured subnet ID./*  w  w w .j a v  a  2s .  co  m*/
 *
 * @param client              the EC2 client
 * @param configuration       the configuration to be validated
 * @param accumulator         the exception condition accumulator
 * @param localizationContext the localization context
 */
@VisibleForTesting
void checkSubnetId(AmazonEC2Client client, Configured configuration,
        PluginExceptionConditionAccumulator accumulator, LocalizationContext localizationContext) {
    String subnetId = configuration.getConfigurationValue(SUBNET_ID, localizationContext);
    LOG.info(">> Describing subnet '{}'", subnetId);

    try {
        DescribeSubnetsResult result = client
                .describeSubnets(new DescribeSubnetsRequest().withSubnetIds(subnetId));
        checkCount(accumulator, SUBNET_ID, localizationContext, "Subnet", result.getSubnets());
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().startsWith(INVALID_SUBNET_ID)) {
            addError(accumulator, SUBNET_ID, localizationContext, null, INVALID_SUBNET_MSG, subnetId);
        } else {
            throw Throwables.propagate(e);
        }
    }
}

From source file:com.tvarit.plugin.SubnetFinder.java

License:Open Source License

public void find(MavenProject project, AmazonEC2Client amazonEC2Client, String projectName,
        final StringBuilder publicSubnetIdBuilder, final StringBuilder publicSubnetAzsBuilder,
        final String subnetType) {

    final DescribeSubnetsRequest describeAppSubnetsRequest = new DescribeSubnetsRequest();
    final Filter subnetFilter = new Filter().withName("tag-key").withValues(projectName + ":" + subnetType);
    describeAppSubnetsRequest.withFilters(subnetFilter);
    final DescribeSubnetsResult describeSubnetsResult = amazonEC2Client
            .describeSubnets(describeAppSubnetsRequest);
    describeSubnetsResult.getSubnets().stream().forEach(eachSubnet -> {
        publicSubnetAzsBuilder.append(eachSubnet.getAvailabilityZone()).append(",");
        publicSubnetIdBuilder.append(eachSubnet.getSubnetId()).append(",");
    });/*from  ww  w. j  av  a  2  s .  co m*/
    publicSubnetIdBuilder.deleteCharAt(publicSubnetIdBuilder.length() - 1);
    publicSubnetAzsBuilder.deleteCharAt(publicSubnetAzsBuilder.length() - 1);
}

From source file:dsmwatcher.DSMWatcher.java

License:Open Source License

public void isolateInstance(Instance instance, AmazonEC2Client ec2) throws Exception {
    Subnet targetIRSubnet = null;/*  w  w w  .  j  a v a2s.  c  o m*/
    handleAutoScaledInstance(instance); //check for autoscaling, if autoscaled instance detach first 
                                        // to prevent heathcheck failure and termination
    DescribeSubnetsRequest subnetRequest = new DescribeSubnetsRequest().withSubnetIds(instance.getSubnetId());
    List<Subnet> sourceSubnet = ec2.describeSubnets(subnetRequest).getSubnets();
    String targetAZStr = sourceSubnet.get(0).getAvailabilityZone();
    for (String IRSubnet : IRSubnets) {
        subnetRequest = new DescribeSubnetsRequest().withSubnetIds(IRSubnet);
        if (targetAZStr
                .compareTo(ec2.describeSubnets(subnetRequest).getSubnets().get(0).getAvailabilityZone()) == 0) {
            targetIRSubnet = ec2.describeSubnets(subnetRequest).getSubnets().get(0);
        }
    }
    if (targetIRSubnet == null) {
        error("Unable to find an isolation subnet for instance " + instance.getInstanceId());
        return;
    }
    List<InstanceNetworkInterface> ienis = instance.getNetworkInterfaces();
    for (InstanceNetworkInterface ieni : ienis) {
        String eniTag = "";
        List<GroupIdentifier> inititalSecGroups = ieni.getGroups();
        for (GroupIdentifier secGroup : inititalSecGroups) {
            eniTag += secGroup.getGroupId() + ",";
        }
        eniTag = eniTag.substring(0, eniTag.length() - 1);
        DescribeNetworkInterfacesRequest netReq = new DescribeNetworkInterfacesRequest()
                .withNetworkInterfaceIds(ieni.getNetworkInterfaceId());
        DescribeNetworkInterfacesResult netResult = ec2.describeNetworkInterfaces(netReq);
        List<com.amazonaws.services.ec2.model.NetworkInterface> enis = netResult.getNetworkInterfaces();
        for (com.amazonaws.services.ec2.model.NetworkInterface eni : enis) {
            List<Tag> tagSet = eni.getTagSet();
            Tag saveSGTag = new Tag().withKey("PreIsolationSG").withValue(eniTag);
            Tag isolationTag = new Tag().withKey("InIsolation").withValue("True");
            tagSet.add(saveSGTag);
            tagSet.add(isolationTag);
            CreateTagsRequest ctr = new CreateTagsRequest().withResources(eni.getNetworkInterfaceId())
                    .withTags(tagSet);
            ec2.createTags(ctr);
            ModifyNetworkInterfaceAttributeRequest netReqest = new ModifyNetworkInterfaceAttributeRequest()
                    .withNetworkInterfaceId(eni.getNetworkInterfaceId()).withGroups(denyAllSG);
            ec2.modifyNetworkInterfaceAttribute(netReqest);
        }
    }
    CreateNetworkInterfaceRequest newENIReq = new CreateNetworkInterfaceRequest()
            .withSubnetId(targetIRSubnet.getSubnetId()).withGroups(IRSecGrp);
    CreateNetworkInterfaceResult newENIResult = ec2.createNetworkInterface(newENIReq);
    AttachNetworkInterfaceRequest attachReq = new AttachNetworkInterfaceRequest()
            .withNetworkInterfaceId(newENIResult.getNetworkInterface().getNetworkInterfaceId())
            .withInstanceId(instance.getInstanceId())
            .withDeviceIndex(instance.getNetworkInterfaces().size() + 1);
    AttachNetworkInterfaceResult attachResults = ec2.attachNetworkInterface(attachReq);
    NetworkInterfaceAttachmentChanges attachTerm = new NetworkInterfaceAttachmentChanges()
            .withAttachmentId(attachResults.getAttachmentId()).withDeleteOnTermination(true);
    ModifyNetworkInterfaceAttributeRequest setDeleteOnTerm = new ModifyNetworkInterfaceAttributeRequest()
            .withAttachment(attachTerm)
            .withNetworkInterfaceId(newENIResult.getNetworkInterface().getNetworkInterfaceId());
    ec2.modifyNetworkInterfaceAttribute(setDeleteOnTerm);
    CreateTagsRequest tagNewENIReq = new CreateTagsRequest();
    List<Tag> isolationENITags = newENIResult.getNetworkInterface().getTagSet();
    Tag newENITag = new Tag().withKey("IRENI").withValue("True");
    isolationENITags.add(newENITag);
    tagNewENIReq.setTags(isolationENITags);
    tagNewENIReq.withResources(newENIResult.getNetworkInterface().getNetworkInterfaceId());
    ec2.createTags(tagNewENIReq);
}

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

License:Apache License

@Override
public DescribeSubnetsResult describeSubnets(AmazonEC2Client ec2Client,
        DescribeSubnetsRequest describeSubnetsRequest) {
    return ec2Client.describeSubnets(describeSubnetsRequest);
}