def update_rt()

in functions/source/lambda_function.py [0:0]


def update_rt():
    org_id = ORG_ID
    vmx1_tag = VMX1_TAG
    vmx2_tag = VMX2_TAG
    meraki_api_key = get_meraki_key()
    meraki_dashboard = meraki.DashboardAPI(meraki_api_key, suppress_logging=True)
    #get vmx ec2 instance ids using tags
    ec2_vmx1_id = get_ec2_instance_id(vmx1_tag)
    ec2_vmx2_id = get_ec2_instance_id(vmx2_tag)
    #get corresponding vmx network ids using tags
    meraki_vmx1_id = get_meraki_tagged_networks(meraki_dashboard, org_id, vmx1_tag)
    meraki_vmx2_id = get_meraki_tagged_networks(meraki_dashboard, org_id, vmx2_tag)
    #get autovpn branch site routes for the vMXs 
    vpn_routes = get_all_vpn_routes(meraki_dashboard, org_id, meraki_vmx1_id, meraki_vmx2_id)
    ##update TGW routes
    for routes in vpn_routes: update_tgw_rt(routes, TGW_RT_ID, TGW_ATTACH_ID)
    ##check vmx status
    if ec2_vmx1_id and ec2_vmx1_id and meraki_vmx1_id and meraki_vmx1_id:
        vmx1_status = check_vmx_status(meraki_dashboard, org_id, meraki_vmx1_id, ec2_vmx1_id)
        vmx2_status = check_vmx_status(meraki_dashboard, org_id, meraki_vmx2_id, ec2_vmx2_id)
    else:
        logger.error('vMX Instance Ids: No vMXs instance IDs found')
        exit
    #update VPC route tables based on vMX instance state
    if vmx1_status == 'online' and vmx2_status == 'online':
        logger.info('vMX Status: vmx1 and vmx2 are both online')
        logger.info('VPC RT Update: Updating VPC route table for vMX1')
        update_vpc_rt(vpn_routes[0], ec2_vmx1_id, RT_ID)
        logger.info('VPC RT Update: Updating VPC route table for vMX2')
        update_vpc_rt(vpn_routes[1], ec2_vmx2_id, RT_ID)
    elif vmx1_status == 'online' and vmx2_status == 'offline':
        logger.info ("vMX Status: vmx1 online and vmx2 offline, moving all routes to vmx1")
        logger.info('VPC RT Update: Updating VPC route table for vMX1')
        update_vpc_rt(vpn_routes[0], ec2_vmx1_id, RT_ID)
        update_vpc_rt(vpn_routes[1], ec2_vmx1_id, RT_ID)
    elif vmx1_status == 'offline' and vmx2_status == 'online':
        logger.info ("vMX Status: vmx2 online and vmx1 offline, moving all routes to vmx2")
        logger.info('VPC RT Update: Updating VPC route table for vMX2')
        update_vpc_rt(vpn_routes[0], ec2_vmx2_id, RT_ID)
        update_vpc_rt(vpn_routes[1], ec2_vmx2_id, RT_ID)
    else:
        logger.info ('vMX1 and vMX2 are BOTH offline')