From 4f1149ff075829315c100c47da8058515221ce3d Mon Sep 17 00:00:00 2001 From: Daniel <daniel@harvey> Date: Tue, 24 Nov 2020 10:11:57 +0100 Subject: [PATCH] ENH: More useful error message if debug mode is disabled. --- src/caosdb/common/administration.py | 16 +++++++++++----- src/caosdb/exceptions.py | 7 +++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/caosdb/common/administration.py b/src/caosdb/common/administration.py index 7997088a..e2846ef1 100644 --- a/src/caosdb/common/administration.py +++ b/src/caosdb/common/administration.py @@ -31,7 +31,7 @@ from lxml import etree from caosdb.common.utils import xml2str from caosdb.connection.connection import get_connection from caosdb.exceptions import (AuthorizationException, ClientErrorException, - EntityDoesNotExistError) + EntityDoesNotExistError, ServerConfigurationException) def set_server_property(key, value): @@ -52,9 +52,11 @@ def set_server_property(key, value): None """ con = get_connection() - - con._form_data_request(method="POST", path="_server_properties", - params={key: value}).read() + try: + con._form_data_request(method="POST", path="_server_properties", + params={key: value}).read() + except EntityDoesNotExistError: + raise ServerConfigurationException("Debug mode in server is probably disabled.") from None def get_server_properties(): @@ -68,7 +70,11 @@ def get_server_properties(): The server properties. """ con = get_connection() - body = con._http_request(method="GET", path="_server_properties").response + try: + body = con._http_request(method="GET", path="_server_properties").response + except EntityDoesNotExistError: + raise ServerConfigurationException("Debug mode in server is probably disabled.") from None + xml = etree.parse(body) props = dict() diff --git a/src/caosdb/exceptions.py b/src/caosdb/exceptions.py index 5763bef4..c406ad96 100644 --- a/src/caosdb/exceptions.py +++ b/src/caosdb/exceptions.py @@ -60,6 +60,13 @@ class ConfigurationException(CaosDBException): ".pycaosdb.ini. Do at least one of them exist and are they correct?") +class ServerConfigurationException(CaosDBException): + """The server is configured in a different way than expected. + + This can be for example unexpected flags or settings or missing extensions. + """ + + class ClientErrorException(CaosDBException): def __init__(self, msg, status, body): self.status = status -- GitLab