svn path=/trunk/packages/sipb-xen-www/; revision=599
"""Move stderr to stdout, and return the contents of the old stderr."""
errio = sys.stderr
if not isinstance(errio, StringIO):
"""Move stderr to stdout, and return the contents of the old stderr."""
errio = sys.stderr
if not isinstance(errio, StringIO):
sys.stderr = sys.stdout
errio.seek(0)
return errio.read()
sys.stderr = sys.stdout
errio.seek(0)
return errio.read()
def error(op, username, fields, err, emsg):
"""Print an error page when a CodeError occurs"""
def error(op, username, fields, err, emsg):
"""Print an error page when a CodeError occurs"""
+ send_error_mail('xvm error on %s for %s: %s' % (op, username, err),
+ 'error on %s for %s: %s\n\n%s\n'
+ % (op, username, err, emsg))
d = dict(op=op, user=username, errorMessage=str(err),
stderr=emsg)
return templates.error(searchList=[d])
d = dict(op=op, user=username, errorMessage=str(err),
stderr=emsg)
return templates.error(searchList=[d])
def throwError(_, __, ___):
"""Throw an error, to test the error-tracing mechanisms."""
def throwError(_, __, ___):
"""Throw an error, to test the error-tracing mechanisms."""
- raise RuntimeError("This is a test of the emergency broadcast system.")
+ raise CodeError("test of the emergency broadcast system")
mapping = dict(list=listVms,
vnc=vnc,
mapping = dict(list=listVms,
vnc=vnc,
-<p>$errorMessage in operation $op. This shouldn't happen! Please
-email xvm@mit.edu to explain how it happened. Stderr:</p>
-<pre>$stderr</pre>
+<p>Uh-oh! We experienced an error. Sorry about that. We've gotten
+mail about it.</p>
+
+<p>Feel free to poke us at <tt>xvm@mit.edu</tt> if this bug is
+consistently biting you and we don't seem to be fixing it.</p>
+
+<p>In case you're curious, the gory details are here.</p>
+
+<pre>
+Error on operation $op for user $user: $errorMessage
+Error output (if any):
+$stderr
+</pre>