source: trunk/packages/sipb-xen-remote-server/files/usr/sbin/sipb-xen-remote-listhost @ 944

Last change on this file since 944 was 661, checked in by price, 16 years ago

remctl .. control .. listhost: say where a VM is running

  • Property svn:executable set to *
File size: 859 bytes
Line 
1#!/usr/bin/python
2"""
3Say what host a running VM is on.
4"""
5
6from subprocess import PIPE, Popen, call
7import sys
8import yaml
9
10def main(argv):
11    if len(argv) < 2:
12        print >>sys.stderr, "usage: sipb-xen-remote-listhost <machine>"
13        return 2
14    machine_name = argv[1]
15
16    p = Popen(['/usr/sbin/sipb-xen-remote-proxy-web', 'listvms'], stdout=PIPE)
17    output = p.communicate()[0]
18    if p.returncode != 0:
19        raise RuntimeError("Command '%s' returned non-zero exit status %d"
20                           % ('sipb-xen-remote-proxy-web', p.returncode)) 
21    vms = yaml.load(output, yaml.CSafeLoader)
22
23    if machine_name not in vms:
24        print >>sys.stderr, "machine '%s' is not on" % machine_name
25        return 2
26
27    print vms[machine_name]['host']
28    return 0
29
30if __name__ == '__main__':
31    sys.exit(main(sys.argv))
32
33# vim:et:sw=4:ts=4
Note: See TracBrowser for help on using the repository browser.