]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard_v2: Fix content type (body) of error page
authorPatrick Nawracay <patrick@nawracay.de>
Fri, 26 Jan 2018 13:41:55 +0000 (14:41 +0100)
committerRicardo Dias <rdias@suse.com>
Mon, 5 Mar 2018 13:07:03 +0000 (13:07 +0000)
Signed-off-by: Patrick Nawracay <pnawracay@suse.com>
src/pybind/mgr/dashboard_v2/module.py
src/pybind/mgr/dashboard_v2/tools.py

index 8a469f7ebc29383fb0883c40696cc86c014f23ff..acb5d0c282d20684ec48b181fb6ca5a4daf37701 100644 (file)
@@ -11,7 +11,7 @@ import cherrypy
 from mgr_module import MgrModule
 
 from .controllers.auth import Auth
-from .tools import load_controllers
+from .tools import load_controllers, json_error_page
 
 
 # cherrypy likes to sys.exit on error.  don't let it take us down too!
@@ -54,7 +54,8 @@ class Module(MgrModule):
             cherrypy.config.update({
                 'server.socket_host': server_addr,
                 'server.socket_port': int(server_port),
-                'engine.autoreload.on': False
+                'engine.autoreload.on': False,
+                'error_page.default': json_error_page
             })
         cherrypy.tools.authenticate = cherrypy.Tool('before_handler',
                                                     Auth.check_auth)
index 2f42e24e7660f306e145441d01a0af8c6d7dfd67..ee3e276e0bb9ce47f6dd2d8c060dc44a6c93dd81 100644 (file)
@@ -69,7 +69,8 @@ def load_controllers(mgrmodule):
     return controllers
 
 
-def _json_error_page(status, message, traceback, version):
+def json_error_page(status, message, traceback, version):
+    cherrypy.response.headers['Content-Type'] = 'application/json'
     return json.dumps(dict(status=status, detail=message, traceback=traceback,
                            version=version))
 
@@ -104,7 +105,7 @@ class BaseController(six.with_metaclass(BaseControllerMeta, object)):
     _mgr_module = None
 
     _cp_config_default = {
-        'request.error_page': {'default': _json_error_page},
+        'request.error_page': {'default': json_error_page},
     }
 
     @property
@@ -194,7 +195,7 @@ class RESTController(BaseController):
     @cherrypy.expose
     def default(self, *vpath, **params):
         cherrypy.config.update({
-            'error_page.default': _json_error_page})
+            'error_page.default': json_error_page})
         obj_key, detail_route_name = self.split_vpath(vpath)
         method, status_code = self._get_method(obj_key, detail_route_name)