

def _reset_vpn_connections(context, neutron, cleaner, vpn_gateway, subnets=None, route_tables=None, vpn_connections=None):
    if (not vpn_gateway['vpc_id']):
        return
    vpn_connections = (vpn_connections or [vpn for vpn in db_api.get_items(context, 'vpn') if (vpn['vpn_gateway_id'] == vpn_gateway['id'])])
    if (not vpn_connections):
        return
    subnets = (subnets or [subnet for subnet in db_api.get_items(context, 'subnet') if (subnet['vpc_id'] == vpn_gateway['vpc_id'])])
    if (not subnets):
        return
    vpc = db_api.get_item_by_id(context, vpn_gateway['vpc_id'])
    customer_gateways = {cgw['id']: cgw for cgw in db_api.get_items(context, 'cgw')}
    route_tables = (route_tables or db_api.get_items(context, 'rtb'))
    route_tables = {rtb['id']: rtb for rtb in route_tables if (rtb['vpc_id'] == vpc['id'])}
    route_tables_cidrs = {
        
    }
    for subnet in subnets:
        route_table_id = subnet.get('route_table_id', vpc['route_table_id'])
        if (route_table_id not in route_tables_cidrs):
            route_tables_cidrs[route_table_id] = _get_route_table_vpn_cidrs(route_tables[route_table_id], vpn_gateway, vpn_connections)
        cidrs = route_tables_cidrs[route_table_id]
        for vpn_conn in vpn_connections:
            if (vpn_conn['id'] in cidrs):
                _set_subnet_vpn(context, neutron, cleaner, subnet, vpn_conn, customer_gateways[vpn_conn['customer_gateway_id']], cidrs[vpn_conn['id']])
            else:
                _delete_subnet_vpn(context, neutron, cleaner, subnet, vpn_conn)

dataset/ETHPy150Open openstack/ec2-api/ec2api/api/vpn_connection.py _reset_vpn_connections/original