Index: trunk/web/templates/main.py
===================================================================
--- trunk/web/templates/main.py	(revision 156)
+++ trunk/web/templates/main.py	(revision 157)
@@ -48,5 +48,5 @@
     def __get_uptimes(self):
         if not hasattr(self, '_uptimes'):
-            self._uptimes = getUptimes(self.machines)
+            self._uptimes = getUptimes(Machine.select())
         return self._uptimes
     uptimes = property(__get_uptimes)
@@ -232,5 +232,5 @@
     return stack[-1]
 
-def getUptimes(machines):
+def getUptimes(machines=None):
     """Return a dictionary mapping machine names to uptime strings"""
     value_string = remctl('web', 'listvms')
@@ -407,5 +407,5 @@
              machines=machines,
              has_vnc=has_vnc,
-             uptimes=uptimes,
+             uptimes=g.uptimes,
              cdroms=CDROM.select())
     return Template(file='list.tmpl', searchList=[d, global_dict])
@@ -531,9 +531,9 @@
 def command(user, fields):
     """Handler for running commands like boot and delete on a VM."""
-    print time.time()-start_time
+    print >> sys.stderr, time.time()-start_time
     machine = testMachineId(user, fields.getfirst('machine_id'))
     action = fields.getfirst('action')
     cdrom = fields.getfirst('cdrom')
-    print time.time()-start_time
+    print >> sys.stderr, time.time()-start_time
     if cdrom is not None and not CDROM.get(cdrom):
         raise CodeError("Invalid cdrom type '%s'" % cdrom)    
@@ -556,5 +556,5 @@
     elif action == 'Delete VM':
         deleteVM(machine)
-    print time.time()-start_time
+    print >> sys.stderr, time.time()-start_time
 
     d = dict(user=user,
@@ -723,6 +723,6 @@
     connect('postgres://sipb-xen@sipb-xen-dev/sipb_xen')
     operation = os.environ.get('PATH_INFO', '')
-    #print 'Content-Type: text/plain\n'
-    #print operation
+#    print 'Content-Type: text/plain\n'
+#    print operation
     if not operation:
         print "Status: 301 Moved Permanently"
@@ -734,5 +734,5 @@
     if not operation:
         operation = 'list'
-    
+
     def badOperation(u, e):
         raise CodeError("Unknown operation")
@@ -747,5 +747,6 @@
         e = sys.stderr.read()
         if e:
-            output = output.replace('<body>', '<body><pre>'+e+'</pre>')
+            output = str(output)
+            output = output.replace('<body>', '<body><p>STDERR:</p><pre>'+e+'</pre>')
         print output
     except CodeError, err:
@@ -753,4 +754,5 @@
         sys.stderr.seek(0)
         e = sys.stderr.read()
+        sys.stderr=sys.stdout
         print error(operation, u, fields, err, e)
     except InvalidInput, err:
@@ -758,4 +760,5 @@
         sys.stderr.seek(0)
         e = sys.stderr.read()
+        sys.stderr=sys.stdout
         print invalidInput(operation, u, fields, err, e)
     except:
@@ -765,3 +768,4 @@
         print e
         print '----'
+        sys.stderr = sys.stdout
         raise
