Fix for bug 1447 Grafana user not associated with team
[osm/MON.git] / osm_mon / dashboarder / backends / grafana.py
index eeb5e75..a1cbcba 100644 (file)
@@ -207,6 +207,7 @@ class GrafanaBackend:
         requests.request("POST", self.url + "/api/folders/{}/permissions".format(folder_name),
                          json=permission_data, headers=self.headers)
 
+    # delete user from grafana
     def delete_grafana_users(self, user_name):
         # Get user id
         response_id = requests.request("GET", self.url + "/api/users/lookup?loginOrEmail={}".format(user_name),
@@ -220,6 +221,7 @@ class GrafanaBackend:
         log.info("User %s deleted in Grafana", user_name)
         return response
 
+    # delete team from grafana
     def delete_grafana_team(self, project_name):
         # Delete Grafana folder
         requests.request("DELETE", self.url + "/api/folders/{}".format(project_name),
@@ -232,6 +234,7 @@ class GrafanaBackend:
         log.info("Team %s deleted in Grafana", project_name)
         return response
 
+    # update grafana team
     def update_grafana_teams(self, project_new_name, project_old_name):
         team_obj = requests.request("GET", self.url + "/api/teams/search?name={}".format(project_old_name),
                                     headers=self.headers)
@@ -240,3 +243,18 @@ class GrafanaBackend:
         response = requests.request("PUT", self.url + "/api/teams/{}".format(team_id), json=data, headers=self.headers)
         log.info("Grafana team updated %s", response.text)
         return response
+
+    # remove member from grafana team
+    def remove_grafana_team_member(self, user_name, project_data):
+        # Get user id
+        response_id = requests.request("GET", self.url + "/api/users/lookup?loginOrEmail={}".format(user_name),
+                                       headers=self.headers)
+        user_id = json.loads(response_id.text)["id"]
+        for project in project_data:
+            # Get team id
+            team_obj = requests.request("GET", self.url + "/api/teams/search?name={}".format(project['project']),
+                                        headers=self.headers)
+            team_id = json.loads(team_obj.text)["teams"][0]["id"]
+            response = requests.request("DELETE", self.url + "/api/teams/{}/members/{}".format(team_id, user_id),
+                                        headers=self.headers)
+        return response