From ce070d11f7abbf8c7651274d13b0295f2fa38ae5 Mon Sep 17 00:00:00 2001 From: flyflypeng Date: Fri, 24 Aug 2018 22:56:27 +0800 Subject: [PATCH] govmm: modify govmm to be compatible with qemu 2.8 govmm has ExecuteBlockdevAdd() function and ExecuteBlockdevDel() function doesn't compatible with qemu 2.8,because blockdev-add and x-blockdev-del usages are different between qemu 2.7 and qemu 2.8 Follow the qemu 2.7 and qemu 2.8 qmp-commands.txt documents to modify ExecuteBlockdevAdd() function and ExecuteBlockdevDel() function to be compatible with qemu 2.8 Signed-off-by: flyflypeng --- qemu/qmp.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/qemu/qmp.go b/qemu/qmp.go index 3f468d8817..58b8924fda 100644 --- a/qemu/qmp.go +++ b/qemu/qmp.go @@ -657,7 +657,7 @@ func (q *QMP) ExecuteBlockdevAdd(ctx context.Context, device, blockdevID string) }, } - if q.version.Major > 2 || (q.version.Major == 2 && q.version.Minor >= 9) { + if q.version.Major > 2 || (q.version.Major == 2 && q.version.Minor >= 8) { blockdevArgs["node-name"] = blockdevID args = blockdevArgs } else { @@ -746,7 +746,12 @@ func (q *QMP) ExecuteBlockdevDel(ctx context.Context, blockdevID string) error { return q.executeCommand(ctx, "blockdev-del", args, nil) } - args["id"] = blockdevID + if q.version.Major == 2 && q.version.Minor == 8 { + args["node-name"] = blockdevID + } else { + args["id"] = blockdevID + } + return q.executeCommand(ctx, "x-blockdev-del", args, nil) }