X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/6b8f7baf1bf4aeb801eb390a1720dd32ceca96e3..0432c879b481c78ab3e34edb03ae82c1cff17ceb:/files/usr/sbin/sipb-xen-remconffs diff --git a/files/usr/sbin/sipb-xen-remconffs b/files/usr/sbin/sipb-xen-remconffs index 4db1414..3f640fc 100755 --- a/files/usr/sbin/sipb-xen-remconffs +++ b/files/usr/sbin/sipb-xen-remconffs @@ -20,9 +20,6 @@ class RemConfFS(routefs.RouteFS): `-- conf The machine list and the acls are drawn from a database. - - This filesystem only implements the getattr, getdir, read, and readlink - calls, because this is a read-only filesystem. """ def __init__(self, *args, **kw): @@ -40,6 +37,7 @@ class RemConfFS(routefs.RouteFS): def make_map(self): m = Mapper() m.connect('', controller='getroot') + m.connect('acl', controller='getmachines') m.connect('acl/:machine', controller='getacl') m.connect('conf', controller='getconf') return m @@ -62,15 +60,15 @@ class RemConfFS(routefs.RouteFS): return '\n'.join("control %s /usr/sbin/sipb-xen-remote-proxy-control" " /etc/remctl/remconffs/acl/%s" % (machine_name, machine_name) - for machine_name in self.getMachines())+'\n' + for machine_name in self.getmachines())+'\n' - def getMachines(self): + def getmachines(self, **kw): """Get the list of VMs in the database, clearing the cache if it's older than 15 seconds""" if time() - self.lasttime > 15: self.lasttime = time() database.clear_cache() - return [machine.name for machine in database.Machine.select()] + return [machine.name for machine in database.session.query(database.Machine).all()] def userToPrinc(self, user): """Convert Kerberos v4-style names to v5-style and append a default