Yay yasb
[invirt/packages/invirt-base.git] / scripts / invirt-setquotas
index af33eec..ceae1bf 100755 (executable)
@@ -7,110 +7,100 @@ that owner.  Setting a parameter to -1 restores the default.
 
 Examples:
 
 
 Examples:
 
-    invirt-setquota joeuser -mt 512 -ms None
+    invirt-setquota joeuser -mt 512 -ms -1
 """
 
 from invirt.database import *
 from sys import argv, exit, stderr, stdout
 from optparse import OptionParser
 
 """
 
 from invirt.database import *
 from sys import argv, exit, stderr, stdout
 from optparse import OptionParser
 
-class invirt_exception(Exception): pass
-
 def main(argv):
 def main(argv):
-    try:
-        parser = OptionParser(usage = '%prog owner [options]',
-                description = __doc__.strip().split('\n\n')[0])
-        parser.add_option('-m', '--mem-total',
-                type = 'int',
-                dest = 'memtotal',
-                help = 'set total concurrent RAM quota')
-        parser.add_option('-n', '--mem-single',
-                type = 'int',
-                dest = 'memsingle',
-                help = 'set single VM RAM quota')
-        parser.add_option('-d', '--disk-total',
-                type = 'int',
-                dest = 'disktotal',
-                help = 'set total disk quota')
-        parser.add_option('-e', '--disk-single',
-                type = 'int',
-                dest = 'disksingle',
-                help = 'set single VM disk quota')
-        parser.add_option('-v', '--vms-total',
-                type = 'int',
-                dest = 'vmstotal',
-                help = 'set total VM quota')
-        parser.add_option('-w', '--vms-active',
-                type = 'int',
-                dest = 'vmsactive',
-                help = 'set active VM quota')
-        opts, args = parser.parse_args()
-
-        print opts
-        if len(args) != 1:
-            raise invirt_exception(__doc__.strip())
-        owner = args[0]
-        connect()
-        session.begin()
-        
-        x = Owner.query().filter_by(owner_id=owner).first()
-
-        edited = False
-        if opts.memtotal != None:
-            total = int(opts.memtotal)
-            if total == -1:
-                x.ram_quota_total = None
-            else:
-                x.ram_quota_total = total
-            edited = True
-
-        if opts.memsingle != None:
-            single = int(opts.memsingle)
-            if single == -1:
-                x.ram_quota_single = None
-            else:
-                x.ram_quota_single = single
-            edited = True
-
-        if opts.disktotal != None:
-            total = int(opts.disktotal)
-            if total == -1:
-                x.disk_quota_total = None
-            else:
-                x.disk_quota_total = total
-            edited = True
-
-        if opts.disksingle != None:
-            single = int(opts.disksingle)
-            if single == -1:
-                x.disk_quota_single = None
-            else:
-                x.disk_quota_single = single
-            edited = True
-
-        if opts.vmstotal != None:
-            total = int(opts.vmstotal)
-            if total == -1:
-                x.vms_quota_total = None
-            else:
-                x.vms_quota_total = total
-            edited = True
-
-        if opts.vmsactive != None:
-            active = int(opts.vmsactive)
-            if active == -1:
-                x.vms_quota_active = None
-            else:
-                x.vms_quota_active = active
-            edited = True
-
-        if edited:
-            session.commit()
-        print str(x)
-
-    except invirt_exception, ex:
-        print >> stderr, ex
+    parser = OptionParser(usage = '%prog owner [options]',
+            description = __doc__.strip().split('\n\n')[0])
+    parser.add_option('-m', '--mem-total',
+            type = 'int',
+            dest = 'memtotal',
+            help = 'set total concurrent RAM quota')
+    parser.add_option('-n', '--mem-single',
+            type = 'int',
+            dest = 'memsingle',
+            help = 'set single VM RAM quota')
+    parser.add_option('-d', '--disk-total',
+            type = 'int',
+            dest = 'disktotal',
+            help = 'set total disk quota')
+    parser.add_option('-e', '--disk-single',
+            type = 'int',
+            dest = 'disksingle',
+            help = 'set single VM disk quota')
+    parser.add_option('-v', '--vms-total',
+            type = 'int',
+            dest = 'vmstotal',
+            help = 'set total VM quota')
+    parser.add_option('-w', '--vms-active',
+            type = 'int',
+            dest = 'vmsactive',
+            help = 'set active VM quota')
+    opts, args = parser.parse_args()
+
+    if len(args) != 1:
+        print >> stderr, __doc__.strip()
         return 1
         return 1
+    owner = args[0]
+    connect()
+    session.begin()
+    
+    x = Owner.query().filter_by(owner_id=owner).first()
+    if x == None:
+        x = Owner(owner_id=owner, ram_quota_total=None, ram_quota_single=None,
+                  disk_quota_total=None, disk_quota_single=None,
+                  vms_quota_total=None, vms_quota_active=None)
+
+    if opts.memtotal != None:
+        total = int(opts.memtotal)
+        if total == -1:
+            x.ram_quota_total = None
+        else:
+            x.ram_quota_total = total
+
+    if opts.memsingle != None:
+        single = int(opts.memsingle)
+        if single == -1:
+            x.ram_quota_single = None
+        else:
+            x.ram_quota_single = single
+
+    if opts.disktotal != None:
+        total = int(opts.disktotal)
+        if total == -1:
+            x.disk_quota_total = None
+        else:
+            x.disk_quota_total = total
+
+    if opts.disksingle != None:
+        single = int(opts.disksingle)
+        if single == -1:
+            x.disk_quota_single = None
+        else:
+            x.disk_quota_single = single
+
+    if opts.vmstotal != None:
+        total = int(opts.vmstotal)
+        if total == -1:
+            x.vms_quota_total = None
+        else:
+            x.vms_quota_total = total
+
+    if opts.vmsactive != None:
+        active = int(opts.vmsactive)
+        if active == -1:
+            x.vms_quota_active = None
+        else:
+            x.vms_quota_active = active
+
+    session.commit()
+    print str(x)
+    return 0
 
 if __name__ == '__main__':
     exit(main(argv))
 
 if __name__ == '__main__':
     exit(main(argv))