From 0fb95787d0cf49e5ceebcb5da00310d57350548e Mon Sep 17 00:00:00 2001
From: Clark Boylan <clark.boylan@gmail.com>
Date: Fri, 7 Feb 2025 10:58:25 -0800
Subject: [PATCH] Update to grafana 11.5.1

This is mostly to start gathering information on how broken grafyaml is
against this grafana version. We can use this as a starting point for
node holds and further debugging.

Change-Id: Ia15503cef7870785c1bcc141826c42b36b8e6bf8
---
 .../roles/grafana/templates/docker-compose.yaml.j2     |  2 +-
 testinfra/test_grafana.py                              | 10 ++++++++++
 zuul.d/system-config-run.yaml                          |  4 ++++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/playbooks/roles/grafana/templates/docker-compose.yaml.j2 b/playbooks/roles/grafana/templates/docker-compose.yaml.j2
index 170ba6d97d..1bae5667af 100644
--- a/playbooks/roles/grafana/templates/docker-compose.yaml.j2
+++ b/playbooks/roles/grafana/templates/docker-compose.yaml.j2
@@ -5,7 +5,7 @@ version: '2'
 services:
   grafana:
     restart: always
-    image: docker.io/grafana/grafana-oss:10.4.15
+    image: docker.io/grafana/grafana-oss:11.5.1
     network_mode: host
     environment:
       GF_SERVER_DOMAIN: 'grafana.opendev.org'
diff --git a/testinfra/test_grafana.py b/testinfra/test_grafana.py
index f213ff2f1b..6dca78d363 100644
--- a/testinfra/test_grafana.py
+++ b/testinfra/test_grafana.py
@@ -43,12 +43,22 @@ def test_grafana_screenshots(host):
         ('https://localhost/', None, 'grafana-main-page.png'),
         ('https://localhost/dashboards', None, 'grafana-dashboards-page.png')
     ]
+    json_defs = []
     cmd = host.run("curl -s --insecure "
                    "--resolve grafana.opendev.org:443:127.0.0.1 "
                    "https://grafana.opendev.org/api/search")
     j = json.loads(cmd.stdout)
     for dashboard in j:
         url = dashboard["url"]
+        uid = dashboard["uid"]
         name = dashboard["uri"].split("/")[-1]
         shots.append(("https://localhost" + url, None, name + '.png'))
+        json_defs.append((uid, name + '.json'))
     take_screenshots(host, shots)
+    host.run('mkdir /tmp/json_blobs')
+    for uid, dst in json_defs:
+        host.run("curl -s --insecure "
+                 "--resolve grafana.opendev.org:443:127.0.0.1 "
+                 "https://grafana.opendev.org/api/dashboards/uid/%s "
+                 "-o /tmp/json_blobs/%s" %
+                 (uid, dst))
diff --git a/zuul.d/system-config-run.yaml b/zuul.d/system-config-run.yaml
index 031b30bc0a..7609679bf5 100644
--- a/zuul.d/system-config-run.yaml
+++ b/zuul.d/system-config-run.yaml
@@ -743,6 +743,10 @@
         - playbooks/letsencrypt.yaml
         - playbooks/service-grafana.yaml
       run_test_playbook: playbooks/test-grafana.yaml
+    host-vars:
+      grafana02.opendev.org:
+        host_copy_output:
+          '/tmp/json_blobs': logs
     files:
       - playbooks/bootstrap-bridge.yaml
       - playbooks/letsencrypt.yaml