X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/e37dd15bbf8683bab8454ea0eec8e9968ce982b2..6ad15798ee7d77b36d32ed3ca3a8a10c6cfd0849:/code/webcommon.py diff --git a/code/webcommon.py b/code/webcommon.py index 4b58e6b..58d9333 100644 --- a/code/webcommon.py +++ b/code/webcommon.py @@ -1,5 +1,6 @@ """Exceptions for the web interface.""" +import time from sipb_xen_database import Machine, MachineAccess class MyException(Exception): @@ -39,12 +40,14 @@ class Global(object): """Global state of the system, to avoid duplicate remctls to get state""" def __init__(self, user): self.user = user - - machines = cachedproperty(lambda self: - [ma.machine for ma in - MachineAccess.select_by(user=self.user)]) - uptimes = cachedproperty(lambda self: - controls.getUptimes(self.machines)) + + machines = cachedproperty(lambda self: + Machine.query().join('acl').select_by(user=self.user)) + xmlist_raw = cachedproperty(lambda self: controls.getList()) + xmlist = cachedproperty(lambda self: + dict((m, self.xmlist_raw[m.name]) + for m in self.machines + if m.name in self.xmlist_raw)) def clear(self): """Clear the state so future accesses reload it."""