mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 11:18:03 +00:00
63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
# Class holds default settings for json requests to Grafana -
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
import sys
|
|
|
|
if sys.version_info[0] != 3:
|
|
print("This script requires Python 3")
|
|
exit()
|
|
|
|
import requests
|
|
|
|
import json
|
|
|
|
|
|
class GrafanaRequest:
|
|
def __init__(self,
|
|
_grafanajson_host,
|
|
_grafanajson_port,
|
|
_folderID=0,
|
|
_api_token=None,
|
|
_headers=dict(),
|
|
_overwrite='false',
|
|
debug_=False,
|
|
die_on_error_=False):
|
|
self.debug = debug_
|
|
self.die_on_error = die_on_error_
|
|
self.headers = _headers
|
|
self.headers['Authorization'] = 'Bearer ' + _api_token
|
|
self.headers['Content-Type'] = 'application/json'
|
|
self.grafanajson_url = "http://%s:%s" % (_grafanajson_host, _grafanajson_port)
|
|
self.data = dict()
|
|
self.data['overwrite'] = _overwrite
|
|
|
|
def create_bucket(self,
|
|
bucket_name=None):
|
|
# Create a bucket in Grafana
|
|
if bucket_name is not None:
|
|
pass
|
|
|
|
def list_dashboards(self):
|
|
url = self.grafanajson_url + '/api/search?folderIds=0&query=&starred=false'
|
|
return requests.get(url).text
|
|
|
|
def create_dashboard(self,
|
|
dashboard_name=None,
|
|
):
|
|
self.grafanajson_url = self.grafanajson_url + "/api/dashboards/db"
|
|
|
|
data = (
|
|
'{ "dashboard": { "id": null, "title": "%s" , "tags": [ "templated" ], "timezone": "browser", "schemaVersion": 6, "version": 0 }, "overwrite": false }' % dashboard_name)
|
|
return requests.get(self.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)
|
|
|
|
def create_dashboard_from_data(self,
|
|
json_file=None):
|
|
pass
|