use of com.amazonaws.services.ec2.model.InternetGatewayAttachment in project cloudbreak by hortonworks.
the class AwsSetup method validateExistingIGW.
private void validateExistingIGW(AwsNetworkView awsNetworkView, AmazonEC2 amazonEC2Client) {
if (awsNetworkView.isExistingIGW()) {
DescribeInternetGatewaysRequest describeInternetGatewaysRequest = new DescribeInternetGatewaysRequest();
describeInternetGatewaysRequest.withInternetGatewayIds(awsNetworkView.getExistingIGW());
DescribeInternetGatewaysResult describeInternetGatewaysResult = amazonEC2Client.describeInternetGateways(describeInternetGatewaysRequest);
if (describeInternetGatewaysResult.getInternetGateways().size() < 1) {
throw new CloudConnectorException(String.format(IGW_DOES_NOT_EXIST_MSG, awsNetworkView.getExistingIGW()));
} else {
InternetGateway internetGateway = describeInternetGatewaysResult.getInternetGateways().get(0);
InternetGatewayAttachment attachment = internetGateway.getAttachments().get(0);
if (attachment != null && !attachment.getVpcId().equals(awsNetworkView.getExistingVPC())) {
throw new CloudConnectorException(String.format(IGWVPC_DOES_NOT_EXIST_MSG, awsNetworkView.getExistingIGW(), awsNetworkView.getExistingVPC()));
}
}
}
}
use of com.amazonaws.services.ec2.model.InternetGatewayAttachment in project photon-model by vmware.
the class TestAWSNetworkService method testEnvironmentCreation.
/*
* Test covers the necessary elements for a successful environment creation
* These environmental elements are necessary before any VM instances can be
* created
*
* - Internet Gateway
* - VPC
* - Subnet
* - Route to IG
*
*/
@Test
public void testEnvironmentCreation() throws Throwable {
boolean attached = false;
String gatewayID = this.netClient.createInternetGateway();
assertTrue(gatewayID != null);
String vpcID = this.netClient.createVPC(AWS_DEFAULT_SUBNET_CIDR);
assertTrue(vpcID != null);
String subnetID = this.netClient.createSubnet(AWS_DEFAULT_SUBNET_CIDR, vpcID).getSubnetId();
this.netClient.attachInternetGateway(vpcID, gatewayID);
InternetGateway gw = this.netClient.getInternetGateway(gatewayID);
List<InternetGatewayAttachment> attachments = gw.getAttachments();
// ensure we are attached to newly created vpc
for (InternetGatewayAttachment attachment : attachments) {
if (attachment.getVpcId().equalsIgnoreCase(vpcID)) {
attached = true;
break;
}
}
assertTrue(attached);
RouteTable routeTable = this.netClient.getMainRouteTable(vpcID);
this.netClient.createInternetRoute(gatewayID, routeTable.getRouteTableId(), "0.0.0.0/0");
// remove resources
this.netClient.detachInternetGateway(vpcID, gatewayID);
this.netClient.deleteInternetGateway(gatewayID);
this.netClient.deleteSubnet(subnetID);
this.netClient.deleteVPC(vpcID);
}
use of com.amazonaws.services.ec2.model.InternetGatewayAttachment in project cloudbreak by hortonworks.
the class AwsPlatformResources method gateways.
@Override
public CloudGateWays gateways(CloudCredential cloudCredential, Region region, Map<String, String> filters) {
AmazonEC2Client ec2Client = awsClient.createAccess(cloudCredential);
Map<String, Set<CloudGateWay>> resultCloudGateWayMap = new HashMap<>();
CloudRegions regions = regions(cloudCredential, region, filters);
for (Entry<Region, List<AvailabilityZone>> regionListEntry : regions.getCloudRegions().entrySet()) {
if (region == null || Strings.isNullOrEmpty(region.value()) || regionListEntry.getKey().value().equals(region.value())) {
ec2Client.setRegion(RegionUtils.getRegion(regionListEntry.getKey().value()));
DescribeInternetGatewaysRequest describeInternetGatewaysRequest = new DescribeInternetGatewaysRequest();
DescribeInternetGatewaysResult describeInternetGatewaysResult = ec2Client.describeInternetGateways(describeInternetGatewaysRequest);
Set<CloudGateWay> gateWays = new HashSet<>();
for (InternetGateway internetGateway : describeInternetGatewaysResult.getInternetGateways()) {
CloudGateWay cloudGateWay = new CloudGateWay();
cloudGateWay.setId(internetGateway.getInternetGatewayId());
cloudGateWay.setName(internetGateway.getInternetGatewayId());
Collection<String> vpcs = new ArrayList<>();
for (InternetGatewayAttachment internetGatewayAttachment : internetGateway.getAttachments()) {
vpcs.add(internetGatewayAttachment.getVpcId());
}
Map<String, Object> properties = new HashMap<>();
properties.put("attachment", vpcs);
cloudGateWay.setProperties(properties);
gateWays.add(cloudGateWay);
}
for (AvailabilityZone availabilityZone : regionListEntry.getValue()) {
resultCloudGateWayMap.put(availabilityZone.value(), gateWays);
}
}
}
return new CloudGateWays(resultCloudGateWayMap);
}
Aggregations