List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client describeSubnets
@Override
public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest request)
Describes one or more of your subnets.
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); }