]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | # -*- coding: utf-8 -*- |
2 | from __future__ import absolute_import | |
3 | ||
4 | import requests | |
5 | ||
6 | from . import ApiController, BaseController, Endpoint, ReadPermission | |
7 | from ..security import Scope | |
8 | from ..settings import Settings | |
9 | ||
10 | ||
11 | class GrafanaRestClient(object): | |
12 | ||
13 | def url_validation(self, method, path): | |
14 | response = requests.request( | |
15 | method, | |
16 | path) | |
17 | ||
18 | return response.status_code | |
19 | ||
20 | ||
21 | @ApiController('/grafana', Scope.GRAFANA) | |
22 | class Grafana(BaseController): | |
23 | ||
24 | @Endpoint() | |
25 | @ReadPermission | |
26 | def url(self): | |
27 | response = {'instance': Settings.GRAFANA_API_URL} | |
28 | return response | |
29 | ||
30 | @Endpoint() | |
31 | @ReadPermission | |
32 | def validation(self, params): | |
33 | grafana = GrafanaRestClient() | |
34 | method = 'GET' | |
35 | url = Settings.GRAFANA_API_URL.rstrip('/') + \ | |
36 | '/api/dashboards/uid/' + params | |
37 | response = grafana.url_validation(method, url) | |
38 | return response |