X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fdashboarder%2Fbackends%2Fgrafana.py;h=73459f7110123340c4b713029483e3e31e495001;hb=282c9c9ecb963ab29bf38e4eab97a7788013b637;hp=a1cbcba3545446d836437196a47a13d3e410ddd7;hpb=be46a915746ddc12a3ef484b956df79b32bf35e8;p=osm%2FMON.git diff --git a/osm_mon/dashboarder/backends/grafana.py b/osm_mon/dashboarder/backends/grafana.py index a1cbcba..73459f7 100644 --- a/osm_mon/dashboarder/backends/grafana.py +++ b/osm_mon/dashboarder/backends/grafana.py @@ -75,12 +75,16 @@ class GrafanaBackend: 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: @@ -101,11 +105,21 @@ class GrafanaBackend: 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 = {