+sipb-xen-remote-server (0.9.2) unstable; urgency=low
+
+ * Expose an interface to the autoinstaller over remctl
+ * Validate options to be passed to the autoinstaller on the remctl
+ server
+
+ -- Evan Broder <broder@mit.edu> Thu, 09 Oct 2008 02:06:00 -0400
+
sipb-xen-remote-server (0.9.1) unstable; urgency=low
* Fix a bug in the database handling code
('shutdown', 'shut down your VM, softly if paravm (with xm shutdown)'),
('create', 'start up your VM (with xm create)'),
('reboot', 'reboot your VM (with xm destroy and xm create)'),
- #also install
+ ('install', 'autoinstall your VM (takes a series of key=value pairs; \n\t\tvalid arguments include mirror, dist, arch, imagesize,\n\t\tand noinstall)'),
#also CD images on create/reboot
]
helpdict = dict(help)
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 <machine> [<other args...>]"
+ if len(argv) < 3:
+ print >> sys.stderr, "usage: sipb-xen-remote-create <operation> <machine> [<other args...>]"
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]
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))
case "$TYPE/$SERVICE" in
web/listvms )
sipb-xen-remote-listvms "$@" ;;
- control/create )
- sipb-xen-remote-create "$MACHINE" "$@" ;;
+ control/create|control/install )
+ sipb-xen-remote-create "$SERVICE" "$MACHINE" "$@" ;;
control/listhost )
sipb-xen-remote-listhost "$MACHINE" "$@" ;;
control/* )