Example usage for com.amazonaws.services.ec2.model DescribeRouteTablesResult getRouteTables

List of usage examples for com.amazonaws.services.ec2.model DescribeRouteTablesResult getRouteTables

Introduction

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

Prototype


public java.util.List<RouteTable> getRouteTables() 

Source Link

Document

Information about one or more route tables.

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 www .ja v a 2 s  .c  o  m
 * @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: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 w w  .  ja  v  a 2 s  .  c  om*/
        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()));
    }

}