Blame SOURCES/kvm-block-create-Mark-blockdev-create-stable.patch

383d26
From 6d13aa547ffb24311a0cd6f2268d35fd0a272182 Mon Sep 17 00:00:00 2001
383d26
From: Kevin Wolf <kwolf@redhat.com>
383d26
Date: Tue, 26 Jun 2018 09:48:52 +0200
383d26
Subject: [PATCH 83/89] block/create: Mark blockdev-create stable
383d26
383d26
RH-Author: Kevin Wolf <kwolf@redhat.com>
383d26
Message-id: <20180626094856.6924-70-kwolf@redhat.com>
383d26
Patchwork-id: 81104
383d26
O-Subject: [RHV-7.6 qemu-kvm-rhev PATCH v2 69/73] block/create: Mark blockdev-create stable
383d26
Bugzilla: 1513543
383d26
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
383d26
RH-Acked-by: Max Reitz <mreitz@redhat.com>
383d26
RH-Acked-by: Fam Zheng <famz@redhat.com>
383d26
383d26
We're ready to declare the blockdev-create job stable. This renames the
383d26
corresponding QMP command from x-blockdev-create to blockdev-create.
383d26
383d26
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
383d26
Reviewed-by: Max Reitz <mreitz@redhat.com>
383d26
Reviewed-by: Jeff Cody <jcody@redhat.com>
383d26
(cherry picked from commit 3fb588a0f2c006122c34e1960a15c87ae2b927eb)
383d26
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
383d26
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
383d26
---
383d26
 block/create.c             |  4 ++--
383d26
 qapi/block-core.json       |  4 ++--
383d26
 qapi/job.json              |  2 +-
383d26
 tests/qemu-iotests/206     |  2 +-
383d26
 tests/qemu-iotests/206.out | 54 +++++++++++++++++++++++-----------------------
383d26
 tests/qemu-iotests/207     |  2 +-
383d26
 tests/qemu-iotests/207.out | 18 ++++++++--------
383d26
 tests/qemu-iotests/210     |  2 +-
383d26
 tests/qemu-iotests/210.out | 18 ++++++++--------
383d26
 tests/qemu-iotests/211     |  2 +-
383d26
 tests/qemu-iotests/211.out | 24 ++++++++++-----------
383d26
 tests/qemu-iotests/212     |  2 +-
383d26
 tests/qemu-iotests/212.out | 42 ++++++++++++++++++------------------
383d26
 tests/qemu-iotests/213     |  2 +-
383d26
 tests/qemu-iotests/213.out | 44 ++++++++++++++++++-------------------
383d26
 15 files changed, 111 insertions(+), 111 deletions(-)
383d26
383d26
diff --git a/block/create.c b/block/create.c
383d26
index 1a263e4..915cd41 100644
383d26
--- a/block/create.c
383d26
+++ b/block/create.c
383d26
@@ -63,8 +63,8 @@ static const JobDriver blockdev_create_job_driver = {
383d26
     .start         = blockdev_create_run,
383d26
 };
383d26
 
383d26
-void qmp_x_blockdev_create(const char *job_id, BlockdevCreateOptions *options,
383d26
-                           Error **errp)
383d26
+void qmp_blockdev_create(const char *job_id, BlockdevCreateOptions *options,
383d26
+                         Error **errp)
383d26
 {
383d26
     BlockdevCreateJob *s;
383d26
     const char *fmt = BlockdevDriver_str(options->driver);
383d26
diff --git a/qapi/block-core.json b/qapi/block-core.json
383d26
index d22d1db..0b07e41 100644
383d26
--- a/qapi/block-core.json
383d26
+++ b/qapi/block-core.json
383d26
@@ -4025,7 +4025,7 @@
383d26
   } }
383d26
 
383d26
 ##
383d26
-# @x-blockdev-create:
383d26
+# @blockdev-create:
383d26
 #
383d26
 # Starts a job to create an image format on a given node. The job is
383d26
 # automatically finalized, but a manual job-dismiss is required.
383d26
@@ -4036,7 +4036,7 @@
383d26
 #
383d26
 # Since: 3.0
383d26
 ##
383d26
-{ 'command': 'x-blockdev-create',
383d26
+{ 'command': 'blockdev-create',
383d26
   'data': { 'job-id': 'str',
383d26
             'options': 'BlockdevCreateOptions' } }
383d26
 
383d26
diff --git a/qapi/job.json b/qapi/job.json
383d26
index 69c1970..17d1003 100644
383d26
--- a/qapi/job.json
383d26
+++ b/qapi/job.json
383d26
@@ -17,7 +17,7 @@
383d26
 #
383d26
 # @backup: drive backup job type, see "drive-backup"
383d26
 #
383d26
-# @create: image creation job type, see "x-blockdev-create" (since 3.0)
383d26
+# @create: image creation job type, see "blockdev-create" (since 3.0)
383d26
 #
383d26
 # Since: 1.7
383d26
 ##
383d26
diff --git a/tests/qemu-iotests/206 b/tests/qemu-iotests/206
383d26
index b8cf2e7..128c334 100755
383d26
--- a/tests/qemu-iotests/206
383d26
+++ b/tests/qemu-iotests/206
383d26
@@ -26,7 +26,7 @@ from iotests import imgfmt
383d26
 iotests.verify_image_format(supported_fmts=['qcow2'])
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
383d26
 
383d26
     if 'return' in result:
383d26
         assert result['return'] == {}
383d26
diff --git a/tests/qemu-iotests/206.out b/tests/qemu-iotests/206.out
383d26
index 34451a3..789eebe 100644
383d26
--- a/tests/qemu-iotests/206.out
383d26
+++ b/tests/qemu-iotests/206.out
383d26
@@ -1,13 +1,13 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}
383d26
 {u'return': {}}
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'imgfile', 'size': 134217728}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'imgfile', 'size': 134217728}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -24,12 +24,12 @@ Format specific information:
383d26
 
383d26
 === Successful image creation (inline blockdev-add, explicit defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': False, 'preallocation': 'off', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': False, 'preallocation': 'off', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'refcount-bits': 16, 'version': 'v3', 'preallocation': 'off', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'lazy-refcounts': False, 'driver': 'qcow2', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'refcount-bits': 16, 'version': 'v3', 'preallocation': 'off', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'lazy-refcounts': False, 'driver': 'qcow2', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -46,12 +46,12 @@ Format specific information:
383d26
 
383d26
 === Successful image creation (v3 non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': True, 'preallocation': 'falloc', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': True, 'preallocation': 'falloc', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 2097152, 'refcount-bits': 1, 'version': 'v3', 'preallocation': 'metadata', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'lazy-refcounts': True, 'driver': 'qcow2', 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 2097152, 'refcount-bits': 1, 'version': 'v3', 'preallocation': 'metadata', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'lazy-refcounts': True, 'driver': 'qcow2', 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -68,12 +68,12 @@ Format specific information:
383d26
 
383d26
 === Successful image creation (v2 non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'backing-fmt': 'qcow2', 'driver': 'qcow2', 'version': 'v2', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'backing-file': 'TEST_DIR/PID-t.qcow2.base', 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'backing-fmt': 'qcow2', 'driver': 'qcow2', 'version': 'v2', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'backing-file': 'TEST_DIR/PID-t.qcow2.base', 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -90,7 +90,7 @@ Format specific information:
383d26
 
383d26
 === Successful image creation (encrypted) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'encrypt': {'key-secret': 'keysec0', 'iter-time': 10, 'cipher-mode': 'ctr', 'ivgen-hash-alg': 'md5', 'cipher-alg': 'twofish-128', 'format': 'luks', 'ivgen-alg': 'plain64', 'hash-alg': 'sha1'}, 'driver': 'qcow2', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'encrypt': {'key-secret': 'keysec0', 'iter-time': 10, 'cipher-mode': 'ctr', 'ivgen-hash-alg': 'md5', 'cipher-alg': 'twofish-128', 'format': 'luks', 'ivgen-alg': 'plain64', 'hash-alg': 'sha1'}, 'driver': 'qcow2', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}, 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -144,111 +144,111 @@ Format specific information:
383d26
 
383d26
 === Invalid BlockdevRef ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 === Invalid sizes ===
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 1234}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 1234}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size must be a multiple of 512 bytes
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Could not resize image: Image size cannot be negative
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Could not resize image: Image size cannot be negative
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
 {u'return': {}}
383d26
 Job failed: Could not resize image: Failed to grow the L1 table: File too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 === Invalid version ===
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'version': 'v1', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'version': 'v1', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'error': {u'class': u'GenericError', u'desc': u"Invalid parameter 'v1'"}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'lazy-refcounts': True, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'lazy-refcounts': True, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 8, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 8, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Different refcount widths than 16 bits require compatibility level 1.1 or above (use version=v3 or greater)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 === Invalid backing file options ===
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'full', 'driver': 'qcow2', 'backing-file': '/dev/null', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'full', 'driver': 'qcow2', 'backing-file': '/dev/null', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Backing file and preallocation cannot be used at the same time
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'backing-fmt': 'qcow2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'backing-fmt': 'qcow2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Backing format cannot be used without backing file
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 === Invalid cluster size ===
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a power of two between 512 and 2048k
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a power of two between 512 and 2048k
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4194304, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4194304, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a power of two between 512 and 2048k
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a power of two between 512 and 2048k
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'qcow2', 'file': 'node0', 'size': 281474976710656}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'qcow2', 'file': 'node0', 'size': 281474976710656}}}
383d26
 {u'return': {}}
383d26
 Job failed: Could not resize image: Failed to grow the L1 table: File too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 === Invalid refcount width ===
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Refcount width must be a power of two and may not exceed 64 bits
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Refcount width must be a power of two and may not exceed 64 bits
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 7, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 7, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Refcount width must be a power of two and may not exceed 64 bits
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
diff --git a/tests/qemu-iotests/207 b/tests/qemu-iotests/207
383d26
index b595c92..444ae23 100755
383d26
--- a/tests/qemu-iotests/207
383d26
+++ b/tests/qemu-iotests/207
383d26
@@ -31,7 +31,7 @@ def filter_hash(msg):
383d26
     return re.sub("'hash': '[0-9a-f]+'", "'hash': HASH", msg)
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options,
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options,
383d26
                         filters=[iotests.filter_testfiles, filter_hash])
383d26
 
383d26
     if 'return' in result:
383d26
diff --git a/tests/qemu-iotests/207.out b/tests/qemu-iotests/207.out
383d26
index 5eee17b..078b7e6 100644
383d26
--- a/tests/qemu-iotests/207.out
383d26
+++ b/tests/qemu-iotests/207.out
383d26
@@ -1,6 +1,6 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -16,7 +16,7 @@ virtual size: 4.0M (4194304 bytes)
383d26
 
383d26
 === Test host-key-check options ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -25,7 +25,7 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
383d26
 file format: IMGFMT
383d26
 virtual size: 8.0M (8388608 bytes)
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'known_hosts'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'known_hosts'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -34,13 +34,13 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
383d26
 file format: IMGFMT
383d26
 virtual size: 4.0M (4194304 bytes)
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
383d26
 {u'return': {}}
383d26
 Job failed: remote host key does not match host_key_check 'wrong'
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -49,13 +49,13 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
383d26
 file format: IMGFMT
383d26
 virtual size: 8.0M (8388608 bytes)
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
383d26
 {u'return': {}}
383d26
 Job failed: remote host key does not match host_key_check 'wrong'
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -66,13 +66,13 @@ virtual size: 4.0M (4194304 bytes)
383d26
 
383d26
 === Invalid path and user ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': '/this/is/not/an/existing/path', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': '/this/is/not/an/existing/path', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
 {u'return': {}}
383d26
 Job failed: failed to open remote file '/this/is/not/an/existing/path': Failed opening remote file (libssh2 error code: -31)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'user': 'invalid user', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'user': 'invalid user', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
383d26
 {u'return': {}}
383d26
 Job failed: failed to authenticate using publickey authentication and the identities held by your ssh-agent
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
diff --git a/tests/qemu-iotests/210 b/tests/qemu-iotests/210
383d26
index ff4fdde..d142841 100755
383d26
--- a/tests/qemu-iotests/210
383d26
+++ b/tests/qemu-iotests/210
383d26
@@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['luks'])
383d26
 iotests.verify_protocol(supported=['file'])
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
383d26
 
383d26
     if 'return' in result:
383d26
         assert result['return'] == {}
383d26
diff --git a/tests/qemu-iotests/210.out b/tests/qemu-iotests/210.out
383d26
index 0e6e5c0..078ba54 100644
383d26
--- a/tests/qemu-iotests/210.out
383d26
+++ b/tests/qemu-iotests/210.out
383d26
@@ -1,13 +1,13 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}}
383d26
 {u'return': {}}
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'imgfile', 'size': 134217728}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'imgfile', 'size': 134217728}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -54,12 +54,12 @@ Format specific information:
383d26
 
383d26
 === Successful image creation (with non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'hash-alg': 'sha1', 'cipher-mode': 'ctr', 'cipher-alg': 'twofish-128', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}, 'iter-time': 10, 'ivgen-alg': 'plain64', 'ivgen-hash-alg': 'md5', 'driver': 'luks', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'hash-alg': 'sha1', 'cipher-mode': 'ctr', 'cipher-alg': 'twofish-128', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.luks'}, 'iter-time': 10, 'ivgen-alg': 'plain64', 'ivgen-hash-alg': 'md5', 'driver': 'luks', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -106,7 +106,7 @@ Format specific information:
383d26
 
383d26
 === Invalid BlockdevRef ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'luks', 'file': "this doesn't exist", 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'luks', 'file': "this doesn't exist", 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -114,7 +114,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
383d26
 
383d26
 === Zero size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'node0', 'size': 0}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'node0', 'size': 0}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -161,19 +161,19 @@ Format specific information:
383d26
 
383d26
 === Invalid sizes ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
 {u'return': {}}
383d26
 Job failed: The requested file size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
 {u'return': {}}
383d26
 Job failed: The requested file size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
 {u'return': {}}
383d26
 Job failed: The requested file size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
diff --git a/tests/qemu-iotests/211 b/tests/qemu-iotests/211
383d26
index b45f886..7b7985d 100755
383d26
--- a/tests/qemu-iotests/211
383d26
+++ b/tests/qemu-iotests/211
383d26
@@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['vdi'])
383d26
 iotests.verify_protocol(supported=['file'])
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
383d26
 
383d26
     if 'return' in result:
383d26
         assert result['return'] == {}
383d26
diff --git a/tests/qemu-iotests/211.out b/tests/qemu-iotests/211.out
383d26
index 2bf1c4a..6feaea3 100644
383d26
--- a/tests/qemu-iotests/211.out
383d26
+++ b/tests/qemu-iotests/211.out
383d26
@@ -1,13 +1,13 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}
383d26
 {u'return': {}}
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'imgfile', 'size': 134217728}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'imgfile', 'size': 134217728}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -21,12 +21,12 @@ cluster_size: 1048576
383d26
 
383d26
 === Successful image creation (explicit defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'off', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}, 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'off', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}, 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -40,12 +40,12 @@ cluster_size: 1048576
383d26
 
383d26
 === Successful image creation (with non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'metadata', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}, 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'metadata', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vdi'}, 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -60,7 +60,7 @@ cluster_size: 1048576
383d26
 
383d26
 === Invalid BlockdevRef ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -68,7 +68,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
383d26
 
383d26
 === Zero size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 0}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 0}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -80,7 +80,7 @@ cluster_size: 1048576
383d26
 
383d26
 === Maximum size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203584}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203584}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -92,19 +92,19 @@ cluster_size: 1048576
383d26
 
383d26
 === Invalid sizes ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Unsupported VDI image size (size is 0xfffffffffffffe00, max supported is 0x1fffff8000000)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Unsupported VDI image size (size is 0x8000000000000000, max supported is 0x1fffff8000000)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203585}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203585}}}
383d26
 {u'return': {}}
383d26
 Job failed: Unsupported VDI image size (size is 0x1fffff8000001, max supported is 0x1fffff8000000)
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
diff --git a/tests/qemu-iotests/212 b/tests/qemu-iotests/212
383d26
index 03cf41d..95c8810 100755
383d26
--- a/tests/qemu-iotests/212
383d26
+++ b/tests/qemu-iotests/212
383d26
@@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['parallels'])
383d26
 iotests.verify_protocol(supported=['file'])
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
383d26
 
383d26
     if 'return' in result:
383d26
         assert result['return'] == {}
383d26
diff --git a/tests/qemu-iotests/212.out b/tests/qemu-iotests/212.out
383d26
index 780bc30..9150da7 100644
383d26
--- a/tests/qemu-iotests/212.out
383d26
+++ b/tests/qemu-iotests/212.out
383d26
@@ -1,13 +1,13 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}
383d26
 {u'return': {}}
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'imgfile', 'size': 134217728}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'imgfile', 'size': 134217728}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -18,12 +18,12 @@ virtual size: 128M (134217728 bytes)
383d26
 
383d26
 === Successful image creation (explicit defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1048576, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}, 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1048576, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}, 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -34,12 +34,12 @@ virtual size: 64M (67108864 bytes)
383d26
 
383d26
 === Successful image creation (with non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}, 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.parallels'}, 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -50,7 +50,7 @@ virtual size: 32M (33554432 bytes)
383d26
 
383d26
 === Invalid BlockdevRef ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -58,7 +58,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
383d26
 
383d26
 === Zero size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 0}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 0}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -69,7 +69,7 @@ virtual size: 0 (0 bytes)
383d26
 
383d26
 === Maximum size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627369984}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627369984}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -80,31 +80,31 @@ virtual size: 4096T (4503599627369984 bytes)
383d26
 
383d26
 === Invalid sizes ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 1234}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 1234}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size must be a multiple of 512 bytes
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627370497}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627370497}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -112,43 +112,43 @@ Job failed: Image size is too large for this cluster size
383d26
 
383d26
 === Invalid cluster size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a multiple of 512 bytes
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size must be a multiple of 512 bytes
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4294967296, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4294967296, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 9223372036854775808L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 9223372036854775808L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 18446744073709551104L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 18446744073709551104L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cluster size is too large
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'parallels', 'file': 'node0', 'size': 281474976710656}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'parallels', 'file': 'node0', 'size': 281474976710656}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size is too large for this cluster size
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
diff --git a/tests/qemu-iotests/213 b/tests/qemu-iotests/213
383d26
index 29d25bc..4054439 100755
383d26
--- a/tests/qemu-iotests/213
383d26
+++ b/tests/qemu-iotests/213
383d26
@@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['vhdx'])
383d26
 iotests.verify_protocol(supported=['file'])
383d26
 
383d26
 def blockdev_create(vm, options):
383d26
-    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
383d26
+    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
383d26
 
383d26
     if 'return' in result:
383d26
         assert result['return'] == {}
383d26
diff --git a/tests/qemu-iotests/213.out b/tests/qemu-iotests/213.out
383d26
index f18a39a..e1dcd47 100644
383d26
--- a/tests/qemu-iotests/213.out
383d26
+++ b/tests/qemu-iotests/213.out
383d26
@@ -1,13 +1,13 @@
383d26
 === Successful image creation (defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
 {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}
383d26
 {u'return': {}}
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'imgfile', 'size': 134217728}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'imgfile', 'size': 134217728}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -19,12 +19,12 @@ cluster_size: 8388608
383d26
 
383d26
 === Successful image creation (explicit defaults) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 8388608, 'driver': 'vhdx', 'subformat': 'dynamic', 'log-size': 1048576, 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}, 'block-state-zero': True, 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 8388608, 'driver': 'vhdx', 'subformat': 'dynamic', 'log-size': 1048576, 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}, 'block-state-zero': True, 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -36,12 +36,12 @@ cluster_size: 8388608
383d26
 
383d26
 === Successful image creation (with non-default options) ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 268435456, 'driver': 'vhdx', 'subformat': 'fixed', 'log-size': 8388608, 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}, 'block-state-zero': False, 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 268435456, 'driver': 'vhdx', 'subformat': 'fixed', 'log-size': 8388608, 'file': {'driver': 'file', 'filename': 'TEST_DIR/PID-t.vhdx'}, 'block-state-zero': False, 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -53,7 +53,7 @@ cluster_size: 268435456
383d26
 
383d26
 === Invalid BlockdevRef ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': "this doesn't exist", 'size': 33554432}}}
383d26
 {u'return': {}}
383d26
 Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -61,7 +61,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
383d26
 
383d26
 === Zero size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 0}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 0}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -73,7 +73,7 @@ cluster_size: 8388608
383d26
 
383d26
 === Maximum size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177664}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177664}}}
383d26
 {u'return': {}}
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
@@ -85,25 +85,25 @@ cluster_size: 67108864
383d26
 
383d26
 === Invalid sizes ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 18446744073709551104L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size too large; max of 64TB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775808L}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size too large; max of 64TB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775296}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size too large; max of 64TB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177665}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177665}}}
383d26
 {u'return': {}}
383d26
 Job failed: Image size too large; max of 64TB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -111,31 +111,31 @@ Job failed: Image size too large; max of 64TB
383d26
 
383d26
 === Invalid block size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 1234567, 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 1234567, 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Block size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 128, 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 128, 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Block size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 3145728, 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 3145728, 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Block size must be a power of two
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 536870912, 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 536870912, 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Block size must not exceed 268435456
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 0, 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 0, 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Block size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
@@ -143,25 +143,25 @@ Job failed: Block size must be a multiple of 1 MB
383d26
 
383d26
 === Invalid log size ===
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 1234567, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 1234567, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Log size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 128, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 128, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Log size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 4294967296, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 4294967296, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Log size must be smaller than 4 GB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
 {u'return': {}}
383d26
 
383d26
-{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 0, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
+{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 0, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
383d26
 {u'return': {}}
383d26
 Job failed: Log size must be a multiple of 1 MB
383d26
 {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
383d26
-- 
383d26
1.8.3.1
383d26