Skip to content
Snippets Groups Projects
Commit 0867cb68 authored by Sam Roberts's avatar Sam Roberts
Browse files

add ipv6-only logic for panel creation for NRENs

parent bf0bf54d
No related branches found
No related tags found
1 merge request!2add ipv6-only logic for panel creation for NRENs
......@@ -486,7 +486,7 @@ def get_panel_fields(panel, panel_type, datasource):
})
def default_interface_panel_generator(gridPos):
def default_interface_panel_generator(gridPos, ipv6_only=False):
"""
Helper for generating panel definitions for dashboards.
......@@ -494,6 +494,7 @@ def default_interface_panel_generator(gridPos):
panel data and panel type.
:param gridPos: generator for grid positions
:param ipv6_only: whether to use IPv6 traffic exclusively or not
:return: function that generates panel definitions
"""
......@@ -515,20 +516,28 @@ def default_interface_panel_generator(gridPos):
result = []
for panel in panels:
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'traffic', datasource))
if panel.get('has_v6', False):
if ipv6_only:
if panel.get('has_v6', False):
continue
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'IPv6', datasource))
if errors:
else:
result.append(get_panel_fields({
**panel,
**next(gridPos)
}, 'errors', datasource))
}, 'traffic', 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))
return result
......@@ -567,6 +576,7 @@ def get_nren_dashboard_data_single(data, datasource, tag):
agg_panels = []
panel_gen = default_interface_panel_generator(gridPos)
panel_ipv6_gen = default_interface_panel_generator(gridPos, ipv6_only=True)
services_dropdown = create_dropdown_panel('Services', **next(gridPos))
......@@ -578,6 +588,12 @@ def get_nren_dashboard_data_single(data, datasource, tag):
service_panels = panel_gen(
sorted(dash['SERVICES'], key=sort_key), datasource)
services_ipv6_dropdown = create_dropdown_panel('Services - IPv6 Only', **next(gridPos))
service_ipv6_panels = panel_ipv6_gen(
sorted(dash['SERVICES'], key=sort_key), datasource
)
iface_dropdown = create_dropdown_panel('Interfaces', **next(gridPos))
phys_panels = panel_gen(dash['PHYSICAL'], datasource, True)
......@@ -590,6 +606,10 @@ def get_nren_dashboard_data_single(data, datasource, tag):
'dropdown': services_dropdown,
'panels': service_panels,
},
{
'dropdown': services_ipv6_dropdown,
'panels': service_ipv6_panels
},
{
'dropdown': iface_dropdown,
'panels': phys_panels,
......@@ -769,7 +789,7 @@ def get_aggregate_dashboard_data(title, remotes, datasource, tag):
ingress and one for egress.
:param title: title for the dashboard
:param targets: dictionary of targets for the panels, the key is the
:param remotes: dictionary of targets for the panels, the key is the
remote (usually a customer) and the value is a list of targets
for that remote. A single target represents how to fetch
data for one interface.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment