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):
:return: True if folder is considered deleted, False otherwise
"""
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
else:
folder = find_folder(request, title, False)
if folder is None:
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}')
return r is not None
......@@ -48,8 +59,10 @@ def find_folder(request: TokenRequest, title, create=True):
folder = None
if not folder and create:
logger.info(f'Created folder: {title}')
folder = create_folder(request, title)
if not folder:
return None
logger.info(f'Created folder: {title}')
return folder
......@@ -61,7 +74,14 @@ def get_folders(request: TokenRequest):
:param request: TokenRequest object
: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):
......
......@@ -478,6 +478,8 @@ def _provision_gws_direct(config, org_config, ds_name, token):
delete_folder(token, title=folder_name)
else:
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:
gws_data = get_gws_direct(config['inventory_provider'])
provisioned = []
......
import logging
import requests
logger = logging.getLogger(__name__)
def fetch_services(host):
"""
Fetches the current service state from the Reporting Provider host
"""
r = requests.get(f'{host}/scid/current')
r.raise_for_status()
services = r.json()
try:
r = requests.get(f'{host}/scid/current')
r.raise_for_status()
services = r.json()
except requests.exceptions.HTTPError:
logger.exception('Error when fetching services:')
services = []
return services
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment