Skip to content
Snippets Groups Projects
Commit 221b3f75 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

add grafana API request utils

parent 0b92c929
No related branches found
No related tags found
No related merge requests found
from brian_dashboard_manager.grafana.provision import provision
__all__ = ["provision"]
\ No newline at end of file
import requests
from typing import Dict, Any
from flask import current_app
import json
class Request(object):
......@@ -21,7 +20,10 @@ class Request(object):
**kwargs
)
r.raise_for_status()
return r.json()
try:
return r.json()
except json.JSONDecodeError:
return None
def post(self, endpoint: str, headers=None, **kwargs):
......@@ -31,7 +33,10 @@ class Request(object):
**kwargs
)
r.raise_for_status()
return r.json()
try:
return r.json()
except json.JSONDecodeError:
return None
def delete(self, endpoint: str, headers=None, **kwargs):
......@@ -41,23 +46,27 @@ class Request(object):
**kwargs
)
r.raise_for_status()
return r.json()
try:
return r.json()
except json.JSONDecodeError:
return None
class AdminRequest(Request):
def __init__(self, hostname, port, username, password):
self.username = username
super().__init__(f'http://{username}:{password}@{hostname}:{port}/')
def __init__(self, hostname, grafana_port, admin_username, admin_password, **kwargs):
self.username = admin_username
super().__init__(
f'http://{admin_username}:{admin_password}@{hostname}:{grafana_port}/')
def __str__(self):
return f'admin user: {self.username}'
class TokenRequest(Request):
def __init__(self, hostname, port, token: str):
def __init__(self, hostname, grafana_port, token: str, **kwargs):
self.token = token
super().__init__(f'http://{hostname}:{port}/', {
super().__init__(f'http://{hostname}:{grafana_port}/', {
'Authorization': 'Bearer ' + token
})
......
......@@ -2,3 +2,5 @@ requests
jsonschema
flask
pytest
pytest-mock
responses
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment