Index: trunk/packages/invirt-database/python/database/models.py
===================================================================
--- trunk/packages/invirt-database/python/database/models.py	(revision 1714)
+++ trunk/packages/invirt-database/python/database/models.py	(revision 2132)
@@ -17,4 +17,5 @@
            'mirrors_table',
            'autoinstalls_table',
+           'owners_table',
            'Machine',
            'MachineAccess',
@@ -25,4 +26,5 @@
            'Mirror',
            'Autoinstall',
+           'Owner',
            'or_',
            ]
@@ -83,4 +85,9 @@
        Column('arch', String, nullable=False))
 
+owners_table = Table('owners', meta,
+       Column('owner_id', String, primary_key=True, nullable=False),
+       Column('ram_quota_total', Integer, nullable=True),
+       Column('ram_quota_single', Integer, nullable=True))
+
 machine_access_table = Table('machine_access', meta,
        Column('machine_id', Integer, ForeignKey('machines.machine_id', ondelete='CASCADE'), nullable=False, index=True),
@@ -120,4 +127,6 @@
         return "<Autoinstall %s: %s (%s)>" % (self.autoinstall_id, self.description, self.type.type_id)
 
+from owner import Owner
+
 session.mapper(Machine, machine_table,
               properties={'nics': relation(NIC, backref="machine"),
@@ -133,4 +142,5 @@
                properties={'mirror': relation(Mirror, backref="cdroms")})
 session.mapper(Autoinstall, autoinstalls_table)
+session.mapper(Owner, owners_table)
 
 def clear_cache():
Index: trunk/packages/invirt-database/python/database/owner.py
===================================================================
--- trunk/packages/invirt-database/python/database/owner.py	(revision 2132)
+++ trunk/packages/invirt-database/python/database/owner.py	(revision 2132)
@@ -0,0 +1,19 @@
+MAX_MEMORY_TOTAL = 512
+MAX_MEMORY_SINGLE = 512
+class Owner(object):
+    def __repr__(self):
+        return "<Owner %s: ram_quota_total=%s MB ram_quota_single=%s MB>" % (self.owner_id, self.ram_quota_total, self.ram_quota_single)
+    def getQuotas(owner):
+        owner_info = Owner.query().filter_by(owner_id=owner).first()
+        if owner_info != None:
+            quota_total = owner_info.ram_quota_total
+            if quota_total == None:
+                quota_total = MAX_MEMORY_TOTAL
+            quota_single = owner_info.ram_quota_single
+            if quota_single == None:
+                quota_single = MAX_MEMORY_SINGLE
+        else:
+            quota_total = MAX_MEMORY_TOTAL
+            quota_single = MAX_MEMORY_SINGLE
+        return (quota_total, quota_single)
+    getQuotas = staticmethod(getQuotas)
