X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/1b6f1212b2fb8d7577f48bbd01a1c7f601eec57b..c7a4b1ed77b6091d7a9bf27c59e098bdff84474e:/files/usr/sbin/sipb-xen-remote-create diff --git a/files/usr/sbin/sipb-xen-remote-create b/files/usr/sbin/sipb-xen-remote-create index 32e875a..f957a59 100755 --- a/files/usr/sbin/sipb-xen-remote-create +++ b/files/usr/sbin/sipb-xen-remote-create @@ -20,11 +20,22 @@ def choose_host(): return max((int(o['free_memory']), s) for (s, o) in results)[1] def main(argv): - if len(argv) < 2: - print >> sys.stderr, "usage: sipb-xen-remote-create []" + if len(argv) < 3: + print >> sys.stderr, "usage: sipb-xen-remote-create []" return 2 - machine_name = argv[1] - args = argv[2:] + operation = argv[1] + machine_name = argv[2] + args = argv[3:] + + if operation == 'install': + options = dict(arg.split('=', 1) for arg in args) + valid_keys = set(('mirror', 'dist', 'arch', 'imagesize', 'noinstall')) + if not set(options.keys()).issubset(valid_keys): + print >> sys.stderr, "Invalid argument. Use the help command to see valid arguments to install" + return 1 + if any(' ' in val for val in options.values()): + print >> sys.stderr, "Arguments to the autoinstaller cannot contain spaces" + return 1 p = Popen(['/usr/sbin/sipb-xen-remote-proxy-web', 'listvms'], stdout=PIPE) output = p.communicate()[0] @@ -43,7 +54,7 @@ def main(argv): print 'Creating on host %s...' % host sys.stdout.flush() return call(['remctl', host, 'remote', 'control', - machine_name, 'create'] + args) + machine_name, operation] + args) if __name__ == '__main__': sys.exit(main(sys.argv))