From f4f3bc2f9b43d6723df275463dd2d4db6762f4b6 Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke.madsen@geant.org> Date: Thu, 15 Apr 2021 15:43:20 +0200 Subject: [PATCH] Delete NREN dashboards every time. Required in the event of stale NREN dashboards --- brian_dashboard_manager/config.py | 1 + brian_dashboard_manager/grafana/provision.py | 4 ++++ test/test_update.py | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/brian_dashboard_manager/config.py b/brian_dashboard_manager/config.py index 58d5427..294e16e 100644 --- a/brian_dashboard_manager/config.py +++ b/brian_dashboard_manager/config.py @@ -84,6 +84,7 @@ DEFAULT_ORGANIZATIONS = [ "excluded_nrens": [ "CUSTOMER GEANT", "GEANT-IT", + "PSNC", "PIONIER", ], "excluded_dashboards": [ diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index 2fdca14..80b5aae 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -313,7 +313,11 @@ def provision(config): # NREN Access dashboards # uses a different template than the above. logger.info('Provisioning NREN Access dashboards') + # always recreate NREN folder + delete_folder(token_request, 'NREN Access') + folder = find_folder(token_request, 'NREN Access') + nrens = filter(is_nren, excluded_interfaces) generate_all_nrens(token_request, nrens, folder['id'], datasource_name) diff --git a/test/test_update.py b/test/test_update.py index 4b63f49..04851d0 100644 --- a/test/test_update.py +++ b/test/test_update.py @@ -1,5 +1,6 @@ import responses import json +import re from brian_dashboard_manager.templating.nren_access import get_nrens from brian_dashboard_manager.grafana.provision import provision_folder, \ generate_all_nrens, provision @@ -330,6 +331,14 @@ def test_provision(data_config, mocker, client): url=f"http://{data_config['hostname']}/api/folders", callback=folder_get) + def folder_delete(request): + return 200, {}, json.dumps({"message": "Deleted folder"}) + + responses.add_callback( + method=responses.DELETE, + url=re.compile(f"http://{data_config['hostname']}/api/folders"), + callback=folder_delete, ) + def folder_post(request): data = json.loads(request.body) return 200, {}, json.dumps(generate_folder(data)) -- GitLab