From f2e77c7896481d9d42dfc0517c2461b7ea54ec00 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Thu, 7 Feb 2019 17:08:20 +0100 Subject: [PATCH] added vpn_rr_peer list gen utility --- inventory_provider/juniper.py | 14 ++++++++++++++ test/test_ix_public_peers.py | 9 ++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py index 6208546a..ea98adb8 100644 --- a/inventory_provider/juniper.py +++ b/inventory_provider/juniper.py @@ -275,6 +275,20 @@ def ix_public_peers(netconf_config): } +def vpn_rr_peers(netconf_config): + for r in netconf_config.xpath( + '//configuration/logical-systems[name/text()="VRR"]/' + '/protocols/bgp/' + 'group[name/text()="VPN-RR" or name/text()="VPN-RR-INTERNAL"]/' + 'neighbor'): + name = r.find('name') + yield { + 'name': ipaddress.ip_address(name.text).exploded, + 'description': r.find('description').text, + 'peer-as': int(r.find('peer-as').text) + } + + # note for enabling vrr data parsing ... # def fetch_vrr_config(hostname, ssh_params): # diff --git a/test/test_ix_public_peers.py b/test/test_ix_public_peers.py index 75131a9f..334de18b 100644 --- a/test/test_ix_public_peers.py +++ b/test/test_ix_public_peers.py @@ -12,7 +12,8 @@ TEST_DATA_DIRNAME = os.path.realpath(os.path.join( 'test', 'data')) -ROUTER_NAME = 'mx1.vie.at.geant.net' +# ROUTER_NAME = 'mx1.vie.at.geant.net' +ROUTER_NAME = 'mx2.lju.si.geant.net' @pytest.fixture @@ -56,3 +57,9 @@ def test_ix_public_peers(netconf): for p in juniper.ix_public_peers(netconf): jsonschema.validate(p, schema) + + +def test_vpn_rr_peers(netconf): + for p in juniper.vpn_rr_peers(netconf): + print(p) + # jsonschema.validate(p, schema) -- GitLab