Preload ACL for machines, to avoid stale sessions precise-prod quentin 0.2.20
authorQuentin Smith <quentin@mit.edu>
Wed, 19 Jul 2017 13:39:51 +0000 (09:39 -0400)
committerQuentin Smith <quentin@mit.edu>
Wed, 19 Jul 2017 13:39:51 +0000 (09:39 -0400)
server/usr/bin/invirt-consolefs

index 5c7a1b3..719b40f 100755 (executable)
@@ -11,6 +11,7 @@ import errno
 
 from invirt.config import structs as config
 from invirt import database
+from sqlalchemy import orm
 
 realpath = "/home/machines/"
 
@@ -46,7 +47,7 @@ class ConsoleFS(routefs.RouteFS):
         if time() - self.lasttime > 5:
             self.lasttime = time()
             database.clear_cache()
-            self.machines = dict((machine.name, machine) for machine in database.Machine.query.all())
+            self.machines = dict((machine.name, machine) for machine in database.Machine.query.options(orm.subqueryload(database.Machine.acl)).all())
 
     def getMachines(self, **kw):
         self.recache()