Changed python remctl to use Popen.communitate() rather then p.wait()
authorPaul D Weaver <pweaver@mit.edu>
Fri, 18 Mar 2011 21:41:06 +0000 (17:41 -0400)
committerPaul D Weaver <pweaver@mit.edu>
Fri, 18 Mar 2011 21:41:06 +0000 (17:41 -0400)
python/invirt/remctl.py

index d530d7a..04cbb58 100644 (file)
@@ -35,11 +35,11 @@ def remctl(host, *args, **kws):
                          + list(args),
                          stdout=subprocess.PIPE,
                          stderr=subprocess.PIPE)
-    v = p.wait()
+    (stdoutdata,stderrordata) = p.communicate()
     if kws.get('err'):
-        return p.stdout.read(), p.stderr.read()
-    if v:
-        print >> sys.stderr, 'Error', v, 'on remctl', args, ':'
-        print >> sys.stderr, p.stderr.read()
+        return stdoutdata,stderrordata
+    if p.returncode:
+        print >> sys.stderr, 'Error', p.returncode, 'on remctl', args, ':'
+        print >> sys.stderr, stderrordata
         raise CodeError('ERROR on remctl')
-    return p.stdout.read()
+    return stdoutdata