From 35911c767e48659c7c16ddcbe6cfc767a64d554a Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Thu, 7 Mar 2019 14:31:08 +0000 Subject: [PATCH] handle process execution exceptions --- pygeoapi/api.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pygeoapi/api.py b/pygeoapi/api.py index 23b2b33..2c8877f 100644 --- a/pygeoapi/api.py +++ b/pygeoapi/api.py @@ -37,6 +37,7 @@ from jinja2 import Environment, FileSystemLoader from pygeoapi import __version__ from pygeoapi.log import setup_logger from pygeoapi.plugin import load_plugin, PLUGINS +from pygeoapi.process.base import ProcessorExecuteError from pygeoapi.provider.base import ProviderConnectionError, ProviderQueryError LOGGER = logging.getLogger(__name__) @@ -620,11 +621,17 @@ class API(object): for input_ in data_['inputs']: data_dict[input_['id']] = input_['value'] - outputs = p.execute(data_dict) - - response['outputs'] = outputs - - return headers_, 201, json.dumps(response) + try: + outputs = p.execute(data_dict) + response['outputs'] = outputs + return headers_, 201, json.dumps(response) + except ProcessorExecuteError as err: + exception = { + 'code': 'InvalidParameterValue', + 'description': str(err) + } + LOGGER.error(exception) + return headers_, 400, json.dumps(exception) def to_json(dict_):