X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/c2ef438b4260463f5294e5236d9b66bb9f4f5592..ccdd1009d00397d0f81fa9a95aa96faf448b9e94:/server/usr/sbin/invirt-remote-listvms diff --git a/server/usr/sbin/invirt-remote-listvms b/server/usr/sbin/invirt-remote-listvms new file mode 100755 index 0000000..8c25d09 --- /dev/null +++ b/server/usr/sbin/invirt-remote-listvms @@ -0,0 +1,28 @@ +#!/usr/bin/python + +""" +Collates the results of listvms from multiple VM servers. Part of the xvm +suite. +""" + +from invirt.remote import bcast +import sys +import yaml + +def main(argv): + # Query each of the hosts. + results = filter(lambda (_, x): x is not None, bcast('listvms')) + + # Merge the results and print. + merged = {} + for server, result in results: + for data in result.itervalues(): + data['host'] = server + merged.update(result) + + print yaml.dump(merged, Dumper=yaml.CSafeDumper, default_flow_style=False) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) + +# vim:et:sw=4:ts=4