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