12
12
import colored
13
13
import requests
14
14
import requests_cache
15
- from munch import Munch , munchify
15
+ from munch import Munch , munchify , unmunchify
16
16
from tqdm import tqdm
17
17
18
18
from grafana_wtf .model import (
@@ -392,9 +392,8 @@ def explore_datasources(self):
392
392
# Compute list of exploration items, associating datasources with the dashboards that use them.
393
393
results_used = []
394
394
results_unused = []
395
- for ds_identifier in sorted (ix .datasource_by_ident ):
396
-
397
- datasource = ix .datasource_by_ident [ds_identifier ]
395
+ for datasource in ix .datasources :
396
+ ds_identifier = datasource .get ("uid" , datasource .get ("name" ))
398
397
dashboard_uids = ix .datasource_dashboard_index .get (ds_identifier , [])
399
398
dashboards = list (map (ix .dashboard_by_uid .get , dashboard_uids ))
400
399
item = DatasourceExplorationItem (datasource = datasource , used_in = dashboards , grafana_url = self .grafana_url )
@@ -405,7 +404,8 @@ def explore_datasources(self):
405
404
if dashboard_uids :
406
405
results_used .append (result )
407
406
else :
408
- results_unused .append (result )
407
+ if result not in results_unused :
408
+ results_unused .append (result )
409
409
410
410
results_used = sorted (results_used , key = lambda x : x ["datasource" ]["name" ] or x ["datasource" ]["uid" ])
411
411
results_unused = sorted (results_unused , key = lambda x : x ["datasource" ]["name" ] or x ["datasource" ]["uid" ])
@@ -530,16 +530,18 @@ def index_datasources(self):
530
530
self .datasource_dashboard_index = {}
531
531
532
532
for datasource in self .datasources :
533
- datasource_name_or_uid = datasource .uid or datasource .name
534
- self .datasource_by_ident [datasource_name_or_uid ] = datasource
535
- self .datasource_by_uid [datasource .uid ] = datasource
533
+ self .datasource_by_ident [datasource .name ] = datasource
536
534
self .datasource_by_name [datasource .name ] = datasource
535
+ if "uid" in datasource :
536
+ self .datasource_by_ident [datasource .uid ] = datasource
537
+ self .datasource_by_uid [datasource .uid ] = datasource
537
538
538
539
for dashboard_uid , datasource_items in self .dashboard_datasource_index .items ():
539
540
datasource_item : DatasourceItem
540
541
for datasource_item in datasource_items :
541
542
datasource_name_or_uid = datasource_item .uid or datasource_item .name
542
543
if datasource_name_or_uid in self .datasource_by_name :
543
- datasource_name_or_uid = self .datasource_by_name [datasource_name_or_uid ].uid
544
+ if "uid" in self .datasource_by_name [datasource_name_or_uid ]:
545
+ datasource_name_or_uid = self .datasource_by_name [datasource_name_or_uid ].uid
544
546
self .datasource_dashboard_index .setdefault (datasource_name_or_uid , [])
545
547
self .datasource_dashboard_index [datasource_name_or_uid ].append (dashboard_uid )
0 commit comments