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

Guard against various errors

parent 6a3efcf8
No related branches found
No related tags found
No related merge requests found
...@@ -19,13 +19,24 @@ def delete_folder(request: TokenRequest, title=None, uid=None): ...@@ -19,13 +19,24 @@ def delete_folder(request: TokenRequest, title=None, uid=None):
:return: True if folder is considered deleted, False otherwise :return: True if folder is considered deleted, False otherwise
""" """
if uid: if uid:
r = request.delete(f'api/folders/{uid}').json() try:
r = request.delete(f'api/folders/{uid}').json()
except HTTPError:
logger.exception(f'Error when deleting folder: {uid}')
return False
return r is not None return r is not None
else: else:
folder = find_folder(request, title, False) folder = find_folder(request, title, False)
if folder is None: if folder is None:
return True return True
r = request.delete(f'api/folders/{folder.get("uid")}').json() try:
r = request.delete(f'api/folders/{folder.get("uid")}')
r = r.json()
except HTTPError:
logger.exception(f'Error when deleting folder: {title}')
return False
logger.info(f'Deleted folder: {title}') logger.info(f'Deleted folder: {title}')
return r is not None return r is not None
...@@ -48,8 +59,10 @@ def find_folder(request: TokenRequest, title, create=True): ...@@ -48,8 +59,10 @@ def find_folder(request: TokenRequest, title, create=True):
folder = None folder = None
if not folder and create: if not folder and create:
logger.info(f'Created folder: {title}')
folder = create_folder(request, title) folder = create_folder(request, title)
if not folder:
return None
logger.info(f'Created folder: {title}')
return folder return folder
...@@ -61,7 +74,14 @@ def get_folders(request: TokenRequest): ...@@ -61,7 +74,14 @@ def get_folders(request: TokenRequest):
:param request: TokenRequest object :param request: TokenRequest object
:return: list of folder definitions :return: list of folder definitions
""" """
return request.get('api/folders').json() try:
r = request.get('api/folders')
folders = r.json()
except HTTPError:
logger.exception('Error when getting Grafana folders:')
return []
return folders
def create_folder(request: TokenRequest, title): def create_folder(request: TokenRequest, title):
......
...@@ -478,6 +478,8 @@ def _provision_gws_direct(config, org_config, ds_name, token): ...@@ -478,6 +478,8 @@ def _provision_gws_direct(config, org_config, ds_name, token):
delete_folder(token, title=folder_name) delete_folder(token, title=folder_name)
else: else:
folder = find_folder(token, folder_name) folder = find_folder(token, folder_name)
if not folder:
logger.error(f'Folder {folder_name} not found')
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor: with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
gws_data = get_gws_direct(config['inventory_provider']) gws_data = get_gws_direct(config['inventory_provider'])
provisioned = [] provisioned = []
......
import logging
import requests import requests
logger = logging.getLogger(__name__)
def fetch_services(host): def fetch_services(host):
""" """
Fetches the current service state from the Reporting Provider host Fetches the current service state from the Reporting Provider host
""" """
r = requests.get(f'{host}/scid/current') try:
r.raise_for_status() r = requests.get(f'{host}/scid/current')
services = r.json() r.raise_for_status()
services = r.json()
except requests.exceptions.HTTPError:
logger.exception('Error when fetching services:')
services = []
return services return services
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