Esempio n. 1
0
    def get_all_transit_gateway_route_tables(
            self, transit_gateway_route_table_ids=None, filters=None):
        transit_gateway_route_tables = list(
            self.transit_gateways_route_tables.values())

        attr_pairs = (
            ("default-association-route-table",
             "default_association_route_table"),
            ("default-propagation-route-table",
             "default_propagation_route_table"),
            ("state", "state"),
            ("transit-gateway-id", "transit_gateway_id"),
            ("transit-gateway-route-table-id", "id"),
        )

        if transit_gateway_route_table_ids:
            transit_gateway_route_tables = [
                transit_gateway_route_table
                for transit_gateway_route_table in transit_gateway_route_tables
                if transit_gateway_route_table.id in
                transit_gateway_route_table_ids
            ]

        result = transit_gateway_route_tables
        if filters:
            result = filter_resources(transit_gateway_route_tables, filters,
                                      attr_pairs)
        return result
Esempio n. 2
0
    def describe_managed_prefix_lists(self,
                                      prefix_list_ids=None,
                                      filters=None):
        managed_prefix_lists = list(self.managed_prefix_lists.copy().values())
        attr_pairs = (
            ("owner-id", "owner_id"),
            ("prefix-list-id", "id"),
            ("prefix-list-name", "prefix_list_name"),
        )

        if prefix_list_ids:
            managed_prefix_lists = [
                managed_prefix_list
                for managed_prefix_list in managed_prefix_lists
                if managed_prefix_list.id in prefix_list_ids
            ]

        result = managed_prefix_lists
        if filters:
            result = filter_resources(result, filters, attr_pairs)
            result = describe_tag_filter(filters, result)

        for item in result.copy():
            if not item.delete_counter:
                self.managed_prefix_lists.pop(item.id, None)
                result.remove(item)
            if item.state == "delete-complete":
                item.delete_counter -= 1
        return result
Esempio n. 3
0
    def get_all_transit_gateway_route_table_propagations(
            self, transit_gateway_route_table_id=None, filters=None):
        transit_gateway_route_tables = list(
            self.transit_gateways_route_tables.values())

        if transit_gateway_route_tables:
            transit_gateway_route_tables = [
                transit_gateway_route_table
                for transit_gateway_route_table in transit_gateway_route_tables
                if transit_gateway_route_table.id in
                transit_gateway_route_table_id
            ]

        attr_pairs = (
            ("resource-id", "route_table_propagation", "resourceId"),
            ("resource-type", "route_table_propagation", "resourceType"),
            (
                "transit-gateway-attachment-id",
                "route_table_propagation",
                "transitGatewayAttachmentId",
            ),
        )

        result = transit_gateway_route_tables
        if filters:
            result = filter_resources(transit_gateway_route_tables, filters,
                                      attr_pairs)
        return result
    def describe_transit_gateway_peering_attachments(
            self, transit_gateways_attachment_ids=None, filters=None):
        transit_gateway_attachments = list(
            self.transit_gateway_attachments.values())

        attr_pairs = (
            ("state", "state"),
            ("transit-gateway-attachment-id", "id"),
            ("local-owner-id", "requester_tgw_info", "ownerId"),
            ("remote-owner-id", "accepter_tgw_info", "ownerId"),
        )

        if transit_gateways_attachment_ids:
            transit_gateway_attachments = [
                transit_gateways_attachment
                for transit_gateways_attachment in transit_gateway_attachments
                if transit_gateways_attachment.id in
                transit_gateways_attachment_ids
            ]

        if filters:
            transit_gateway_attachments = filter_resources(
                transit_gateway_attachments, filters, attr_pairs)
            transit_gateway_attachments = describe_tag_filter(
                filters, transit_gateway_attachments)
        return transit_gateway_attachments
    def describe_transit_gateway_vpc_attachments(
            self, transit_gateways_attachment_ids=None, filters=None):
        transit_gateway_attachments = list(
            self.transit_gateway_attachments.values())

        attr_pairs = (
            ("state", "state"),
            ("transit-gateway-attachment-id", "id"),
            ("transit-gateway-id", "transit_gateway_id"),
            ("vpc-id", "resource_id"),
        )

        if (not transit_gateways_attachment_ids == []
                and transit_gateways_attachment_ids is not None):
            transit_gateway_attachments = [
                transit_gateways_attachment
                for transit_gateways_attachment in transit_gateway_attachments
                if transit_gateways_attachment.id in
                transit_gateways_attachment_ids
            ]

        result = transit_gateway_attachments
        if filters:
            result = filter_resources(transit_gateway_attachments, filters,
                                      attr_pairs)
        return result
 def describe_availability_zones(self, filters=None):
     # We might not have any zones for the current region, if it was introduced recently
     zones = self.zones.get(self.region_name, [])
     attr_pairs = (
         ("zone-id", "zone_id"),
         ("zone-type", "zone_type"),
         ("zone-name", "name"),
         ("region-name", "region_name"),
     )
     result = zones
     if filters:
         result = filter_resources(zones, filters, attr_pairs)
     return result
Esempio n. 7
0
    def describe_transit_gateways(self, filters, transit_gateway_ids):
        transit_gateways = list(self.transit_gateways.copy().values())

        if transit_gateway_ids:
            transit_gateways = [
                item for item in transit_gateways
                if item.id in transit_gateway_ids
            ]

        attr_pairs = (
            ("transit-gateway-id", "id"),
            ("state", "state"),
            ("owner-id", "owner_id"),
        )

        result = transit_gateways
        if filters:
            result = filter_resources(transit_gateways, filters, attr_pairs)
        return result
Esempio n. 8
0
    def describe_carrier_gateways(self, ids=None, filters=None):
        carrier_gateways = list(self.carrier_gateways.values())

        if ids:
            carrier_gateways = [
                carrier_gateway for carrier_gateway in carrier_gateways
                if carrier_gateway.id in ids
            ]

        attr_pairs = (
            ("carrier-gateway-id", "id"),
            ("state", "state"),
            ("vpc-id", "vpc_id"),
            ("owner-id", "owner_id"),
        )

        result = carrier_gateways
        if filters:
            result = filter_resources(carrier_gateways, filters, attr_pairs)
        return result