]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/controllers/grafana.py
import ceph nautilus 14.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / controllers / grafana.py
index d165d45259d1eeda803ad9b8bc976e3385accdce..bb3e3a1e4a4b5e915fe0d0c656721515cf9deb29 100644 (file)
@@ -1,23 +1,14 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-import requests
-
-from . import ApiController, BaseController, Endpoint, ReadPermission
+from . import (ApiController, BaseController, Endpoint, ReadPermission,
+               UpdatePermission)
+from ..exceptions import DashboardException
+from ..grafana import GrafanaRestClient, push_local_dashboards
 from ..security import Scope
 from ..settings import Settings
 
 
-class GrafanaRestClient(object):
-
-    def url_validation(self, method, path):
-        response = requests.request(
-            method,
-            path)
-
-        return response.status_code
-
-
 @ApiController('/grafana', Scope.GRAFANA)
 class Grafana(BaseController):
 
@@ -36,3 +27,17 @@ class Grafana(BaseController):
             '/api/dashboards/uid/' + params
         response = grafana.url_validation(method, url)
         return response
+
+    @Endpoint(method='POST')
+    @UpdatePermission
+    def dashboards(self):
+        response = dict()
+        try:
+            response['success'] = push_local_dashboards()
+        except Exception as e:  # pylint: disable=broad-except
+            raise DashboardException(
+                msg=e.message,
+                component='grafana',
+                http_status_code=500,
+            )
+        return response