diff --git a/brian_dashboard_manager/grafana/__init__.py b/brian_dashboard_manager/grafana/__init__.py index a39afea8d2ae43facdf737af680cf5b9f911e052..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/brian_dashboard_manager/grafana/__init__.py +++ b/brian_dashboard_manager/grafana/__init__.py @@ -1,3 +0,0 @@ -from brian_dashboard_manager.grafana.provision import provision - -__all__ = ["provision"] \ No newline at end of file diff --git a/brian_dashboard_manager/grafana/utils/__init__.py b/brian_dashboard_manager/grafana/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/brian_dashboard_manager/grafana/utils/request.py b/brian_dashboard_manager/grafana/utils/request.py index a34d541c83dca9600bc1e958791ce8e2ab23472b..db29319e373641ecf9ad2f7e53e1bfdea57fc1b1 100644 --- a/brian_dashboard_manager/grafana/utils/request.py +++ b/brian_dashboard_manager/grafana/utils/request.py @@ -1,6 +1,5 @@ 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 }) diff --git a/requirements.txt b/requirements.txt index 48c54a2bceaadd63934dc0b821777057f31fe0a5..d04fa58e0ce8e5c06a09e909c4d0fec094dee16c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,5 @@ requests jsonschema flask pytest +pytest-mock +responses