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:
Keir Fraser committed 2009-06-03 11:10:07 +01:00
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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.