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')