From 171a3c93360bd92d78d5393674861c97268a3bdf Mon Sep 17 00:00:00 2001
From: Pelle Koster <pelle.koster@nginfra.nl>
Date: Mon, 11 Mar 2024 14:26:20 +0100
Subject: [PATCH] [POL1-0703] add support for IC1 dashboard

---
 .gitignore                          |  2 ++
 inventory_provider/routes/poller.py |  4 ++++
 test/test_general_poller_routes.py  | 23 +++++++++++++++++++++--
 tox.ini                             |  3 +--
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/.gitignore b/.gitignore
index bef7852d..aa9230d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ venv
 .vscode
 docs/build
 
+errors.log
+info.log
\ No newline at end of file
diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py
index 5a4c4ae1..3855d2c4 100644
--- a/inventory_provider/routes/poller.py
+++ b/inventory_provider/routes/poller.py
@@ -118,6 +118,7 @@ class BRIAN_DASHBOARDS(Enum):
     GWS_UPSTREAMS = auto()
     LHCONE = auto()
     CAE1 = auto()
+    IC1 = auto()
     COPERNICUS = auto()
 
     # NREN customer
@@ -480,6 +481,9 @@ def _get_dashboards(interface):
     if router == 'mx1.lon.uk.geant.net' \
             and re.match(r'^ae12(\.\d+|$)$', ifc_name):
         yield BRIAN_DASHBOARDS.CAE1
+    if router == 'rt1.mar.fr.geant.net' \
+            and re.match(r'^ae12(\.\d+|$)$', ifc_name):
+        yield BRIAN_DASHBOARDS.IC1
     if re.match(r'PHY UPSTREAM\s', description):
         yield BRIAN_DASHBOARDS.GWS_PHY_UPSTREAM
     regex = r'(PHY|LAG|(SRV_(GLOBAL|LHCONE|MDVPN|IAS|CLS|L3VPN))) CUSTOMER\s'
diff --git a/test/test_general_poller_routes.py b/test/test_general_poller_routes.py
index 03366d6b..a42700ac 100644
--- a/test/test_general_poller_routes.py
+++ b/test/test_general_poller_routes.py
@@ -315,8 +315,27 @@ def test_interface_dashboard_mapping(description, expected_dashboards):
         'description': description
     }
     dashboards = poller._get_dashboards(interface)
-    dashboards = [d.name for d in dashboards]
-    assert set(list(dashboards)) == set(expected_dashboards)
+    assert set(d.name for d in dashboards) == set(expected_dashboards)
+
+
+def test__CAE_1_dashboards():
+    interface = {
+        'router': 'mx1.lon.uk.geant.net',
+        'name': 'ae12.123',
+        'description': ''
+    }
+    dashboards = poller._get_dashboards(interface)
+    assert set(d.name for d in dashboards) == {"CAE1"}
+
+
+def test_POL1_703_IC1_dashboards():
+    interface = {
+        'router': 'rt1.mar.fr.geant.net',
+        'name': 'ae12.123',
+        'description': ''
+    }
+    dashboards = poller._get_dashboards(interface)
+    assert set(d.name for d in dashboards) == {"IC1"}
 
 
 @pytest.mark.parametrize('interface,customers,dashboard_info', [
diff --git a/tox.ini b/tox.ini
index e7ea727d..e9bfe329 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,7 +2,6 @@
 envlist = py311
 
 [flake8]
-exclude = venv,.tox,build
 max-line-length = 120
 
 [coverage:run]
@@ -13,7 +12,7 @@ passenv = TEST_OPSDB_HOSTNAME,TEST_OPSDB_DBNAME,TEST_OPSDB_USERNAME,TEST_OPSDB_P
 deps =
     pytest-xdist
     pytest-cov
-    flake8
+    flake8 inventory_provider test circuit_tree.py
     -r requirements.txt
 #install_command = pip install --pre --extra-index-url http://pip.geant.net/ --trusted-host pip.geant.net {opts} {packages}
 
-- 
GitLab