more sipb_xen_database -> invirt.database in web
[invirt/packages/invirt-web.git] / code / webcommon.py
index 5911787..0449046 100644 (file)
@@ -1,7 +1,7 @@
 """Exceptions for the web interface."""
 
 import time
 """Exceptions for the web interface."""
 
 import time
-from sipb_xen_database import Machine, MachineAccess
+from invirt.database import Machine, MachineAccess
 
 class MyException(Exception):
     """Base class for my exceptions"""
 
 class MyException(Exception):
     """Base class for my exceptions"""
@@ -38,11 +38,17 @@ def cachedproperty(func):
 
 class State(object):
     """State for a request"""
 
 class State(object):
     """State for a request"""
-    def __init__(self, user):
+    def __init__(self, user, overlord=False):
         self.username = user
         self.username = user
+        self.overlord = overlord
 
 
-    machines = cachedproperty(lambda self:
-                                  Machine.query().join('acl').select_by(user=self.username))
+    def getMachines(self):
+        if self.overlord:
+            return Machine.select()
+        else:
+            return Machine.query().join('acl').select_by(user=self.username)
+
+    machines = cachedproperty(getMachines)
     xmlist_raw = cachedproperty(lambda self: controls.getList())
     xmlist = cachedproperty(lambda self:
                                 dict((m, self.xmlist_raw[m.name])
     xmlist_raw = cachedproperty(lambda self: controls.getList())
     xmlist = cachedproperty(lambda self:
                                 dict((m, self.xmlist_raw[m.name])
@@ -54,5 +60,3 @@ class State(object):
         for attr in list(self.__dict__):
             if attr.startswith('__cache_'):
                 delattr(self, attr)
         for attr in list(self.__dict__):
             if attr.startswith('__cache_'):
                 delattr(self, attr)
-
-state = State(None)