From 9520b11becb9bd14ae6b6d4e788137589aad03c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20K=C3=A1cha?= <ph@cesnet.cz> Date: Thu, 1 Sep 2016 11:52:24 +0200 Subject: [PATCH] Server now handles too long error messages and messages, containing '\n' --- warden3/warden_server/warden_server.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py index e20d2d7..3446bfe 100755 --- a/warden3/warden_server/warden_server.py +++ b/warden3/warden_server/warden_server.py @@ -47,7 +47,7 @@ class Error(Exception): def get_http_err_msg(self): try: err = self.errors[0]["error"] - msg = self.errors[0]["message"] + msg = self.errors[0]["message"].replace("\n", " ") except (IndexError, KeyError): err = 500 msg = "There's NO self-destruction button! Ah, you've just found it..." @@ -57,7 +57,7 @@ class Error(Exception): # errors not same, round to basic err code (400, 500) # and use the highest one err = max(err//100, next_err//100)*100 - next_msg = e.get("message", "Unknown error") + next_msg = e.get("message", "Unknown error").replace("\n", " ") if msg != next_msg: msg = "Multiple errors" return err, msg @@ -430,11 +430,14 @@ class JSONSchemaValidator(NoValidator): res = [] for error in sorted(self.validator.iter_errors(event), key=sortkey): - res.append({"error": 460, - "message": "Validation error: key \"%s\", value \"%s\", expected - %s" % ( + res.append({ + "error": 460, + "message": "Validation error: key \"%s\", value \"%s\"" % ( "/".join(str(v) for v in error.path), - error.instance, - error.schema.get('description', 'no additional info'))}) + error.instance + ), + "expected": error.schema.get('description', 'no additional info') + }) return res -- GitLab