DEFAULT_HEADERS = {'Content-Type': 'text/html'}
-def error(op, username, fields, err, emsg, traceback):
- """Print an error page when an exception occurs"""
- d = dict(op=op, user=username, fields=fields,
- errorMessage=str(err), stderr=emsg, traceback=traceback)
- details = templates.error_raw(searchList=[d])
- send_error_mail('xvm error on %s for %s: %s' % (op, username, err),
- details)
- d['details'] = details
- return templates.error(searchList=[d])
-
def invalidInput(op, username, fields, err, emsg):
"""Print an error page when an InvalidInput exception occurs"""
d = dict(op=op, user=username, err_field=err.err_field,
p.stdin.close()
p.wait()
+def show_error(op, username, fields, err, emsg, traceback):
+ """Print an error page when an exception occurs"""
+ d = dict(op=op, user=username, fields=fields,
+ errorMessage=str(err), stderr=emsg, traceback=traceback)
+ details = templates.error_raw(searchList=[d])
+ send_error_mail('xvm error on %s for %s: %s' % (op, username, err),
+ details)
+ d['details'] = details
+ return templates.error(searchList=[d])
+
def getUser(environ):
"""Return the current user based on the SSL environment variables"""
email = environ.get('SSL_CLIENT_S_DN_Email', None)
if isinstance(output, tuple):
new_headers, output = output
headers.update(new_headers)
- print 'MOO2'
e = revertStandardError()
if e:
if isinstance(output, basestring):
if isinstance(err, InvalidInput):
self.start('200 OK', [('Content-Type', 'text/html')])
e = revertStandardError()
- yield str(invalidInput(operation, self.username, fields, err, e))
+ yield str(invalidInput(operation, self.username, fields,
+ err, e))
return
import traceback
self.start('500 Internal Server Error',
[('Content-Type', 'text/html')])
e = revertStandardError()
- s = error(operation, self.username, fields,
+ s = show_error(operation, self.username, fields,
err, e, traceback.format_exc())
yield str(s)
return