Example usage for com.amazonaws.services.ec2.model DescribeRouteTablesRequest DescribeRouteTablesRequest

List of usage examples for com.amazonaws.services.ec2.model DescribeRouteTablesRequest DescribeRouteTablesRequest

Introduction

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

Prototype

DescribeRouteTablesRequest

Source Link

Usage

From source file:com.infinitechaos.vpcviewer.service.impl.VpcServiceImpl.java

License:Open Source License

@Override
@Cacheable(value = CachingConfiguration.ROUTE_TABLE_CACHE, key = "#vpcId", condition = "#bypassCache == false")
public List<RouteTable> getRouteTablesForVpcInRegion(final String vpcId, final String region,
        boolean bypassCache) {
    LOG.info("Retrieving route tables for VPC {} in region {} ({})", vpcId, region, bypassCache);
    DescribeRouteTablesRequest request = new DescribeRouteTablesRequest()
            .withFilters(new Filter().withName("vpc-id").withValues(vpcId));
    DescribeRouteTablesResult result = getClientForRegion(region).describeRouteTables(request);
    return result.getRouteTables();
}

From source file:com.urbancode.terraform.tasks.aws.helpers.AWSHelper.java

License:Apache License

/**
 * Gets a list of all RouteTables or all RouteTables listed in routeTableIds from Amazon.
 * You can leave the list of ids empty or null to get all route tables.
 *
 * @param routeTableIds - leave this null or empty to get all RouteTables
 * @param ec2Client/*from   ww  w. j a  v  a2 s . c om*/
 * @return RouteTables - a List of RouteTables found
 */
public List<RouteTable> getRouteTables(List<String> routeTableIds, AmazonEC2 ec2Client) {
    DescribeRouteTablesRequest request = new DescribeRouteTablesRequest();

    if (routeTableIds != null && !routeTableIds.isEmpty()) {
        request = request.withRouteTableIds(routeTableIds);
    }
    DescribeRouteTablesResult result = ec2Client.describeRouteTables(request);

    return result.getRouteTables();
}

From source file:com.vmware.photon.controller.model.adapters.awsadapter.AWSNetworkService.java

License:Open Source License

public RouteTable getMainRouteTable(String vpcID, AmazonEC2AsyncClient client) {
    // build filter list
    List<Filter> filters = new ArrayList<>();
    filters.add(AWSUtils.getFilter(AWSUtils.AWS_FILTER_VPC_ID, vpcID));
    filters.add(AWSUtils.getFilter(AWS_MAIN_ROUTE_ASSOCIATION, "true"));

    DescribeRouteTablesRequest req = new DescribeRouteTablesRequest().withFilters(filters);
    DescribeRouteTablesResult result = client.describeRouteTables(req);

    // if nothing found error thrown, otherwise should be 1
    return result.getRouteTables().get(0);

}

From source file:com.vmware.photon.controller.model.adapters.awsadapter.enumeration.AWSComputeStateCreationAdapterService.java

License:Open Source License

/**
 * Gets the main route table information associated with a VPC that is being mapped to a network state in the system.     *
 *///from  www .  j  a v  a2s .  c  o m
private void getMainRouteTableInformation(AWSComputeServiceCreationContext context,
        AWSNetworkCreationStage next) {
    DescribeRouteTablesRequest routeTablesRequest = new DescribeRouteTablesRequest();
    List<String> vpcList = new ArrayList<String>(context.discoveredVpcNetworkStateMap.keySet());

    // build filter list
    List<Filter> filters = new ArrayList<>();
    filters.add(new Filter(AWS_FILTER_VPC_ID, vpcList));
    filters.add(AWSUtils.getFilter(AWS_MAIN_ROUTE_ASSOCIATION, "true"));

    AWSMainRouteTableAsyncHandler asyncHandler = new AWSMainRouteTableAsyncHandler(this, next, context);
    context.amazonEC2Client.describeRouteTablesAsync(routeTablesRequest, asyncHandler);
}

From source file:com.vmware.photon.controller.model.adapters.awsadapter.enumeration.AWSNetworkStateCreationAdapterService.java

License:Open Source License

/**
 * Gets the main route table information associated with a VPC that is being mapped to a network
 * state in the system. */*from  w ww . j a v a2s . c  o m*/
 */
private void getMainRouteTableInformation(AWSNetworkServiceCreationContext context,
        AWSNetworkCreationStage next) {
    DescribeRouteTablesRequest routeTablesRequest = new DescribeRouteTablesRequest();
    List<String> vpcList = new ArrayList<String>(context.vpcs.keySet());

    // build filter list
    List<Filter> filters = new ArrayList<>();
    filters.add(new Filter(AWS_FILTER_VPC_ID, vpcList));
    filters.add(AWSUtils.getFilter(AWS_MAIN_ROUTE_ASSOCIATION, "true"));

    AWSMainRouteTableAsyncHandler asyncHandler = new AWSMainRouteTableAsyncHandler(this, next, context);
    context.amazonEC2Client.describeRouteTablesAsync(routeTablesRequest, asyncHandler);
}

From source file:org.zalando.stups.fullstop.plugin.SubnetPlugin.java

License:Apache License

@Override
public void processEvent(final CloudTrailEvent event) {
    List<String> subnetIds = newArrayList();
    List<Filter> SubnetIdFilters = newArrayList();
    DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
    List<String> instanceIds = getInstanceIds(event);
    AmazonEC2Client amazonEC2Client = cachingClientProvider.getClient(AmazonEC2Client.class,
            event.getEventData().getAccountId(),
            Region.getRegion(Regions.fromName(event.getEventData().getAwsRegion())));

    DescribeInstancesResult describeInstancesResult = null;
    try {//from w  ww  .  ja  v  a  2 s .com
        describeInstancesResult = amazonEC2Client
                .describeInstances(describeInstancesRequest.withInstanceIds(instanceIds));
    } catch (AmazonServiceException e) {
        violationStore.save(new ViolationBuilder(e.getMessage()).withEvent(event).build());
        return;
    }

    List<Reservation> reservations = describeInstancesResult.getReservations();
    for (Reservation reservation : reservations) {
        List<Instance> instances = reservation.getInstances();
        subnetIds.addAll(instances.stream().map(Instance::getSubnetId).collect(Collectors.toList()));

    }

    SubnetIdFilters.add(new Filter().withName("association.subnet-id").withValues(subnetIds)); // filter by subnetId
    DescribeRouteTablesRequest describeRouteTablesRequest = new DescribeRouteTablesRequest()
            .withFilters(SubnetIdFilters);
    DescribeRouteTablesResult describeRouteTablesResult = amazonEC2Client
            .describeRouteTables(describeRouteTablesRequest);
    List<RouteTable> routeTables = describeRouteTablesResult.getRouteTables();
    if (routeTables == null || routeTables.size() == 0) {
        violationStore.save(new ViolationBuilder(
                format("Instances %s have no routing information associated", instanceIds.toString()))
                        .withEvent(event).build());
        return;
    }
    for (RouteTable routeTable : routeTables) {
        List<Route> routes = routeTable.getRoutes();
        routes.stream()
                .filter(route -> route.getState().equals("active") && route.getNetworkInterfaceId() != null
                        && !route.getNetworkInterfaceId().startsWith("eni"))
                .forEach(route -> violationStore.save(

                        new ViolationBuilder(format("ROUTES: instance %s is running in a public subnet %s",
                                route.getInstanceId(), route.getNetworkInterfaceId())).withEvent(event)
                                        .build()));
    }

}