From e23f74c024d864140d9515a7eee6880474e572e6 Mon Sep 17 00:00:00 2001
From: Bjarke Madsen <bjarke.madsen@geant.org>
Date: Tue, 23 Mar 2021 16:13:37 +0100
Subject: [PATCH] Only add ipv6 panel if the interface has v6 addr

---
 brian_dashboard_manager/templating/helpers.py     | 10 ++++++----
 brian_dashboard_manager/templating/nren_access.py |  5 +++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py
index fea1a1f..5e466b6 100644
--- a/brian_dashboard_manager/templating/helpers.py
+++ b/brian_dashboard_manager/templating/helpers.py
@@ -214,7 +214,8 @@ def get_interface_data(interfaces, name_parse_func=None):
         peer.append({
             'title': panel_title,
             'interface': interface_name,
-            'hostname': host
+            'hostname': host,
+            'has_v6': len(interface.get('ipv6', [])) > 0
         })
         result[dashboard_name] = peer
     return result
@@ -245,7 +246,7 @@ def get_aggregate_interface_data(interfaces, agg_type):
             'interface': interface_name,
             'hostname': host,
             'remote': remote,
-            'alias': f"{host.split('.')[1].upper()} - {remote}"
+            'alias': f"{host.split('.')[1].upper()} - {remote}",
         })
     return reduce(reduce_func, result, {})
 
@@ -329,8 +330,9 @@ def get_dashboard_data(data, datasource, tag, errors=False):
         for panel in panels:
             result.append(get_panel_fields(
                 {**panel, **next(gridPos)}, 'traffic', datasource))
-            result.append(get_panel_fields(
-                {**panel, **next(gridPos)}, 'IPv6', datasource))
+            if panel.get('has_v6', False):
+                result.append(get_panel_fields(
+                    {**panel, **next(gridPos)}, 'IPv6', datasource))
             if errors:
                 result.append(get_panel_fields(
                     {**panel, **next(gridPos)}, 'errors', datasource))
diff --git a/brian_dashboard_manager/templating/nren_access.py b/brian_dashboard_manager/templating/nren_access.py
index bf258ea..9417bd3 100644
--- a/brian_dashboard_manager/templating/nren_access.py
+++ b/brian_dashboard_manager/templating/nren_access.py
@@ -70,8 +70,9 @@ def get_panel_definitions(panels, datasource, errors=False):
     for panel in panels:
         result.append(get_panel_fields(
             {**panel, **next(gridPos)}, 'traffic', datasource))
-        result.append(get_panel_fields(
-            {**panel, **next(gridPos)}, 'IPv6', datasource))
+        if panel.get('has_v6', False):
+            result.append(get_panel_fields(
+                {**panel, **next(gridPos)}, 'IPv6', datasource))
         if errors:
             result.append(get_panel_fields(
                 {**panel, **next(gridPos)}, 'errors', datasource))
-- 
GitLab