From a710ad381fee21c84aa9a338400dfb298139989c Mon Sep 17 00:00:00 2001
From: Quentin Smith <quentin@mit.edu>
Date: Sat, 19 Mar 2011 17:26:21 -0400
Subject: [PATCH] Handle remctl results that are larger than a single pipe
 buffer

---
 debian/changelog        |    7 +++++++
 python/invirt/remctl.py |   12 ++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 5030879..45acfb1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+invirt-base (0.0.35) unstable; urgency=low
+
+  * Patch from Austin Chu <eefi@mit.edu> to handle remctl results that are
+    larger than a single pipe buffer.
+
+ -- Quentin Smith <quentin@mit.edu>  Sat, 19 Mar 2011 17:23:51 -0400
+
 invirt-base (0.0.34) unstable; urgency=low
 
   * Depend on pkg_resources
diff --git a/python/invirt/remctl.py b/python/invirt/remctl.py
index d530d7a..956ca2d 100644
--- a/python/invirt/remctl.py
+++ b/python/invirt/remctl.py
@@ -35,11 +35,11 @@ def remctl(host, *args, **kws):
                          + list(args),
                          stdout=subprocess.PIPE,
                          stderr=subprocess.PIPE)
-    v = p.wait()
+    stdout, stderr = 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 stdout, stderr
+    if p.returncode:
+        print >> sys.stderr, 'Error', p.returncode, 'on remctl', args, ':'
+        print >> sys.stderr, stderr
         raise CodeError('ERROR on remctl')
-    return p.stdout.read()
+    return stdout
-- 
1.7.9.5