Fix get*Quotas
[invirt/packages/invirt-database.git] / python / database / owner.py
index 1a27c9b..ac8ecfd 100755 (executable)
@@ -1,4 +1,5 @@
 from invirt.database import record
+from invirt.database.models import session
 
 class Owner(record.Record):
     _f = {
@@ -17,21 +18,24 @@ class Owner(record.Record):
 
     @classmethod
     def getMemoryQuotas(cls, owner):
-        owner_info = cls.query().filter_by(owner_id=owner).first()
+        owner_info = cls.query().get(owner)
         if owner_info == None:
             owner_info = cls(owner_id=owner)
+            session.expunge(owner_info)
         return (owner_info.get('ram_quota_total'), owner_info.get('ram_quota_single'))
 
     @classmethod
     def getDiskQuotas(cls, owner):
-        owner_info = cls.query().filter_by(owner_id=owner).first()
+        owner_info = cls.query().get(owner)
         if owner_info == None:
             owner_info = cls(owner_id=owner)
+            session.expunge(owner_info)
         return (owner_info.get('disk_quota_total'), owner_info.get('disk_quota_single'))
 
     @classmethod
     def getVMQuotas(cls, owner):
-        owner_info = cls.query().filter_by(owner_id=owner).first()
+        owner_info = cls.query().get(owner)
         if owner_info == None:
             owner_info = cls(owner_id=owner)
+            session.expunge(owner_info)
         return (owner_info.get('vms_quota_total'), owner_info.get('vms_quota_active'))