Skip to content
Snippets Groups Projects

rework ipv6 service panel generator so that ipv4 panels don't include ipv6 interfaces

1 file
+ 12
18
Compare changes
  • Side-by-side
  • Inline
@@ -495,7 +495,7 @@ def get_panel_fields(panel, panel_type, datasource):
})
def default_interface_panel_generator(gridPos, ipv6_only=False):
def default_interface_panel_generator(gridPos, use_ipv4=True, use_ipv6=True):
"""
Helper for generating panel definitions for dashboards.
@@ -503,7 +503,8 @@ def default_interface_panel_generator(gridPos, ipv6_only=False):
panel data and panel type.
:param gridPos: generator for grid positions
:param ipv6_only: whether to use IPv6 traffic exclusively or not
:param use_ipv4: include ipv4 interfaces
:param use_ipv6: include ipv6 interfaces
:return: function that generates panel definitions
"""
@@ -525,29 +526,22 @@ def default_interface_panel_generator(gridPos, ipv6_only=False):
result = []
for panel in panels:
if ipv6_only:
if panel.get('has_v6', False):
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'IPv6', datasource))
else:
continue
else:
if use_ipv4:
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'traffic', datasource))
if use_ipv6:
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))
if errors:
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'errors', datasource))
return result
@@ -583,8 +577,8 @@ def get_nren_dashboard_data_single(data, datasource, tag):
gridPos = gridPos_generator(id_gen)
agg_panels = []
panel_gen = default_interface_panel_generator(gridPos)
panel_ipv6_gen = default_interface_panel_generator(gridPos, ipv6_only=True)
panel_gen = default_interface_panel_generator(gridPos, use_ipv4=True, use_ipv6=False)
panel_ipv6_gen = default_interface_panel_generator(gridPos, use_ipv4=False, use_ipv6=True)
services_dropdown = create_dropdown_panel('Services', **next(gridPos))
Loading