From e0d6898dcd8515919ffcfde8c8bd21c68faafb37 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: May 09 2016 12:32:18 +0000 Subject: Send ProviderException with the correct error code and message This makes a ProviderEexception(400, ..) actually send a 400 status code, and display the correct message. Otherwise, we were sending an error 500, because cherrypy did not know how to interpret Exception's other than cherrypy.HTTPError. Signed-off-by: Patrick Uiterwijk Reviewed-by: Pierre-Yves Chibon --- diff --git a/ipsilon/providers/common.py b/ipsilon/providers/common.py index cfc1bac..bfe5f2d 100644 --- a/ipsilon/providers/common.py +++ b/ipsilon/providers/common.py @@ -10,15 +10,14 @@ from ipsilon.rest.common import RestPage import cherrypy -class ProviderException(Exception, Log): +class ProviderException(cherrypy.HTTPError, Log): code = 500 message = None def __init__(self, message, code=None): - super(ProviderException, self).__init__(message) + super(ProviderException, self).__init__(code or self.code, + self.message) self.message = message - if code: - self.code = code self.debug('%s [%s]' % (self.message, self.code)) def __str__(self):