From 1a8aeabcb9d887b5ec66dcf0cd334e61d03c1668 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Fri, 21 Jan 2022 21:52:49 +0100 Subject: [PATCH] Improve determinism by returning stable sort order of dashboard results --- CHANGES.rst | 1 + grafana_wtf/core.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 0f4536b..ba81a61 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,7 @@ grafana-wtf changelog in progress =========== - Prepare test suite for testing two different dashboard schema versions, v27 and v33 +- Improve determinism by returning stable sort order of dashboard results 2021-12-11 0.12.0 ================= diff --git a/grafana_wtf/core.py b/grafana_wtf/core.py index 4fda6ca..a8dcb25 100644 --- a/grafana_wtf/core.py +++ b/grafana_wtf/core.py @@ -193,6 +193,9 @@ def scan_dashboards(self, dashboard_uids=None): if self.progressbar: self.taqadum.close() + # Improve determinism by returning stable sort order. + self.data.dashboards = munchify(sorted(self.data.dashboards, key=lambda x: x["dashboard"]["uid"])) + return self.data.dashboards def handle_grafana_error(self, ex): @@ -207,7 +210,7 @@ def handle_grafana_error(self, ex): def fetch_dashboard(self, dashboard_info): log.debug(f'Fetching dashboard "{dashboard_info["title"]}" ({dashboard_info["uid"]})') dashboard = self.grafana.dashboard.get_dashboard(dashboard_info["uid"]) - self.data.dashboards.append(munchify(dashboard)) + self.data.dashboards.append(dashboard) if self.taqadum is not None: self.taqadum.update(1)