From bad770ddb260d8698fd7476b2005dd971924c651 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Mon, 5 Nov 2018 11:19:05 +0100
Subject: [PATCH] handle repeated v6 interface addresses with same name

---
 config.py | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/config.py b/config.py
index 1be548e8..62b7d140 100644
--- a/config.py
+++ b/config.py
@@ -165,7 +165,23 @@ def get_router_interfaces(router):
             "v4InterfaceName": v4InterfaceName
         })
 
-    print(interfaces)
+
+    v6IfcNames = {}
+    for v6InterfaceName in details["v6InterfaceName"]:
+        m = re.match(r'.*\.(\d+)$', v6InterfaceName["oid"])
+        assert m
+        v6IfcNames[m.group(1)] = v6InterfaceName["value"]
+
+    for v6AddressAndMask in details["v6AddressAndMask"]:
+        oid = v6AddressAndMask["oid"]
+        oid_info = oid[len(oid_map["v6AddressAndMask"]):]
+        m = re.match(r'^\.(\d+)\.(.+)$', oid_info)
+        assert m
+        interfaces.append({
+            "v6Address": m.group(2),
+            "v6Mask": v6AddressAndMask["value"],
+            "v6InterfaceName": v6IfcNames[m.group(1)]
+        })
     return interfaces
 
     """
@@ -203,7 +219,8 @@ def cli(config):
             with connection(config["alarms-db"]) as c:
                 _db_test(c, r)
 
-            get_router_interfaces(r)
+            for i in get_router_interfaces(r):
+                print(i)
             break
 
 
-- 
GitLab