Added all the other quotas for great win.
authorPeter Iannucci <iannucci@mit.edu>
Tue, 17 Feb 2009 06:54:26 +0000 (01:54 -0500)
committerPeter Iannucci <iannucci@mit.edu>
Tue, 17 Feb 2009 06:54:26 +0000 (01:54 -0500)
svn path=/trunk/packages/invirt-database/; revision=2134

debian/changelog
python/database/models.py
python/database/owner.py

index 24d4a52..cdcccec 100644 (file)
@@ -1,9 +1,9 @@
 invirt-database (0.1.3) unstable; urgency=low
 
-  * Added owner table with ram quotas.
+  * Added owner table to database with ram, disk, and VM quotas
   * Refactored Owner class into separate sourcefile
 
- -- Peter A. Iannucci <iannucci@mit.edu>  Mon, 16 Feb 2009 23:49:39 -0500
+ -- Peter A. Iannucci <iannucci@mit.edu>  Tue, 17 Feb 2009 01:31:53 -0500
 
 invirt-database (0.1.2) unstable; urgency=low
 
index 2944a1f..798934a 100644 (file)
@@ -87,7 +87,11 @@ autoinstalls_table = Table('autoinstalls', meta,
 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))
+       Column('ram_quota_single', Integer, nullable=True),
+       Column('disk_quota_total', Integer, nullable=True),
+       Column('disk_quota_single', Integer, nullable=True),
+       Column('vms_quota_total', Integer, nullable=True),
+       Column('vms_quota_active', Integer, nullable=True))
 
 machine_access_table = Table('machine_access', meta,
        Column('machine_id', Integer, ForeignKey('machines.machine_id', ondelete='CASCADE'), nullable=False, index=True),
index 59080bc..b40dea5 100755 (executable)
@@ -1,9 +1,16 @@
 MAX_MEMORY_TOTAL = 512
 MAX_MEMORY_SINGLE = 512
+MAX_DISK_TOTAL = 50
+MAX_DISK_SINGLE = 50
+MAX_VMS_TOTAL = 10
+MAX_VMS_ACTIVE = 4
+
 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):
+        return """<Owner %s: ram_quota_total=%s MB ram_quota_single=%s MB
+disk_quota_total=%s MB disk_quota_single=%s MB
+vms_quota_total=%s vms_quota_active=%s >""" % (self.owner_id, self.ram_quota_total, self.ram_quota_single, self.disk_quota_total, self.disk_quota_single, self.vms_quota_total, self.vms_quota_active)
+    def getMemoryQuotas(owner):
         owner_info = Owner.query().filter_by(owner_id=owner).first()
         if owner_info != None:
             quota_total = owner_info.ram_quota_total
@@ -16,4 +23,32 @@ class Owner(object):
             quota_total = MAX_MEMORY_TOTAL
             quota_single = MAX_MEMORY_SINGLE
         return (quota_total, quota_single)
-    getQuotas = staticmethod(getQuotas)
+    getMemoryQuotas = staticmethod(getMemoryQuotas)
+    def getDiskQuotas(owner):
+        owner_info = Owner.query().filter_by(owner_id=owner).first()
+        if owner_info != None:
+            quota_total = owner_info.disk_quota_total
+            if quota_total == None:
+                quota_total = MAX_DISK_TOTAL
+            quota_single = owner_info.disk_quota_single
+            if quota_single == None:
+                quota_single = MAX_DISK_SINGLE
+        else:
+            quota_total = MAX_DISK_TOTAL
+            quota_single = MAX_DISK_SINGLE
+        return (quota_total, quota_single)
+    getDiskQuotas = staticmethod(getDiskQuotas)
+    def getVMQuotas(owner):
+        owner_info = Owner.query().filter_by(owner_id=owner).first()
+        if owner_info != None:
+            quota_total = owner_info.vms_quota_total
+            if quota_total == None:
+                quota_total = MAX_VMS_TOTAL
+            quota_active = owner_info.vms_quota_active
+            if quota_active == None:
+                quota_active = MAX_VMS_ACTIVE
+        else:
+            quota_total = MAX_VMS_TOTAL
+            quota_single = MAX_VMS_ACTIVE
+        return (quota_total, quota_active)
+    getVMQuotas = staticmethod(getVMQuotas)