#!/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: invirt-remote-listhost <machine>"
        return 2
    machine_name = argv[1]

    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 2

    print vms[machine_name]['host']
    return 0

if __name__ == '__main__':
    sys.exit(main(sys.argv))

# vim:et:sw=4:ts=4
