From: Eric Price Date: Tue, 9 Oct 2007 21:30:50 +0000 (-0400) Subject: Bugfixes. X-Git-Tag: sipb-xen-www/1~75 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/commitdiff_plain/ffedf521f48eafd55ed0569b6e3b3697fb27cc92 Bugfixes. svn path=/trunk/web/; revision=157 --- diff --git a/templates/main.py b/templates/main.py index 09cc0ac..f798cbf 100755 --- a/templates/main.py +++ b/templates/main.py @@ -47,7 +47,7 @@ class Global(object): 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) @@ -231,7 +231,7 @@ def parseStatus(s): stack[-1].extend(v.split()) return stack[-1] -def getUptimes(machines): +def getUptimes(machines=None): """Return a dictionary mapping machine names to uptime strings""" value_string = remctl('web', 'listvms') lines = value_string.splitlines() @@ -406,7 +406,7 @@ def listVms(user, fields): default_disk=min(4.0, max_disk), machines=machines, has_vnc=has_vnc, - uptimes=uptimes, + uptimes=g.uptimes, cdroms=CDROM.select()) return Template(file='list.tmpl', searchList=[d, global_dict]) @@ -530,11 +530,11 @@ def deleteVM(machine): 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) if action not in ('Reboot', 'Power on', 'Power off', 'Shutdown', 'Delete VM'): @@ -555,7 +555,7 @@ def command(user, fields): remctl('shutdown', machine.name) elif action == 'Delete VM': deleteVM(machine) - print time.time()-start_time + print >> sys.stderr, time.time()-start_time d = dict(user=user, command=action, @@ -722,8 +722,8 @@ if __name__ == '__main__': u.email = 'nobody' 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" print 'Location: ' + os.environ['SCRIPT_NAME']+'/\n' @@ -733,7 +733,7 @@ if __name__ == '__main__': operation = operation[1:] if not operation: operation = 'list' - + def badOperation(u, e): raise CodeError("Unknown operation") @@ -746,17 +746,20 @@ if __name__ == '__main__': sys.stderr.seek(0) e = sys.stderr.read() if e: - output = output.replace('', '
'+e+'
') + output = str(output) + output = output.replace('', '

STDERR:

'+e+'
') print output except CodeError, err: print 'Content-Type: text/html\n' sys.stderr.seek(0) e = sys.stderr.read() + sys.stderr=sys.stdout print error(operation, u, fields, err, e) except InvalidInput, err: print 'Content-Type: text/html\n' sys.stderr.seek(0) e = sys.stderr.read() + sys.stderr=sys.stdout print invalidInput(operation, u, fields, err, e) except: print 'Content-Type: text/plain\n' @@ -764,4 +767,5 @@ if __name__ == '__main__': e = sys.stderr.read() print e print '----' + sys.stderr = sys.stdout raise