projects
/
invirt/packages/invirt-web.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a couple bugs.
[invirt/packages/invirt-web.git]
/
code
/
webcommon.py
diff --git
a/code/webcommon.py
b/code/webcommon.py
index
ee9bb73
..
5911787
100644
(file)
--- a/
code/webcommon.py
+++ b/
code/webcommon.py
@@
-36,15
+36,18
@@
def cachedproperty(func):
return value
return property(getter)
return value
return property(getter)
-class Global(object):
- """Global state of the system, to avoid duplicate remctls to get state"""
+class State(object):
+ """State for a request"""
def __init__(self, user):
def __init__(self, user):
- self.user = user
+ self.username = user
machines = cachedproperty(lambda self:
machines = cachedproperty(lambda self:
- Machine.query().join('acl').select_by(user=self.user))
+ Machine.query().join('acl').select_by(user=self.username))
+ xmlist_raw = cachedproperty(lambda self: controls.getList())
xmlist = cachedproperty(lambda self:
xmlist = cachedproperty(lambda self:
- controls.getList(self.machines))
+ 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."""
def clear(self):
"""Clear the state so future accesses reload it."""
@@
-52,4
+55,4
@@
class Global(object):
if attr.startswith('__cache_'):
delattr(self, attr)
if attr.startswith('__cache_'):
delattr(self, attr)
-g = Global(None)
+state = State(None)