not worth defining an exception class for one invocation site
[invirt/packages/invirt-remote.git] / files / usr / sbin / sipb-xen-remote-listvms
index eaefffd..81722e9 100755 (executable)
@@ -1,14 +1,13 @@
-#!/usr/bin/env python2.5
+#!/usr/bin/python
 
 """
 Collates the results of listvms from multiple VM servers.  Part of the xvm
 suite.
 """
 
 
 """
 Collates the results of listvms from multiple VM servers.  Part of the xvm
 suite.
 """
 
-from itertools import chain
-from subprocess import CalledProcessError, PIPE, Popen
-from sys import argv, stdout
-from yaml import safe_dump, safe_load
+from subprocess import PIPE, Popen
+import sys
+import yaml
 
 ###
 
 
 ###
 
@@ -23,17 +22,19 @@ def main(argv):
     outputs = [p.communicate()[0] for p in pipes]
     for p in pipes:
         if p.returncode != 0:
     outputs = [p.communicate()[0] for p in pipes]
     for p in pipes:
         if p.returncode != 0:
-            raise CalledProcessError(p.returncode, cmd)
-    results = [safe_load(o) for o in outputs]
+            raise RuntimeError("Command '%s' returned non-zero exit status %d"
+                               % ('remctl', p.returncode)) 
+    results = [yaml.load(o, yaml.CSafeLoader) for o in outputs]
     results = filter(lambda x: x is not None, results)
 
     # Merge the results and print.
     merged = {}
     for result in results:
         merged.update(result)
     results = filter(lambda x: x is not None, results)
 
     # Merge the results and print.
     merged = {}
     for result in results:
         merged.update(result)
-    print safe_dump(merged, default_flow_style=False)
+
+    print yaml.dump(merged, Dumper=yaml.CSafeDumper, default_flow_style=False)
 
 if __name__ == '__main__':
 
 if __name__ == '__main__':
-    main(argv)
+    main(sys.argv)
 
 
-# vim:et:sw=2:ts=4
+# vim:et:sw=4:ts=4