def get_all_vpn_routes()

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


def get_all_vpn_routes(dashboard, org_id, vmx1_id, vmx2_id):
    org_vpn_status = dashboard.appliance.getOrganizationApplianceVpnStatuses(
    org_id, total_pages='all'
    )
    vpn_routes_vmx1 = []
    vpn_routes_vmx2 = []
    for networks in org_vpn_status:
        if networks['vpnMode'] == 'spoke': 
            for peers in networks['merakiVpnPeers']:
                if peers['networkId'] == vmx1_id or peers['networkId'] == vmx2_id:
                    vpn_status = dashboard.appliance.getNetworkApplianceVpnSiteToSiteVpn(networks['networkId'])
                    for i in vpn_status['hubs']:
                        if i['hubId'] == vmx1_id:
                            for subnets in networks['exportedSubnets']:
                                logger.info('Meraki Dashboard: Found routes for vMX1 hub')
                                vpn_routes_vmx1.append(subnets.get('subnet'))
                                logger.info(vpn_routes_vmx1)
                            break
                        elif i['hubId'] == vmx2_id:
                            for subnets in networks['exportedSubnets']:
                                logger.info('Meraki Dashboard: Found routes for vMX2 hub')
                                vpn_routes_vmx2.append(subnets.get('subnet'))
                                logger.info(vpn_routes_vmx2)
                            break
                else:
                    logger.info('Meraki Dashboard: No routes found for vMX Hubs')
                    pass 
    return vpn_routes_vmx1, vpn_routes_vmx2