include the traceback in the response when a server method fails
example: $ curl --unix-socket .subiquity/socket a/dry_run/crash Traceback (most recent call last): File "/home/mwhudson/src/subiquity/subiquity/common/api/server.py", line 122, in handler result = await implementation(**args) File "/home/mwhudson/src/subiquity/subiquity/server/dryrun.py", line 24, in crash_GET 1/0 ZeroDivisionError: division by zero
This commit is contained in:
parent
541b483fb9
commit
f339620a50
|
@ -14,6 +14,7 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
|
import traceback
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
|
||||||
|
@ -123,7 +124,9 @@ def _make_handler(controller, definition, implementation, serializer):
|
||||||
serializer.serialize(def_ret_ann, result),
|
serializer.serialize(def_ret_ann, result),
|
||||||
headers={'x-status': 'ok'})
|
headers={'x-status': 'ok'})
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
tb = traceback.TracebackException.from_exception(exc)
|
||||||
resp = web.Response(
|
resp = web.Response(
|
||||||
|
text="".join(tb.format()),
|
||||||
status=500,
|
status=500,
|
||||||
headers={
|
headers={
|
||||||
'x-status': 'error',
|
'x-status': 'error',
|
||||||
|
|
Loading…
Reference in New Issue