Skip to content

Commit 6195e92

Browse files
committed
Improve Grafana version parsing for patch releases
... like `11.3.0-75420.patch2-75797`.
1 parent 9a55c83 commit 6195e92

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# CHANGELOG
22

33
## unreleased
4+
- Improve Grafana version parsing for patch releases like `11.3.0-75420.patch2-75797`
5+
Thanks, @Zhuse.
46

57

68
## 4.1.0 (2024-04-14)

grafana_client/api.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ def version(self):
122122
if not self._grafana_info:
123123
self._grafana_info = self.health.check()
124124
version = self._grafana_info.get("version", None)
125+
if version:
126+
version = str(version).rsplit("-")[0]
125127
logger.info(f"Inquired Grafana version: {version}")
126128
return version
127129

test/test_grafana_client.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,23 @@ def test_grafana_client_connect_failure(self):
154154
self.assertRaises(niquests.exceptions.ConnectionError, lambda: grafana.connect())
155155

156156
@patch("grafana_client.client.GrafanaClient.__getattr__")
157-
def test_grafana_client_version(self, mock_get):
157+
def test_grafana_client_version_basic(self, mock_get):
158158
mock_get.return_value = Mock()
159159
mock_get.return_value.return_value = {"commit": "14e988bd22", "database": "ok", "version": "9.0.1"}
160160
grafana = GrafanaApi(auth=None, host="localhost", url_path_prefix="", protocol="http", port="3000")
161161
self.assertEqual(grafana.version, "9.0.1")
162162

163+
@patch("grafana_client.client.GrafanaClient.__getattr__")
164+
def test_grafana_client_version_patch(self, mock_get):
165+
mock_get.return_value = Mock()
166+
mock_get.return_value.return_value = {
167+
"commit": "14e988bd22",
168+
"database": "ok",
169+
"version": "11.3.0-75420.patch2-75797",
170+
}
171+
grafana = GrafanaApi(auth=None, host="localhost", url_path_prefix="", protocol="http", port="3000")
172+
self.assertEqual(grafana.version, "11.3.0")
173+
163174
def test_grafana_client_non_json_response(self):
164175
grafana = GrafanaApi.from_url("https://example.org/")
165176
self.assertRaises((GrafanaClientError, GrafanaServerError), lambda: grafana.connect())

0 commit comments

Comments
 (0)