mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
blktap2: human readable output for tapdisk2 creation problems
This patch fixes the "file object has no attribute find" failure we've been seeing when starting blktap2 devices and adds more meaningful error output to conditions where the tapdisk2 process is unable to create a blktap2 device. Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
This commit is contained in:
1 parent
8323478d5b
commit
09c8ee7eac
1 file changed
+11
-2
@@ -32,7 +32,7 @@ def doexec(args, inputtext=None):
|
||||
proc.tochild.write(inputtext)
|
||||
stdout = proc.fromchild
|
||||
stderr = proc.childerr
|
||||
rc = proc.poll()
|
||||
rc = proc.wait()
|
||||
return (rc,stdout,stderr)
|
||||
|
||||
def parseDeviceString(device):
|
||||
@@ -131,7 +131,16 @@ class BlktapController(BlkifController):
|
||||
cmd = [ TAPDISK_BINARY, '-n', '%s:%s' % (params, file) ]
|
||||
(rc,stdout,stderr) = doexec(cmd)
|
||||
|
||||
minor, device, control = parseDeviceString(stdout)
|
||||
if rc != 0:
|
||||
err = stderr.read();
|
||||
out = stdout.read();
|
||||
stdout.close();
|
||||
stderr.close();
|
||||
raise Exception, 'Failed to create device.\n stdout: %s\n stderr: %s\nCheck that target \"%s\" exists and that blktap2 driver installed in dom0.' % (out.rstrip(), err.rstrip(), file);
|
||||
|
||||
minor, device, control = parseDeviceString(stdout.readline())
|
||||
stdout.close();
|
||||
stderr.close();
|
||||
|
||||
#modify the configuration to attach as a vbd, now that the
|
||||
#device is configured. Then continue to create the device
|
||||
|
||||