+++ /dev/null
-#!/usr/bin/python
-"""
-Sends remctl commands about a running VM to the host it's running on.
-"""
-
-from subprocess import PIPE, Popen, call
-import sys
-import yaml
-
-def main(argv):
- if len(argv) < 3:
- print >>sys.stderr, "usage: invirt-remote-control <machine> <command>"
- return 2
- machine_name = argv[1]
- command = argv[2]
-
- p = Popen(['/usr/sbin/invirt-remote-proxy-web', 'listvms'], stdout=PIPE)
- output = p.communicate()[0]
- if p.returncode != 0:
- raise RuntimeError("Command '%s' returned non-zero exit status %d"
- % ('invirt-remote-proxy-web', p.returncode))
- vms = yaml.load(output, yaml.CSafeLoader)
-
- if machine_name not in vms:
- print >>sys.stderr, "machine '%s' is not on" % machine_name
- return 1
- host = vms[machine_name]['host']
-
- p = Popen(['remctl', host, 'remote', 'control'] + argv[1:],
- stdout=PIPE, stderr=PIPE)
- (out, err) = p.communicate()
- if p.returncode == 1:
- print >>sys.stderr, "machine '%s' is not on" % machine_name
- return 1
- elif p.returncode == 34:
- print >>sys.stderr, "ERROR: invalid command"
- return 34
- sys.stderr.write(err)
- sys.stdout.write(out)
- return p.returncode
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
-
-# vim:et:sw=4:ts=4