mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-31 18:58:01 +00:00
Include embedded dashboard in ghost page
Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
This commit is contained in:
@@ -16,10 +16,10 @@ import json
|
||||
|
||||
class GrafanaRequest:
|
||||
def __init__(self,
|
||||
_grafana_token,
|
||||
_grafanajson_host,
|
||||
_grafanajson_port,
|
||||
grafanajson_port=3000,
|
||||
_folderID=0,
|
||||
_api_token=None,
|
||||
_headers=dict(),
|
||||
_overwrite='false',
|
||||
debug_=False,
|
||||
@@ -27,9 +27,12 @@ class GrafanaRequest:
|
||||
self.debug = debug_
|
||||
self.die_on_error = die_on_error_
|
||||
self.headers = _headers
|
||||
self.headers['Authorization'] = 'Bearer ' + _api_token
|
||||
self.headers['Authorization'] = 'Bearer ' + _grafana_token
|
||||
self.headers['Content-Type'] = 'application/json'
|
||||
self.grafanajson_url = "http://%s:%s" % (_grafanajson_host, _grafanajson_port)
|
||||
self.grafanajson_host = _grafanajson_host
|
||||
self.grafanajson_port = grafanajson_port
|
||||
self.grafanajson_token = _grafana_token
|
||||
self.grafanajson_url = "http://%s:%s" % (_grafanajson_host, grafanajson_port)
|
||||
self.data = dict()
|
||||
self.data['overwrite'] = _overwrite
|
||||
|
||||
@@ -40,13 +43,14 @@ class GrafanaRequest:
|
||||
pass
|
||||
|
||||
def list_dashboards(self):
|
||||
url = self.grafanajson_url + '/api/search?folderIds=0&query=&starred=false'
|
||||
return requests.get(url).text
|
||||
url = self.grafanajson_url + '/api/search'
|
||||
print(url)
|
||||
return json.loads(requests.get(url,headers=self.headers).text)
|
||||
|
||||
def create_dashboard(self,
|
||||
dashboard_name=None,
|
||||
):
|
||||
self.grafanajson_url = self.grafanajson_url + "/api/dashboards/db"
|
||||
grafanajson_url = self.grafanajson_url + "/api/dashboards/db"
|
||||
datastore = dict()
|
||||
dashboard = dict()
|
||||
dashboard['id'] = None
|
||||
@@ -58,37 +62,59 @@ class GrafanaRequest:
|
||||
datastore['dashboard'] = dashboard
|
||||
datastore['overwrite'] = False
|
||||
data = json.dumps(datastore, indent=4)
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
return requests.post(grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
|
||||
def delete_dashboard(self,
|
||||
dashboard_uid=None):
|
||||
self.grafanajson_url = self.grafanajson_url + "/api/dashboards/uid/" + dashboard_uid
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, verify=False)
|
||||
grafanajson_url = self.grafanajson_url + "/api/dashboards/uid/" + dashboard_uid
|
||||
return requests.post(grafanajson_url, headers=self.headers, verify=False)
|
||||
|
||||
def create_dashboard_from_data(self,
|
||||
json_file=None):
|
||||
self.grafanajson_url = self.grafanajson_url + '/api/dashboards/db'
|
||||
grafanajson_url = self.grafanajson_url + '/api/dashboards/db'
|
||||
datastore = dict()
|
||||
dashboard = dict(json.loads(open(json_file).read()))
|
||||
datastore['dashboard'] = dashboard
|
||||
datastore['overwrite'] = False
|
||||
data = json.dumps(datastore, indent=4)
|
||||
#return print(data)
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
return requests.post(grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
|
||||
def create_dashboard_from_dict(self,
|
||||
dictionary=None):
|
||||
self.grafanajson_url = self.grafanajson_url + '/api/dashboards/db'
|
||||
grafanajson_url = self.grafanajson_url + '/api/dashboards/db'
|
||||
datastore = dict()
|
||||
dashboard = dict(json.loads(dictionary))
|
||||
datastore['dashboard'] = dashboard
|
||||
datastore['overwrite'] = False
|
||||
data = json.dumps(datastore, indent=4)
|
||||
#return print(data)
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
return requests.post(grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
|
||||
|
||||
def create_custom_dashboard(self,
|
||||
datastore=None):
|
||||
data = json.dumps(datastore, indent=4)
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
return requests.post(self.grafanajson_url, headers=self.headers, data=data, verify=False)
|
||||
|
||||
def create_snapshot(self, title):
|
||||
grafanajson_url = self.grafanajson_url + '/api/snapshots'
|
||||
data=self.get_dashboard(title)
|
||||
data['expires'] = 3600
|
||||
data['external'] = True
|
||||
print(data)
|
||||
return requests.post(grafanajson_url, headers=self.headers, json=data, verify=False).text
|
||||
|
||||
def list_snapshots(self):
|
||||
grafanajson_url = self.grafanajson_url + '/api/dashboard/snapshots'
|
||||
print(grafanajson_url)
|
||||
return json.loads(requests.get(grafanajson_url, headers=self.headers, verify=False).text)
|
||||
|
||||
def get_dashboard(self, target):
|
||||
dashboards = self.list_dashboards()
|
||||
for dashboard in dashboards:
|
||||
if dashboard['title'] == target:
|
||||
uid = dashboard['uid']
|
||||
grafanajson_url = self.grafanajson_url + '/api/dashboards/uid/' + uid
|
||||
print(grafanajson_url)
|
||||
return json.loads(requests.get(grafanajson_url, headers=self.headers, verify=False).text)
|
||||
Reference in New Issue
Block a user