mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 10:48:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.1 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):
 | 
