svn path=/trunk/packages/sipb-xen-www/; revision=598
"""Information for unauth'd users."""
return templates.unauth(searchList=[{'simple' : True}])
"""Information for unauth'd users."""
return templates.unauth(searchList=[{'simple' : True}])
+def throwError(_, __, ___):
+ """Throw an error, to test the error-tracing mechanisms."""
+ raise RuntimeError("This is a test of the emergency broadcast system.")
+
mapping = dict(list=listVms,
vnc=vnc,
command=command,
mapping = dict(list=listVms,
vnc=vnc,
command=command,
info=info,
create=create,
help=helpHandler,
info=info,
create=create,
help=helpHandler,
+ unauth=unauthFront,
+ errortest=throwError)
def printHeaders(headers):
"""Print a dictionary as HTTP headers."""
def printHeaders(headers):
"""Print a dictionary as HTTP headers."""
print '%s: %s' % (key, value)
print
print '%s: %s' % (key, value)
print
+def send_error_mail(subject, body):
+ import subprocess
+
+ to = 'xvm@mit.edu'
+ mail = """To: %s
+From: root@xvm.mit.edu
+Subject: %s
+
+%s
+""" % (to, subject, body)
+ p = subprocess.Popen(['/usr/sbin/sendmail', to], stdin=subprocess.PIPE)
+ p.stdin.write(mail)
+ p.stdin.close()
+ p.wait()
def getUser(environ):
"""Return the current user based on the SSL environment variables"""
def getUser(environ):
"""Return the current user based on the SSL environment variables"""
return
self.start('500 Internal Server Error', [('Content-Type', 'text/plain')])
import traceback
return
self.start('500 Internal Server Error', [('Content-Type', 'text/plain')])
import traceback
- yield '''Uh-oh! We experienced an error.'
-Please email xvm-dev@mit.edu with the contents of this page.'
+ send_error_mail('xvm error: %s' % (err,),
+ '%s\n' % (traceback.format_exc(),))
+ yield '''Uh-oh! We experienced an error.
+Sorry about that. We've gotten mail about it.
+
+Feel free to poke us at xvm@mit.edu if this bug is
+consistently biting you and we don't seem to be fixing it.
+
+In case you're curious, the gory details are here.