+invirt-base (0.0.21) unstable; urgency=low
+
+ * added invirt-setquota script (self-documenting)
+
+ -- Peter A. Iannucci <iannucci@mit.edu> Mon, 16 Feb 2009 23:48:25 -0500
+
invirt-base (0.0.20) unstable; urgency=low
* depend on remctl-client
--- /dev/null
+#!/usr/bin/env python
+
+"""
+invirt-setquota allows an administrator to set the RAM quotas for an owner.
+Invoking with only an owner name returns the current quotas for that owner.
+Setting a parameter to -1 restores the default.
+
+Examples:
+
+ invirt-setquota joeuser -t 512 -s None
+"""
+
+from invirt.database import *
+from sys import argv, exit, stderr, stdout
+from optparse import OptionParser
+
+class invirt_exception(Exception): pass
+
+def main(argv):
+ try:
+ parser = OptionParser(usage = '%prog owner [options]',
+ description = __doc__.strip().split('\n\n')[0])
+ parser.add_option('-t', '--total',
+ type = 'int',
+ dest = 'total',
+ help = 'set the total concurrent RAM quota')
+ parser.add_option('-s', '--single',
+ type = 'int',
+ dest = 'single',
+ help = 'set the single VM RAM quota')
+ opts, args = parser.parse_args()
+
+ 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.total != None:
+ total = int(opts.total)
+ if total == -1:
+ x.ram_quota_total = None
+ else:
+ x.ram_quota_total = total
+ edited = True
+
+ if opts.single != None:
+ single = int(opts.single)
+ if single == -1:
+ x.ram_quota_single = None
+ else:
+ x.ram_quota_single = single
+ edited = True
+
+ if edited:
+ session.commit()
+ print str(x)
+
+ except invirt_exception, ex:
+ print >> stderr, ex
+ return 1
+
+if __name__ == '__main__':
+ exit(main(argv))