]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/controllers/grafana.py
1 # -*- coding: utf-8 -*-
3 from ..exceptions
import DashboardException
4 from ..grafana
import GrafanaRestClient
, push_local_dashboards
5 from ..security
import Scope
6 from ..settings
import Settings
7 from . import APIDoc
, APIRouter
, BaseController
, Endpoint
, EndpointDoc
, \
8 ReadPermission
, UpdatePermission
11 "instance": (str, "grafana instance")
15 @APIRouter('/grafana', Scope
.GRAFANA
)
16 @APIDoc("Grafana Management API", "Grafana")
17 class Grafana(BaseController
):
20 @EndpointDoc("List Grafana URL Instance", responses
={200: URL_SCHEMA
})
22 grafana_url
= mgr
.get_module_option('GRAFANA_API_URL')
23 grafana_frontend_url
= mgr
.get_module_option('GRAFANA_FRONTEND_API_URL')
24 if grafana_frontend_url
!= '' and grafana_url
== '':
27 url
= (mgr
.get_module_option('GRAFANA_FRONTEND_API_URL')
28 or mgr
.get_module_option('GRAFANA_API_URL')).rstrip('/')
29 response
= {'instance': url
}
34 def validation(self
, params
):
35 grafana
= GrafanaRestClient()
37 url
= str(Settings
.GRAFANA_API_URL
).rstrip('/') + \
38 '/api/dashboards/uid/' + params
39 response
= grafana
.url_validation(method
, url
)
42 @Endpoint(method
='POST')
47 response
['success'] = push_local_dashboards()
48 except Exception as e
: # pylint: disable=broad-except
49 raise DashboardException(