X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/61f07c8cb5534cccfc387da5343871a9fa3e526b..d39ddb212dc47091ff530b655d769e869f7ca108:/files/usr/sbin/sipb-xen-remote-listhost?ds=sidebyside diff --git a/files/usr/sbin/sipb-xen-remote-listhost b/files/usr/sbin/sipb-xen-remote-listhost new file mode 100755 index 0000000..fa3d43b --- /dev/null +++ b/files/usr/sbin/sipb-xen-remote-listhost @@ -0,0 +1,33 @@ +#!/usr/bin/python +""" +Say what host a running VM is on. +""" + +from subprocess import PIPE, Popen, call +import sys +import yaml + +def main(argv): + if len(argv) < 2: + print >>sys.stderr, "usage: sipb-xen-remote-listhost " + return 2 + machine_name = argv[1] + + p = Popen(['/usr/sbin/sipb-xen-remote-proxy-web', 'listvms'], stdout=PIPE) + output = p.communicate()[0] + if p.returncode != 0: + raise RuntimeError("Command '%s' returned non-zero exit status %d" + % ('sipb-xen-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 2 + + print vms[machine_name]['host'] + return 0 + +if __name__ == '__main__': + sys.exit(main(sys.argv)) + +# vim:et:sw=4:ts=4