Added templates for 404 and 500 errors. 404 displays a generic "page
not found" error. 500 displays the exception type and value, along with
a traceback that can be revealed.
Risk: low
Visibility: medium (changing the look and feel of errors)
Signed-off-by: James Ren <jamesren@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@1895 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/views.py b/frontend/afe/views.py
index 365f84f..8d7911b 100644
--- a/frontend/afe/views.py
+++ b/frontend/afe/views.py
@@ -1,8 +1,10 @@
-import urllib2
+import urllib2, sys, traceback, cgi
from frontend.afe import models, rpc_handler, rpc_interface, site_rpc_interface
from frontend.afe import rpc_utils
from django.http import HttpResponse, HttpResponsePermanentRedirect
+from django.http import HttpResponseServerError
+from django.template import Context, loader
# since site_rpc_interface is later in the list, its methods will override those
# of rpc_interface
@@ -41,3 +43,14 @@
if header not in ('connection',):
http_response[header] = value
return http_response
+
+
+def handler500(request):
+ t = loader.get_template('500.html')
+ trace = traceback.format_exc()
+ context = Context({
+ 'type': sys.exc_type,
+ 'value': sys.exc_value,
+ 'traceback': cgi.escape(trace)
+ })
+ return HttpResponseServerError(t.render(context))