Skip to content

Commit 248792d

Browse files
Gilles Hamelamotl
authored andcommitted
FIX API DELETE /api/teams/:teamId/groups?groupId=external-group-id
Grafana introduced a breaking change in 10.2.0 : grafana/grafana#76325 This fix handles it.
1 parent c1dc3f7 commit 248792d

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

grafana_client/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def __init__(
7676
self.user = User(self.client)
7777
self.users = Users(self.client)
7878
self.rbac = Rbac(self.client)
79-
self.teams = Teams(self.client)
79+
self.teams = Teams(self.client, self)
8080
self.annotations = Annotations(self.client)
8181
self.snapshots = Snapshots(self.client)
8282
self.notifications = Notifications(self.client)

grafana_client/elements/team.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import typing as t
22
import warnings
33

4+
from verlib2 import Version
5+
46
from ..model import PersonalPreferences
57
from .base import Base
68

9+
VERSION_10_2_0 = Version("10.2.0")
10+
711

812
class Teams(Base):
9-
def __init__(self, client):
13+
def __init__(self, client, api):
1014
super(Teams, self).__init__(client)
1115
self.client = client
16+
self.api = api
1217

1318
def search_teams(self, query=None, page=None, perpage=None):
1419
"""
@@ -215,6 +220,9 @@ def remove_team_external_group(self, team_id, group_id):
215220
:param group_id:
216221
:return:
217222
"""
218-
team_group_path = "/teams/%s/groups?groupId=%s" % (team_id, group_id)
223+
if Version(self.api.version) < VERSION_10_2_0:
224+
team_group_path = "/teams/%s/groups/%s" % (team_id, group_id)
225+
else:
226+
team_group_path = "/teams/%s/groups?groupId=%s" % (team_id, group_id)
219227
r = self.client.DELETE(team_group_path)
220228
return r

test/elements/test_team.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,10 +325,29 @@ def test_add_team_external_group(self, m):
325325
self.assertEqual(r["message"], "Group added to Team")
326326

327327
@requests_mock.Mocker()
328-
def test_remove_team_external_group(self, m):
328+
def test_remove_team_external_group_grafana_1020(self, m):
329+
m.get(
330+
"http://localhost/api/health",
331+
json={"commit": "unknown", "database": "ok", "version": "10.2.0"},
332+
)
333+
329334
m.delete(
330335
"http://localhost/api/teams/42/groups?groupId=a_external_group",
331336
json={"message": "Team group removed"},
332337
)
333338
r = self.grafana.teams.remove_team_external_group("42", "a_external_group")
334339
self.assertEqual(r["message"], "Team group removed")
340+
341+
@requests_mock.Mocker()
342+
def test_remove_team_external_group(self, m):
343+
m.get(
344+
"http://localhost/api/health",
345+
json={"commit": "unknown", "database": "ok", "version": "10.1.0"},
346+
)
347+
348+
m.delete(
349+
"http://localhost/api/teams/42/groups/a_external_group",
350+
json={"message": "Team group removed"},
351+
)
352+
r = self.grafana.teams.remove_team_external_group("42", "a_external_group")
353+
self.assertEqual(r["message"], "Team group removed")

0 commit comments

Comments
 (0)