summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xextensions/kvm.check3
-rwxr-xr-xextensions/kvm.write9
2 files changed, 8 insertions, 4 deletions
diff --git a/extensions/kvm.check b/extensions/kvm.check
index 3c277156..84a343a5 100755
--- a/extensions/kvm.check
+++ b/extensions/kvm.check
@@ -17,7 +17,6 @@
import os
import re
-import subprocess
import urlparse
import writeexts
@@ -70,7 +69,7 @@ class KvmPlusSshCheckExtension(writeexts.WriteExtension):
try:
writeexts.ssh_runcmd(ssh_host,
['virsh', '--connect', 'qemu:///system', 'domstate', vm_name])
- except CalledProcessError as e:
+ except writeexts.ExtensionError as e:
pass
else:
raise writeexts.ExtensionError(
diff --git a/extensions/kvm.write b/extensions/kvm.write
index 2290725e..c7ed7b87 100755
--- a/extensions/kvm.write
+++ b/extensions/kvm.write
@@ -23,6 +23,7 @@ See file kvm.write.help for documentation
import os
import re
+import subprocess
import sys
import tempfile
import urlparse
@@ -81,10 +82,14 @@ class KvmPlusSshWriteExtension(writeexts.WriteExtension):
'sh', '-c', recv_hole, 'dummy-argv0', 'file', vm_path
]
- subprocess.check_call(
+ xfer_hole_proc = subprocess.Popen(
['python', xfer_hole_path, raw_disk],
+ stdout=subprocess.PIPE)
+ recv_hole_proc = subprocess.Popen(
['ssh', ssh_host] + map(writeexts.shell_quote, ssh_remote_cmd),
- stdout=None, stderr=None)
+ stdin=xfer_hole_proc.stdout)
+ xfer_hole_proc.stdout.close()
+ recv_hole_proc.communicate()
def create_libvirt_guest(self, ssh_host, vm_name, vm_path, autostart):
'''Create the libvirt virtual machine.'''