Skip to content
Snippets Groups Projects
Commit 9f915a21 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

Only add aggregate panels if targets exist for it

parent 82b7b86b
No related branches found
No related tags found
No related merge requests found
......@@ -5,8 +5,7 @@ from concurrent.futures import ProcessPoolExecutor
from brian_dashboard_manager.templating.render import create_dropdown_panel
from brian_dashboard_manager.templating.helpers import \
is_aggregate_interface, is_logical_interface, is_physical_interface, \
num_generator, gridPos_generator, get_aggregate_targets, \
get_panel_fields
num_generator, gridPos_generator, get_panel_fields, create_aggregate_panel
def get_nrens(interfaces):
......@@ -58,9 +57,7 @@ def get_nrens(interfaces):
return result
# start IDs from 3 since aggregate
# panels have hardcoded IDs (1, 2).
id_gen = num_generator(start=3)
id_gen = num_generator(start=1)
# aggregate panels have y=0, start generating at 1*height
gridPos = gridPos_generator(id_gen, start=1)
......@@ -81,7 +78,16 @@ def get_panel_definitions(panels, datasource, errors=False):
def build_data(nren, data, datasource):
agg_ingress, agg_egress = get_aggregate_targets(data['AGGREGATES'])
global gridPos
if len(data['AGGREGATES']) > 0:
agg_panels = create_aggregate_panel(
f'Aggregate - {nren}',
gridPos_generator(id_gen, agg=True),
data['AGGREGATES'], datasource)
else:
# if there's no aggregate panel(s), start other stuff at y=0.
gridPos = gridPos_generator(id_gen, start=0)
agg_panels = []
services_dropdown = create_dropdown_panel('Services', **next(gridPos))
service_panels = get_panel_definitions(data['SERVICES'], datasource)
iface_dropdown = create_dropdown_panel('Interfaces', **next(gridPos))
......@@ -90,8 +96,7 @@ def build_data(nren, data, datasource):
return {
'nren_name': nren,
'datasource': datasource,
'ingress_aggregate_targets': agg_ingress,
'egress_aggregate_targets': agg_egress,
'aggregate_panels': agg_panels,
'dropdown_groups': [
{
'dropdown': services_dropdown,
......
......@@ -31,198 +31,9 @@
"version": 1,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"collapsed": null,
"dashLength": 10,
"dashes": false,
"datasource": "{{ datasource }}",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 10,
"gridPos": {
"h": 12,
"w": 12,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 1,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"search": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"tags": null,
"targets": [
{% for target in ingress_aggregate_targets %}
{{ target }}{{ "," if not loop.last }}
{% endfor %}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Aggregate - {{ nren_name }} - ingress",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": null
},
"yaxes": [
{
"format": "bps",
"label": "bits per second",
"logBase": 1,
"max": null,
"min": "",
"show": true
},
{
"format": "bps",
"label": "bits per second",
"logBase": 1,
"max": null,
"min": "",
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"collapsed": null,
"dashLength": 10,
"dashes": false,
"datasource": "{{ datasource }}",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 10,
"gridPos": {
"h": 12,
"w": 12,
"x": 12,
"y": 0
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"search": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"tags": null,
"targets": [
{% for target in egress_aggregate_targets %}
{{ target }}{{ "," if not loop.last }}
{% endfor %}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Aggregate - {{ nren_name }} - egress",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": null
},
"yaxes": [
{
"format": "bps",
"label": "bits per second",
"logBase": 1,
"max": null,
"min": "",
"show": true
},
{
"format": "bps",
"label": "bits per second",
"logBase": 1,
"max": null,
"min": "",
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{% for panel in aggregate_panels %}
{{ panel }},
{% endfor %}
{% for group in dropdown_groups %}
{{ group.dropdown }}
{% if group.panels|length > 0 %}
......
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