block: Remove "options" indirection from blockdev-add
Now that QAPI supports boxed types, we can have unions at the top level of a command, so let's put our real options directly there for blockdev-add instead of having a single "options" dict that contains the real arguments. blockdev-add is still experimental and we already made substantial changes to the API recently, so we're free to make changes like this one, too. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
170f4b2e5c
commit
0153d2f50b
@ -1090,11 +1090,11 @@ Arguments:
|
||||
Example:
|
||||
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": { "options": { "driver": "qcow2",
|
||||
"node-name": "node1534",
|
||||
"file": { "driver": "file",
|
||||
"filename": "hd1.qcow2" },
|
||||
"backing": "" } } }
|
||||
"arguments": { "driver": "qcow2",
|
||||
"node-name": "node1534",
|
||||
"file": { "driver": "file",
|
||||
"filename": "hd1.qcow2" },
|
||||
"backing": "" } }
|
||||
|
||||
<- { "return": {} }
|
||||
|
||||
@ -3130,41 +3130,37 @@ This command is still a work in progress. It doesn't support all
|
||||
block drivers among other things. Stay away from it unless you want
|
||||
to help with its development.
|
||||
|
||||
Arguments:
|
||||
|
||||
- "options": block driver options
|
||||
For the arguments, see the QAPI schema documentation of BlockdevOptions.
|
||||
|
||||
Example (1):
|
||||
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": { "options" : { "driver": "qcow2",
|
||||
"file": { "driver": "file",
|
||||
"filename": "test.qcow2" } } } }
|
||||
"arguments": { "driver": "qcow2",
|
||||
"file": { "driver": "file",
|
||||
"filename": "test.qcow2" } } }
|
||||
<- { "return": {} }
|
||||
|
||||
Example (2):
|
||||
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "qcow2",
|
||||
"node-name": "my_disk",
|
||||
"discard": "unmap",
|
||||
"cache": {
|
||||
"direct": true,
|
||||
"writeback": true
|
||||
},
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "/tmp/test.qcow2"
|
||||
},
|
||||
"backing": {
|
||||
"driver": "raw",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "/dev/fdset/4"
|
||||
}
|
||||
}
|
||||
"driver": "qcow2",
|
||||
"node-name": "my_disk",
|
||||
"discard": "unmap",
|
||||
"cache": {
|
||||
"direct": true,
|
||||
"writeback": true
|
||||
},
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "/tmp/test.qcow2"
|
||||
},
|
||||
"backing": {
|
||||
"driver": "raw",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "/dev/fdset/4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3191,13 +3187,11 @@ Example:
|
||||
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "qcow2",
|
||||
"node-name": "node0",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "test.qcow2"
|
||||
}
|
||||
"driver": "qcow2",
|
||||
"node-name": "node0",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "test.qcow2"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3342,10 +3336,10 @@ Arguments:
|
||||
Example:
|
||||
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": { "options": { "node-name": "node0",
|
||||
"driver": "raw",
|
||||
"file": { "driver": "file",
|
||||
"filename": "fedora.iso" } } } }
|
||||
"arguments": { { "node-name": "node0",
|
||||
"driver": "raw",
|
||||
"file": { "driver": "file",
|
||||
"filename": "fedora.iso" } } }
|
||||
|
||||
<- { "return": {} }
|
||||
|
||||
@ -3383,10 +3377,10 @@ Example:
|
||||
|
||||
Add a new node to a quorum
|
||||
-> { "execute": "blockdev-add",
|
||||
"arguments": { "options": { "driver": "raw",
|
||||
"node-name": "new_node",
|
||||
"file": { "driver": "file",
|
||||
"filename": "test.raw" } } } }
|
||||
"arguments": { "driver": "raw",
|
||||
"node-name": "new_node",
|
||||
"file": { "driver": "file",
|
||||
"filename": "test.raw" } } }
|
||||
<- { "return": {} }
|
||||
-> { "execute": "x-blockdev-change",
|
||||
"arguments": { "parent": "disk1",
|
||||
|
@ -2312,11 +2312,11 @@
|
||||
# block drivers among other things. Stay away from it unless you want
|
||||
# to help with its development.
|
||||
#
|
||||
# @options: block device options for the new device
|
||||
# For the arguments, see the documentation of BlockdevOptions.
|
||||
#
|
||||
# Since: 1.7
|
||||
##
|
||||
{ 'command': 'blockdev-add', 'data': { 'options': 'BlockdevOptions' } }
|
||||
{ 'command': 'blockdev-add', 'data': 'BlockdevOptions', 'boxed': true }
|
||||
|
||||
##
|
||||
# @x-blockdev-del:
|
||||
|
@ -194,10 +194,9 @@ class TestSingleBlockdev(TestSingleDrive):
|
||||
def setUp(self):
|
||||
TestSingleDrive.setUp(self)
|
||||
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % backing_img, target_img)
|
||||
args = {'options':
|
||||
{'driver': iotests.imgfmt,
|
||||
'node-name': self.qmp_target,
|
||||
'file': { 'filename': target_img, 'driver': 'file' } } }
|
||||
args = {'driver': iotests.imgfmt,
|
||||
'node-name': self.qmp_target,
|
||||
'file': { 'filename': target_img, 'driver': 'file' } }
|
||||
result = self.vm.qmp("blockdev-add", **args)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
@ -782,8 +781,8 @@ class TestRepairQuorum(iotests.QMPTestCase):
|
||||
self.vm.launch()
|
||||
|
||||
#assemble the quorum block device from the individual files
|
||||
args = { "options" : { "driver": "quorum", "node-name": "quorum0",
|
||||
"vote-threshold": 2, "children": [ "img0", "img1", "img2" ] } }
|
||||
args = { "driver": "quorum", "node-name": "quorum0",
|
||||
"vote-threshold": 2, "children": [ "img0", "img1", "img2" ] }
|
||||
if self.has_quorum():
|
||||
result = self.vm.qmp("blockdev-add", **args)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
@ -119,13 +119,11 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -107,25 +107,21 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "drive0-debug",
|
||||
"file": {
|
||||
"driver": "blkdebug",
|
||||
"image": "drive0",
|
||||
"inject-error": [{
|
||||
"event": "l2_load"
|
||||
}]
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "drive0-debug",
|
||||
"file": {
|
||||
"driver": "blkdebug",
|
||||
"image": "drive0",
|
||||
"inject-error": [{
|
||||
"event": "l2_load"
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -145,26 +141,22 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "drive0",
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"node-name": "drive0",
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "blkverify",
|
||||
"node-name": "drive0-verify",
|
||||
"test": "drive0",
|
||||
"raw": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG.base"
|
||||
}
|
||||
"driver": "blkverify",
|
||||
"node-name": "drive0-verify",
|
||||
"test": "drive0",
|
||||
"raw": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG.base"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -184,27 +176,23 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG.base"
|
||||
}
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG.base"
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "blkverify",
|
||||
"node-name": "drive0-verify",
|
||||
"test": {
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
},
|
||||
"raw": "drive0"
|
||||
}
|
||||
"driver": "blkverify",
|
||||
"node-name": "drive0-verify",
|
||||
"test": {
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
},
|
||||
"raw": "drive0"
|
||||
}
|
||||
}
|
||||
{ "execute": "human-monitor-command",
|
||||
@ -223,30 +211,26 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"node-name": "drive0",
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "drive0-debug",
|
||||
"file": {
|
||||
"driver": "blkdebug",
|
||||
"image": "drive0",
|
||||
"inject-error": [{
|
||||
"event": "read_aio",
|
||||
"state": 42
|
||||
}],
|
||||
"set-state": [{
|
||||
"event": "write_aio",
|
||||
"new_state": 42
|
||||
}]
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "drive0-debug",
|
||||
"file": {
|
||||
"driver": "blkdebug",
|
||||
"image": "drive0",
|
||||
"inject-error": [{
|
||||
"event": "read_aio",
|
||||
"state": 42
|
||||
}],
|
||||
"set-state": [{
|
||||
"event": "write_aio",
|
||||
"new_state": 42
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,40 +105,36 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "drive2",
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/2.raw"
|
||||
}
|
||||
"node-name": "drive2",
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/2.raw"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "quorum",
|
||||
"node-name": "drive0-quorum",
|
||||
"vote-threshold": 2,
|
||||
"children": [
|
||||
{
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/1.raw"
|
||||
}
|
||||
},
|
||||
"drive2",
|
||||
{
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/3.raw"
|
||||
}
|
||||
"driver": "quorum",
|
||||
"node-name": "drive0-quorum",
|
||||
"vote-threshold": 2,
|
||||
"children": [
|
||||
{
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/1.raw"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"drive2",
|
||||
{
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_DIR/3.raw"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
{ "execute": "human-monitor-command",
|
||||
|
@ -100,11 +100,10 @@ function add_snapshot_image()
|
||||
_make_test_img -b "${base_image}" "$size"
|
||||
mv "${TEST_IMG}" "${snapshot_file}"
|
||||
cmd="{ 'execute': 'blockdev-add', 'arguments':
|
||||
{ 'options':
|
||||
{ 'driver': 'qcow2', 'node-name': 'snap_${1}', ${extra_params}
|
||||
'file':
|
||||
{ 'driver': 'file', 'filename': '${snapshot_file}',
|
||||
'node-name': 'file_${1}' } } } }"
|
||||
{ 'driver': 'qcow2', 'node-name': 'snap_${1}', ${extra_params}
|
||||
'file':
|
||||
{ 'driver': 'file', 'filename': '${snapshot_file}',
|
||||
'node-name': 'file_${1}' } } }"
|
||||
_send_qemu_cmd $h "${cmd}" "return"
|
||||
}
|
||||
|
||||
|
@ -61,12 +61,10 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -81,25 +79,21 @@ run_qemu -drive driver=$IMGFMT,id=disk,node-name=test-node,file="$TEST_IMG" <<EO
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "test-node",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "test-node",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -114,14 +108,12 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG",
|
||||
"aio": "native"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG",
|
||||
"aio": "native"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -137,13 +129,11 @@ run_qemu -S <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -154,13 +144,11 @@ run_qemu <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
"driver": "$IMGFMT",
|
||||
"node-name": "disk",
|
||||
"file": {
|
||||
"driver": "file",
|
||||
"filename": "$TEST_IMG"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -176,9 +164,7 @@ run_qemu -S <<EOF
|
||||
{ "execute": "qmp_capabilities" }
|
||||
{ "execute": "blockdev-add",
|
||||
"arguments": {
|
||||
"options": {
|
||||
"node-name": "disk"
|
||||
}
|
||||
"node-name": "disk"
|
||||
}
|
||||
}
|
||||
{ "execute": "quit" }
|
||||
|
@ -52,16 +52,16 @@ _send_qemu_cmd $QEMU_HANDLE \
|
||||
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'blockdev-add',
|
||||
'arguments': { 'options': { 'node-name': 'protocol',
|
||||
'driver': 'file',
|
||||
'filename': '$TEST_IMG' } } }" \
|
||||
'arguments': { 'node-name': 'protocol',
|
||||
'driver': 'file',
|
||||
'filename': '$TEST_IMG' } }" \
|
||||
'return'
|
||||
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{ 'execute': 'blockdev-add',
|
||||
'arguments': { 'options': { 'node-name': 'format',
|
||||
'driver': '$IMGFMT',
|
||||
'file': 'protocol' } } }" \
|
||||
'arguments': { 'node-name': 'format',
|
||||
'driver': '$IMGFMT',
|
||||
'file': 'protocol' } }" \
|
||||
'return'
|
||||
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
|
@ -229,10 +229,10 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
|
||||
|
||||
def test_cycle(self):
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'new',
|
||||
'driver': iotests.imgfmt,
|
||||
'file': {'filename': new_img,
|
||||
'driver': 'file'}})
|
||||
node_name='new',
|
||||
driver=iotests.imgfmt,
|
||||
file={'filename': new_img,
|
||||
'driver': 'file'})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
if self.device_name is not None:
|
||||
@ -309,10 +309,10 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
|
||||
return
|
||||
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'new',
|
||||
'driver': iotests.imgfmt,
|
||||
'file': {'filename': new_img,
|
||||
'driver': 'file'}})
|
||||
node_name='new',
|
||||
driver=iotests.imgfmt,
|
||||
file={'filename': new_img,
|
||||
'driver': 'file'})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
|
||||
@ -341,10 +341,10 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass):
|
||||
|
||||
def test_insert_on_filled(self):
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'new',
|
||||
'driver': iotests.imgfmt,
|
||||
'file': {'filename': new_img,
|
||||
'driver': 'file'}})
|
||||
node_name='new',
|
||||
driver=iotests.imgfmt,
|
||||
file={'filename': new_img,
|
||||
'driver': 'file'})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
result = self.vm.qmp('blockdev-open-tray', device='drive0')
|
||||
@ -609,11 +609,11 @@ class TestChangeReadOnly(ChangeBaseClass):
|
||||
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
|
||||
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'new',
|
||||
'driver': iotests.imgfmt,
|
||||
'read-only': True,
|
||||
'file': {'filename': new_img,
|
||||
'driver': 'file'}})
|
||||
node_name='new',
|
||||
driver=iotests.imgfmt,
|
||||
read_only=True,
|
||||
file={'filename': new_img,
|
||||
'driver': 'file'})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
result = self.vm.qmp('query-block')
|
||||
@ -663,10 +663,10 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
|
||||
self.assert_qmp_absent(result, 'return[0]/inserted')
|
||||
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'node0',
|
||||
'driver': iotests.imgfmt,
|
||||
'file': {'filename': old_img,
|
||||
'driver': 'file'}})
|
||||
node_name='node0',
|
||||
driver=iotests.imgfmt,
|
||||
file={'filename': old_img,
|
||||
'driver': 'file'})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
|
||||
|
@ -416,10 +416,10 @@ class TestIncrementalBackup(TestIncrementalBackupBase):
|
||||
('0xcd', '32M', '124k')))
|
||||
|
||||
# Create a blkdebug interface to this img as 'drive1'
|
||||
result = self.vm.qmp('blockdev-add', options={
|
||||
'node-name': drive1['id'],
|
||||
'driver': drive1['fmt'],
|
||||
'file': {
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
node_name=drive1['id'],
|
||||
driver=drive1['fmt'],
|
||||
file={
|
||||
'driver': 'blkdebug',
|
||||
'image': {
|
||||
'driver': 'file',
|
||||
@ -438,7 +438,7 @@ class TestIncrementalBackup(TestIncrementalBackupBase):
|
||||
'once': True
|
||||
}],
|
||||
}
|
||||
})
|
||||
)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
# Create bitmaps and full backups for both drives
|
||||
@ -560,10 +560,10 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
|
||||
'''
|
||||
|
||||
drive0 = self.drives[0]
|
||||
result = self.vm.qmp('blockdev-add', options={
|
||||
'node-name': drive0['id'],
|
||||
'driver': drive0['fmt'],
|
||||
'file': {
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
node_name=drive0['id'],
|
||||
driver=drive0['fmt'],
|
||||
file={
|
||||
'driver': 'blkdebug',
|
||||
'image': {
|
||||
'driver': 'file',
|
||||
@ -582,7 +582,7 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
|
||||
'once': True
|
||||
}],
|
||||
}
|
||||
})
|
||||
)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
self.create_anchor_backup(drive0)
|
||||
|
@ -57,7 +57,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
|
||||
'file': {'driver': 'file',
|
||||
'node-name': file_node,
|
||||
'filename': base_img}}
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, options = opts)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
self.checkBlockDriverState(node)
|
||||
self.checkBlockDriverState(file_node)
|
||||
@ -72,7 +72,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
|
||||
'backing': '',
|
||||
'file': {'driver': 'file',
|
||||
'filename': new_img}}
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, options = opts)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
self.checkBlockDriverState(node)
|
||||
|
||||
@ -185,7 +185,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
|
||||
opts = {'driver': 'blkdebug',
|
||||
'node-name': debug,
|
||||
'image': image}
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, options = opts)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
self.checkBlockDriverState(node)
|
||||
self.checkBlockDriverState(debug)
|
||||
@ -210,7 +210,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
|
||||
'node-name': blkverify,
|
||||
'test': node_0,
|
||||
'raw': node_1}
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, options = opts)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
self.checkBlockDriverState(test)
|
||||
self.checkBlockDriverState(raw)
|
||||
@ -234,7 +234,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
|
||||
'node-name': quorum,
|
||||
'vote-threshold': 1,
|
||||
'children': [ child_0, child_1 ]}
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, options = opts)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
self.checkBlockDriverState(child0)
|
||||
self.checkBlockDriverState(child1)
|
||||
|
@ -50,13 +50,12 @@ test_blockjob()
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
"{'execute': 'blockdev-add',
|
||||
'arguments': {
|
||||
'options': {
|
||||
'node-name': 'drv0',
|
||||
'driver': '$IMGFMT',
|
||||
'file': {
|
||||
'driver': 'file',
|
||||
'filename': '$TEST_IMG'
|
||||
}}}}" \
|
||||
'node-name': 'drv0',
|
||||
'driver': '$IMGFMT',
|
||||
'file': {
|
||||
'driver': 'file',
|
||||
'filename': '$TEST_IMG'
|
||||
}}}" \
|
||||
'return'
|
||||
|
||||
_send_qemu_cmd $QEMU_HANDLE \
|
||||
|
@ -63,10 +63,10 @@ class BaseClass(iotests.QMPTestCase):
|
||||
# Add the BDS via blockdev-add so it stays around after the mirror block
|
||||
# job has been completed
|
||||
result = self.vm.qmp('blockdev-add',
|
||||
options={'node-name': 'source',
|
||||
'driver': iotests.imgfmt,
|
||||
'file': {'driver': 'file',
|
||||
'filename': source_img}})
|
||||
node_name='source',
|
||||
driver=iotests.imgfmt,
|
||||
file={'driver': 'file',
|
||||
'filename': source_img})
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
result = self.vm.qmp('x-blockdev-insert-medium',
|
||||
@ -90,7 +90,7 @@ class BaseClass(iotests.QMPTestCase):
|
||||
if self.target_blockdev_backing:
|
||||
options['backing'] = self.target_blockdev_backing
|
||||
|
||||
result = self.vm.qmp('blockdev-add', options=options)
|
||||
result = self.vm.qmp('blockdev-add', **options)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
def tearDown(self):
|
||||
|
Loading…
Reference in New Issue
Block a user