Add a machine_access table where access information will be cached
authorQuentin Smith <quentin@mit.edu>
Mon, 12 Nov 2007 09:22:49 +0000 (04:22 -0500)
committerQuentin Smith <quentin@mit.edu>
Mon, 12 Nov 2007 09:22:49 +0000 (04:22 -0500)
svn path=/trunk/packages/sipb-xen-database/sipb-xen-database/; revision=238

sipb_xen_database/models.py

index 730cc8b..12db8c9 100644 (file)
@@ -55,11 +55,19 @@ cdroms_table = Table('cdroms', meta,
        Column('cdrom_id', String, primary_key=True, nullable=False),
        Column('description', String, nullable=False))
 
+machine_access_table = Table('machine_access', meta,
+       Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=False, index=True),
+       Column('user', String, nullable=False, index=True),
+       PrimaryKeyConstraint('machine_id', 'user'))
 
 class Machine(object):
     def __repr__(self):
         return "<Machine %s: name='%s' owner='%s'>" % (self.machine_id, self.name, self.owner)
 
+class MachineAccess(object):
+    def __repr__(self):
+        return "<MachineAccess machine='%s' user='%s'>" % (self.machine, self.user)
+
 class NIC(object):
     def __init__(self, machine_id, mac_addr, ip, hostname):
         self.machine_id = machine_id
@@ -91,9 +99,10 @@ class CDROM(object):
 assign_mapper(ctx, Machine, machine_table,
               properties={'nics': relation(NIC, backref="machine"),
                           'disks': relation(Disk, backref="machine"),
-                          'type': relation(Type)});
+                          'type': relation(Type),
+                          'users': relation(MachineAccess, backref="machine")});
+assign_mapper(ctx, MachineAccess, machine_access_table)
 assign_mapper(ctx, NIC, nic_table)
 assign_mapper(ctx, Disk, disk_table)
 assign_mapper(ctx, Type, types_table)
 assign_mapper(ctx, CDROM, cdroms_table)
-