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
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),
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
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)