Take screenshots of all grafana dashboards

In our system-config-run-grafana job we were not taking screenshots of
the dashboard pages. The project-config job does do this. Port over the
listing of dashboards and screenshots of each dashboard into
system-config so that we can be more confident in updating the grafana
container image.

In particular we are concerned about CORS issues and this should help us
confirm that data loads from external sources (graphite) properly.

Change-Id: Ib9b597fd724219bd8d3155515d954a44589b0b07
This commit is contained in:
Clark Boylan 2025-01-24 08:38:55 -08:00
parent 7eab08f172
commit cf05201b70

View File

@ -14,6 +14,8 @@
from util import take_screenshots
import json
testinfra_hosts = ['grafana01.opendev.org']
@ -37,8 +39,16 @@ def test_grafana_api_denial(host):
assert '403 Forbidden' in cmd.stdout
def test_grafana_screenshots(host):
shots = (
shots = [
('https://localhost/', None, 'grafana-main-page.png'),
('https://localhost/dashboards', None, 'grafana-dashboards-page.png')
)
]
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"]
name = dashboard["uri"].split("/")[-1]
shots.append(("https://localhost" + url, None, name + '.png'))
take_screenshots(host, shots)