diff --git a/brian_dashboard_manager/templating/nren_access.py b/brian_dashboard_manager/templating/nren_access.py index 17bb8ebcf2c6f04b319606f778fad182645418a0..67ba24cdacf17ef72b715225dc50bd35913dec74 100644 --- a/brian_dashboard_manager/templating/nren_access.py +++ b/brian_dashboard_manager/templating/nren_access.py @@ -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, diff --git a/brian_dashboard_manager/templating/templates/nren_access/nren-dashboard.json.j2 b/brian_dashboard_manager/templating/templates/nren_access/nren-dashboard.json.j2 index bca5b473718ce97f5aa71b771cb6a1c374ad2c59..76b76714349678aa0a00b6e4f0b6eb517ab3c44f 100644 --- a/brian_dashboard_manager/templating/templates/nren_access/nren-dashboard.json.j2 +++ b/brian_dashboard_manager/templating/templates/nren_access/nren-dashboard.json.j2 @@ -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 %} diff --git a/changelog.md b/changelog.md index ce622e4126e6cd8b35f3823e6ff3a6639eae63bb..23becc2556f5a7e4661670890b4f8156b1d46a7b 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,9 @@ All notable changes to this project will be documented in this file. +## [0.15] - 2021-05-17 +- [POL1-433] Only provision aggregate panels for NRENs if LAG interfaces are present. + ## [0.14] - 2021-04-19 - [POL1-420] Delete stale dashboards after provisioning. diff --git a/setup.py b/setup.py index 7a3fea90c63b1e8ce54e678688035d1c4fc5a2bd..47b079424ac889549eb2f03be9e24b71f98d8df5 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='brian-dashboard-manager', - version="0.14", + version="0.15", author='GEANT', author_email='swd@geant.org', description='',