qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Cody <jcody@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, mreitz@redhat.com
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH 14/14] block/create: Mark blockdev-create stable
Date: Tue, 29 May 2018 14:25:09 -0400	[thread overview]
Message-ID: <20180529182509.GJ6999@localhost.localdomain> (raw)
In-Reply-To: <20180525163327.23097-15-kwolf@redhat.com>

On Fri, May 25, 2018 at 06:33:27PM +0200, Kevin Wolf wrote:
> We're ready to declare the blockdev-create job stable. This renames the
> corresponding QMP command from x-blockdev-create to blockdev-create.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>

Reviewed-by: Jeff Cody <jcody@redhat.com>

> ---
>  qapi/block-core.json       |  4 ++--
>  qapi/job.json              |  2 +-
>  block/create.c             |  4 ++--
>  tests/qemu-iotests/206     |  2 +-
>  tests/qemu-iotests/206.out | 54 +++++++++++++++++++++++-----------------------
>  tests/qemu-iotests/207     |  2 +-
>  tests/qemu-iotests/207.out | 18 ++++++++--------
>  tests/qemu-iotests/210     |  2 +-
>  tests/qemu-iotests/210.out | 18 ++++++++--------
>  tests/qemu-iotests/211     |  2 +-
>  tests/qemu-iotests/211.out | 24 ++++++++++-----------
>  tests/qemu-iotests/212     |  2 +-
>  tests/qemu-iotests/212.out | 42 ++++++++++++++++++------------------
>  tests/qemu-iotests/213     |  2 +-
>  tests/qemu-iotests/213.out | 44 ++++++++++++++++++-------------------
>  15 files changed, 111 insertions(+), 111 deletions(-)
> 
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 1ed3a82373..015e5ac12b 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -4011,7 +4011,7 @@
>    } }
>  
>  ##
> -# @x-blockdev-create:
> +# @blockdev-create:
>  #
>  # Starts a job to create an image format on a given node. The job is
>  # automatically finalized, but a manual job-dismiss is required.
> @@ -4022,7 +4022,7 @@
>  #
>  # Since: 3.0
>  ##
> -{ 'command': 'x-blockdev-create',
> +{ 'command': 'blockdev-create',
>    'data': { 'job-id': 'str',
>              'options': 'BlockdevCreateOptions' } }
>  
> diff --git a/qapi/job.json b/qapi/job.json
> index 69c1970a58..17d10037c4 100644
> --- a/qapi/job.json
> +++ b/qapi/job.json
> @@ -17,7 +17,7 @@
>  #
>  # @backup: drive backup job type, see "drive-backup"
>  #
> -# @create: image creation job type, see "x-blockdev-create" (since 3.0)
> +# @create: image creation job type, see "blockdev-create" (since 3.0)
>  #
>  # Since: 1.7
>  ##
> diff --git a/block/create.c b/block/create.c
> index 87fdab3b72..21728acca0 100644
> --- a/block/create.c
> +++ b/block/create.c
> @@ -61,8 +61,8 @@ static const JobDriver blockdev_create_job_driver = {
>      .start         = blockdev_create_run,
>  };
>  
> -void qmp_x_blockdev_create(const char *job_id, BlockdevCreateOptions *options,
> -                           Error **errp)
> +void qmp_blockdev_create(const char *job_id, BlockdevCreateOptions *options,
> +                         Error **errp)
>  {
>      BlockdevCreateJob *s;
>      const char *fmt = BlockdevDriver_str(options->driver);
> diff --git a/tests/qemu-iotests/206 b/tests/qemu-iotests/206
> index 9a305302d1..334410d6a7 100755
> --- a/tests/qemu-iotests/206
> +++ b/tests/qemu-iotests/206
> @@ -26,7 +26,7 @@ from iotests import imgfmt
>  iotests.verify_image_format(supported_fmts=['qcow2'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/206.out b/tests/qemu-iotests/206.out
> index 45367270e8..8b403ea08f 100644
> --- a/tests/qemu-iotests/206.out
> +++ b/tests/qemu-iotests/206.out
> @@ -1,13 +1,13 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}
>  {u'return': {}}
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'imgfile', 'size': 134217728}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'imgfile', 'size': 134217728}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -24,12 +24,12 @@ Format specific information:
>  
>  === Successful image creation (inline blockdev-add, explicit defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': False, 'preallocation': 'off', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': False, 'preallocation': 'off', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.qcow2'}, 'lazy-refcounts': False, 'driver': 'qcow2', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'refcount-bits': 16, 'version': 'v3', 'preallocation': 'off', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}, 'lazy-refcounts': False, 'driver': 'qcow2', 'size': 67108864}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -46,12 +46,12 @@ Format specific information:
>  
>  === Successful image creation (v3 non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': True, 'preallocation': 'falloc', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': True, 'preallocation': 'falloc', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.qcow2'}, 'lazy-refcounts': True, 'driver': 'qcow2', 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 2097152, 'refcount-bits': 1, 'version': 'v3', 'preallocation': 'metadata', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}, 'lazy-refcounts': True, 'driver': 'qcow2', 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -68,12 +68,12 @@ Format specific information:
>  
>  === Successful image creation (v2 non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.qcow2'}, 'backing-file': 'TEST_DIR/t.qcow2.base', 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'backing-fmt': 'qcow2', 'driver': 'qcow2', 'version': 'v2', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.qcow2'}, 'backing-file': 'TEST_DIR/t.qcow2.base', 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -90,7 +90,7 @@ Format specific information:
>  
>  === Successful image creation (encrypted) ===
>  
> -{'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/t.qcow2'}, 'size': 33554432}}}
> +{'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/t.qcow2'}, 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -144,111 +144,111 @@ Format specific information:
>  
>  === Invalid BlockdevRef ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': "this doesn't exist", 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': "this doesn't exist", 'size': 33554432}}}
>  {u'return': {}}
>  Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  === Invalid sizes ===
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 1234}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 1234}}}
>  {u'return': {}}
>  Job failed: Image size must be a multiple of 512 bytes
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 18446744073709551104L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 18446744073709551104L}}}
>  {u'return': {}}
>  Job failed: Could not resize image: Image size cannot be negative
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775808L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775808L}}}
>  {u'return': {}}
>  Job failed: Could not resize image: Image size cannot be negative
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775296}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'node0', 'size': 9223372036854775296}}}
>  {u'return': {}}
>  Job failed: Could not resize image: Failed to grow the L1 table: File too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  === Invalid version ===
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'version': 'v1', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'version': 'v1', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'error': {u'class': u'GenericError', u'desc': u"Invalid parameter 'v1'"}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'lazy-refcounts': True, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'lazy-refcounts': True, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 8, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 8, 'version': 'v2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Different refcount widths than 16 bits require compatibility level 1.1 or above (use version=v3 or greater)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  === Invalid backing file options ===
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'full', 'driver': 'qcow2', 'backing-file': '/dev/null', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'full', 'driver': 'qcow2', 'backing-file': '/dev/null', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Backing file and preallocation cannot be used at the same time
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'backing-fmt': 'qcow2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'backing-fmt': 'qcow2', 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Backing format cannot be used without backing file
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  === Invalid cluster size ===
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a power of two between 512 and 2048k
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a power of two between 512 and 2048k
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4194304, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4194304, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a power of two between 512 and 2048k
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a power of two between 512 and 2048k
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'qcow2', 'file': 'node0', 'size': 281474976710656}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'qcow2', 'file': 'node0', 'size': 281474976710656}}}
>  {u'return': {}}
>  Job failed: Could not resize image: Failed to grow the L1 table: File too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  === Invalid refcount width ===
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 128, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Refcount width must be a power of two and may not exceed 64 bits
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 0, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Refcount width must be a power of two and may not exceed 64 bits
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 7, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'refcount-bits': 7, 'driver': 'qcow2', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Refcount width must be a power of two and may not exceed 64 bits
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> diff --git a/tests/qemu-iotests/207 b/tests/qemu-iotests/207
> index 91c1f7e811..0d7680599f 100755
> --- a/tests/qemu-iotests/207
> +++ b/tests/qemu-iotests/207
> @@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['raw'])
>  iotests.verify_protocol(supported=['ssh'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/207.out b/tests/qemu-iotests/207.out
> index 299650872c..92a7fa1b01 100644
> --- a/tests/qemu-iotests/207.out
> +++ b/tests/qemu-iotests/207.out
> @@ -1,6 +1,6 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -16,7 +16,7 @@ virtual size: 4.0M (4194304 bytes)
>  
>  === Test host-key-check options ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -25,7 +25,7 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
>  file format: IMGFMT
>  virtual size: 8.0M (8388608 bytes)
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'known_hosts'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'known_hosts'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -34,13 +34,13 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
>  file format: IMGFMT
>  virtual size: 4.0M (4194304 bytes)
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'wrong', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'wrong', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
>  {u'return': {}}
>  Job failed: remote host key does not match host_key_check 'wrong'
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'f3386a5742ddc4a04244118e59a1f92b', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'f3386a5742ddc4a04244118e59a1f92b', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -49,13 +49,13 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.po
>  file format: IMGFMT
>  virtual size: 8.0M (8388608 bytes)
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'wrong', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'wrong', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
>  {u'return': {}}
>  Job failed: remote host key does not match host_key_check 'wrong'
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'c6142e54650531177fa3d88ac52501ae00ccff69', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'hash': 'c6142e54650531177fa3d88ac52501ae00ccff69', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -66,13 +66,13 @@ virtual size: 4.0M (4194304 bytes)
>  
>  === Invalid path and user ===
>  
> -{'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}}}
> +{'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}}}
>  {u'return': {}}
>  Job failed: failed to open remote file '/this/is/not/an/existing/path': Failed opening remote file (libssh2 error code: -31)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'none'}, 'user': 'invalid user', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/t.img', 'host-key-check': {'mode': 'none'}, 'user': 'invalid user', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
>  {u'return': {}}
>  Job failed: failed to authenticate using publickey authentication and the identities held by your ssh-agent
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> diff --git a/tests/qemu-iotests/210 b/tests/qemu-iotests/210
> index ff4fddea56..d142841e2b 100755
> --- a/tests/qemu-iotests/210
> +++ b/tests/qemu-iotests/210
> @@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['luks'])
>  iotests.verify_protocol(supported=['file'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/210.out b/tests/qemu-iotests/210.out
> index 116218ae4e..ffdf8b4ce9 100644
> --- a/tests/qemu-iotests/210.out
> +++ b/tests/qemu-iotests/210.out
> @@ -1,13 +1,13 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.luks'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.luks'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/t.luks'}}
>  {u'return': {}}
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'imgfile', 'size': 134217728}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'imgfile', 'size': 134217728}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -54,12 +54,12 @@ Format specific information:
>  
>  === Successful image creation (with non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.luks'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.luks'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.luks'}, 'iter-time': 10, 'ivgen-alg': 'plain64', 'ivgen-hash-alg': 'md5', 'driver': 'luks', 'size': 67108864}}}
> +{'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/t.luks'}, 'iter-time': 10, 'ivgen-alg': 'plain64', 'ivgen-hash-alg': 'md5', 'driver': 'luks', 'size': 67108864}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -106,7 +106,7 @@ Format specific information:
>  
>  === Invalid BlockdevRef ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'luks', 'file': "this doesn't exist", 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'luks', 'file': "this doesn't exist", 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -114,7 +114,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
>  
>  === Zero size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'node0', 'size': 0}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'iter-time': 10, 'driver': 'luks', 'file': 'node0', 'size': 0}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -161,19 +161,19 @@ Format specific information:
>  
>  === Invalid sizes ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 18446744073709551104L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 18446744073709551104L}}}
>  {u'return': {}}
>  Job failed: The requested file size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775808L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775808L}}}
>  {u'return': {}}
>  Job failed: The requested file size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775296}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'key-secret': 'keysec0', 'driver': 'luks', 'file': 'node0', 'size': 9223372036854775296}}}
>  {u'return': {}}
>  Job failed: The requested file size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> diff --git a/tests/qemu-iotests/211 b/tests/qemu-iotests/211
> index 2fd89cfb32..05215776ce 100755
> --- a/tests/qemu-iotests/211
> +++ b/tests/qemu-iotests/211
> @@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['vdi'])
>  iotests.verify_protocol(supported=['file'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/211.out b/tests/qemu-iotests/211.out
> index 31ef74db4c..b43fb73f50 100644
> --- a/tests/qemu-iotests/211.out
> +++ b/tests/qemu-iotests/211.out
> @@ -1,13 +1,13 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}
>  {u'return': {}}
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'imgfile', 'size': 134217728}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'imgfile', 'size': 134217728}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -21,12 +21,12 @@ cluster_size: 1048576
>  
>  === Successful image creation (explicit defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'off', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'off', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 67108864}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -40,12 +40,12 @@ cluster_size: 1048576
>  
>  === Successful image creation (with non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'metadata', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'preallocation': 'metadata', 'driver': 'vdi', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -60,7 +60,7 @@ cluster_size: 1048576
>  
>  === Invalid BlockdevRef ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': "this doesn't exist", 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': "this doesn't exist", 'size': 33554432}}}
>  {u'return': {}}
>  Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -68,7 +68,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
>  
>  === Zero size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 0}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 0}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -80,7 +80,7 @@ cluster_size: 1048576
>  
>  === Maximum size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203584}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203584}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -92,19 +92,19 @@ cluster_size: 1048576
>  
>  === Invalid sizes ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 18446744073709551104L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 18446744073709551104L}}}
>  {u'return': {}}
>  Job failed: Unsupported VDI image size (size is 0xfffffffffffffe00, max supported is 0x1fffff8000000)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 9223372036854775808L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 9223372036854775808L}}}
>  {u'return': {}}
>  Job failed: Unsupported VDI image size (size is 0x8000000000000000, max supported is 0x1fffff8000000)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203585}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vdi', 'file': 'node0', 'size': 562949819203585}}}
>  {u'return': {}}
>  Job failed: Unsupported VDI image size (size is 0x1fffff8000001, max supported is 0x1fffff8000000)
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> diff --git a/tests/qemu-iotests/212 b/tests/qemu-iotests/212
> index 5ac4947b82..d22dde12ad 100755
> --- a/tests/qemu-iotests/212
> +++ b/tests/qemu-iotests/212
> @@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['parallels'])
>  iotests.verify_protocol(supported=['file'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/212.out b/tests/qemu-iotests/212.out
> index 25c5c46027..4230ef929c 100644
> --- a/tests/qemu-iotests/212.out
> +++ b/tests/qemu-iotests/212.out
> @@ -1,13 +1,13 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}
>  {u'return': {}}
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'imgfile', 'size': 134217728}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'imgfile', 'size': 134217728}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -18,12 +18,12 @@ virtual size: 128M (134217728 bytes)
>  
>  === Successful image creation (explicit defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1048576, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1048576, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 67108864}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -34,12 +34,12 @@ virtual size: 64M (67108864 bytes)
>  
>  === Successful image creation (with non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 65536, 'driver': 'parallels', 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -50,7 +50,7 @@ virtual size: 32M (33554432 bytes)
>  
>  === Invalid BlockdevRef ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': "this doesn't exist", 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': "this doesn't exist", 'size': 33554432}}}
>  {u'return': {}}
>  Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -58,7 +58,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
>  
>  === Zero size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 0}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 0}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -69,7 +69,7 @@ virtual size: 0 (0 bytes)
>  
>  === Maximum size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627369984}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627369984}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -80,31 +80,31 @@ virtual size: 4096T (4503599627369984 bytes)
>  
>  === Invalid sizes ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 1234}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 1234}}}
>  {u'return': {}}
>  Job failed: Image size must be a multiple of 512 bytes
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 18446744073709551104L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 18446744073709551104L}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775808L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775808L}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775296}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 9223372036854775296}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627370497}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'parallels', 'file': 'node0', 'size': 4503599627370497}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -112,43 +112,43 @@ Job failed: Image size is too large for this cluster size
>  
>  === Invalid cluster size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 1234, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a multiple of 512 bytes
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 128, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size must be a multiple of 512 bytes
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4294967296, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 4294967296, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 9223372036854775808L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 9223372036854775808L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 18446744073709551104L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 18446744073709551104L, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Cluster size is too large
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 0, 'driver': 'parallels', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'parallels', 'file': 'node0', 'size': 281474976710656}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'cluster-size': 512, 'driver': 'parallels', 'file': 'node0', 'size': 281474976710656}}}
>  {u'return': {}}
>  Job failed: Image size is too large for this cluster size
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> diff --git a/tests/qemu-iotests/213 b/tests/qemu-iotests/213
> index fe4017edc7..ccc27e4b2c 100755
> --- a/tests/qemu-iotests/213
> +++ b/tests/qemu-iotests/213
> @@ -27,7 +27,7 @@ iotests.verify_image_format(supported_fmts=['vhdx'])
>  iotests.verify_protocol(supported=['file'])
>  
>  def blockdev_create(vm, options):
> -    result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options)
> +    result = vm.qmp_log('blockdev-create', job_id='job0', options=options)
>  
>      if 'return' in result:
>          assert result['return'] == {}
> diff --git a/tests/qemu-iotests/213.out b/tests/qemu-iotests/213.out
> index 2b83e5df97..36a225f423 100644
> --- a/tests/qemu-iotests/213.out
> +++ b/tests/qemu-iotests/213.out
> @@ -1,13 +1,13 @@
>  === Successful image creation (defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
>  {'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}
>  {u'return': {}}
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'imgfile', 'size': 134217728}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'imgfile', 'size': 134217728}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -19,12 +19,12 @@ cluster_size: 8388608
>  
>  === Successful image creation (explicit defaults) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.vdi'}, 'block-state-zero': True, 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 8388608, 'driver': 'vhdx', 'subformat': 'dynamic', 'log-size': 1048576, 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'block-state-zero': True, 'size': 67108864}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -36,12 +36,12 @@ cluster_size: 8388608
>  
>  === Successful image creation (with non-default options) ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'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/t.vdi'}, 'block-state-zero': False, 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'block-size': 268435456, 'driver': 'vhdx', 'subformat': 'fixed', 'log-size': 8388608, 'file': {'driver': 'file', 'filename': 'TEST_DIR/t.vdi'}, 'block-state-zero': False, 'size': 33554432}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -53,7 +53,7 @@ cluster_size: 268435456
>  
>  === Invalid BlockdevRef ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': "this doesn't exist", 'size': 33554432}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': "this doesn't exist", 'size': 33554432}}}
>  {u'return': {}}
>  Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exist
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -61,7 +61,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi
>  
>  === Zero size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 0}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 0}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -73,7 +73,7 @@ cluster_size: 8388608
>  
>  === Maximum size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177664}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177664}}}
>  {u'return': {}}
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
> @@ -85,25 +85,25 @@ cluster_size: 67108864
>  
>  === Invalid sizes ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 18446744073709551104L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 18446744073709551104L}}}
>  {u'return': {}}
>  Job failed: Image size too large; max of 64TB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775808L}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775808L}}}
>  {u'return': {}}
>  Job failed: Image size too large; max of 64TB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775296}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 9223372036854775296}}}
>  {u'return': {}}
>  Job failed: Image size too large; max of 64TB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177665}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'file': 'node0', 'size': 70368744177665}}}
>  {u'return': {}}
>  Job failed: Image size too large; max of 64TB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -111,31 +111,31 @@ Job failed: Image size too large; max of 64TB
>  
>  === Invalid block size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 1234567, 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 1234567, 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Block size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 128, 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 128, 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Block size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 3145728, 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 3145728, 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Block size must be a power of two
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 536870912, 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 536870912, 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Block size must not exceed 268435456
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 0, 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'vhdx', 'block-size': 0, 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Block size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> @@ -143,25 +143,25 @@ Job failed: Block size must be a multiple of 1 MB
>  
>  === Invalid log size ===
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 1234567, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 1234567, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Log size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 128, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 128, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Log size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 4294967296, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 4294967296, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Log size must be smaller than 4 GB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
>  {u'return': {}}
>  
> -{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 0, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
> +{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'log-size': 0, 'driver': 'vhdx', 'file': 'node0', 'size': 67108864}}}
>  {u'return': {}}
>  Job failed: Log size must be a multiple of 1 MB
>  {'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
> -- 
> 2.13.6
> 
> 

  parent reply	other threads:[~2018-05-29 18:25 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-25 16:33 [Qemu-devel] [PATCH 00/14] block: Make blockdev-create a job and stable API Kevin Wolf
2018-05-25 16:33 ` [Qemu-devel] [PATCH 01/14] vdi: Fix vdi_co_do_create() return value Kevin Wolf
2018-05-29 10:38   ` Max Reitz
2018-05-29 14:45   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-25 16:33 ` [Qemu-devel] [PATCH 02/14] vhdx: Fix vhdx_co_create() " Kevin Wolf
2018-05-29 10:40   ` Max Reitz
2018-05-29 14:44   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-25 16:33 ` [Qemu-devel] [PATCH 03/14] job: Add error message for failing jobs Kevin Wolf
2018-05-29 11:01   ` Max Reitz
2018-05-29 14:43   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-29 19:54     ` Kevin Wolf
2018-05-25 16:33 ` [Qemu-devel] [PATCH 04/14] block/create: Make x-blockdev-create a job Kevin Wolf
2018-05-29 11:38   ` Max Reitz
2018-05-29 15:27   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-29 15:40     ` Kevin Wolf
2018-05-25 16:33 ` [Qemu-devel] [PATCH 05/14] qemu-iotests: Add VM.get_qmp_events_filtered() Kevin Wolf
2018-05-29 11:41   ` Max Reitz
2018-05-25 16:33 ` [Qemu-devel] [PATCH 06/14] qemu-iotests: Add VM.qmp_log() Kevin Wolf
2018-05-29 11:48   ` Max Reitz
2018-05-29 12:12     ` Kevin Wolf
2018-05-29 12:15       ` Max Reitz
2018-05-29 12:39         ` Kevin Wolf
2018-05-29 12:41           ` Max Reitz
2018-05-29 18:31   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-25 16:33 ` [Qemu-devel] [PATCH 07/14] qemu-iotests: Add iotests.img_info_log() Kevin Wolf
2018-05-29 11:56   ` Max Reitz
2018-05-25 16:33 ` [Qemu-devel] [PATCH 08/14] qemu-iotests: Rewrite 206 for blockdev-create job Kevin Wolf
2018-05-29 12:27   ` Max Reitz
2018-05-29 18:49     ` Kevin Wolf
2018-05-25 16:33 ` [Qemu-devel] [PATCH 09/14] qemu-iotests: Rewrite 207 " Kevin Wolf
2018-05-29 12:44   ` Max Reitz
2018-05-29 12:47   ` Max Reitz
2018-05-29 17:52   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-25 16:33 ` [Qemu-devel] [PATCH 10/14] qemu-iotests: Rewrite 210 " Kevin Wolf
2018-05-29 13:02   ` Max Reitz
2018-05-29 18:23   ` [Qemu-devel] [Qemu-block] " Jeff Cody
2018-05-25 16:33 ` [Qemu-devel] [PATCH 11/14] qemu-iotests: Rewrite 211 " Kevin Wolf
2018-05-29 13:12   ` Max Reitz
2018-05-25 16:33 ` [Qemu-devel] [PATCH 12/14] qemu-iotests: Rewrite 212 " Kevin Wolf
2018-05-29 13:21   ` Max Reitz
2018-05-25 16:33 ` [Qemu-devel] [PATCH 13/14] qemu-iotests: Rewrite 213 " Kevin Wolf
2018-05-29 13:27   ` Max Reitz
2018-05-25 16:33 ` [Qemu-devel] [PATCH 14/14] block/create: Mark blockdev-create stable Kevin Wolf
2018-05-29 13:30   ` Max Reitz
2018-05-29 18:25   ` Jeff Cody [this message]
2018-05-25 16:52 ` [Qemu-devel] [PATCH 00/14] block: Make blockdev-create a job and stable API no-reply
2018-05-25 18:13 ` Eric Blake
2018-05-28  8:42   ` Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180529182509.GJ6999@localhost.localdomain \
    --to=jcody@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).