dashboard_json_data["folderId"] = folder_id
dashboard_json_data["overwrite"] = False
- response = requests.request(
- "POST", self.url + "/api/dashboards/db/", data=json.dumps(dashboard_json_data), headers=self.headers)
+ response = self.send_request_for_creating_dashboard(dashboard_json_data)
- # Don't create the dashboard if already exists.
+ # Admin dashboard will be created if already exists. Rest will remain same.
if json.loads(response.text).get("status") == "name-exists":
- return
+ # Delete any previous project-admin dashboard if it already exist.
+ if name == 'admin':
+ self.delete_admin_dashboard()
+ response = self.send_request_for_creating_dashboard(dashboard_json_data)
+ else:
+ return
# Get team id
if project_name is not None:
except Exception:
log.exception("Exception processing message: ")
+ def send_request_for_creating_dashboard(self, dashboard_data):
+ response = requests.request(
+ "POST", self.url + "/api/dashboards/db/", data=json.dumps(dashboard_data), headers=self.headers)
+ return response
+
def delete_dashboard(self, uid):
response = requests.request("DELETE", self.url + "/api/dashboards/uid/" + uid, headers=self.headers)
log.debug("Dashboard %s deleted from Grafana", uid)
return response
+ def delete_admin_dashboard(self):
+ requests.request(
+ "DELETE", self.url + "/api/dashboards/db/osm-project-status-admin", headers=self.headers)
+ log.debug("Dashboard osm-project-status-admin deleted from Grafana")
+
def create_grafana_users(self, user):
email = "{}@osm.etsi.org".format(user)
user_payload = {
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),
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),
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)
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