3fb588a0f2
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: Max Reitz <mreitz@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com>
257 lines
11 KiB
Plaintext
257 lines
11 KiB
Plaintext
=== Successful image creation (defaults) ===
|
|
|
|
{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
{'execute': 'blockdev-add', 'arguments': {'node_name': 'imgfile', 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}
|
|
{u'return': {}}
|
|
{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'qcow2', 'file': 'imgfile', 'size': 134217728}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 128M (134217728 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
|
|
=== Successful image creation (inline blockdev-add, explicit defaults) ===
|
|
|
|
{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': False, 'preallocation': 'off', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
{'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}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 64M (67108864 bytes)
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
corrupt: false
|
|
|
|
=== Successful image creation (v3 non-default options) ===
|
|
|
|
{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'nocow': True, 'preallocation': 'falloc', 'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
{'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}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 32M (33554432 bytes)
|
|
cluster_size: 2097152
|
|
Format specific information:
|
|
compat: 1.1
|
|
lazy refcounts: true
|
|
refcount bits: 1
|
|
corrupt: false
|
|
|
|
=== Successful image creation (v2 non-default options) ===
|
|
|
|
{'execute': 'blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'size': 0, 'driver': 'file', 'filename': 'TEST_DIR/PID-t.qcow2'}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
{'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}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 32M (33554432 bytes)
|
|
cluster_size: 512
|
|
backing file: TEST_IMG.base
|
|
backing file format: IMGFMT
|
|
Format specific information:
|
|
compat: 0.10
|
|
refcount bits: 16
|
|
|
|
=== Successful image creation (encrypted) ===
|
|
|
|
{'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}}}
|
|
{u'return': {}}
|
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
|
{u'return': {}}
|
|
|
|
image: TEST_IMG
|
|
file format: IMGFMT
|
|
virtual size: 32M (33554432 bytes)
|
|
encrypted: yes
|
|
cluster_size: 65536
|
|
Format specific information:
|
|
compat: 1.1
|
|
lazy refcounts: false
|
|
refcount bits: 16
|
|
encrypt:
|
|
ivgen alg: plain64
|
|
hash alg: sha1
|
|
cipher alg: twofish-128
|
|
uuid: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
format: luks
|
|
cipher mode: ctr
|
|
slots:
|
|
[0]:
|
|
active: true
|
|
iters: XXX
|
|
key offset: 4096
|
|
stripes: 4000
|
|
[1]:
|
|
active: false
|
|
key offset: 69632
|
|
[2]:
|
|
active: false
|
|
key offset: 135168
|
|
[3]:
|
|
active: false
|
|
key offset: 200704
|
|
[4]:
|
|
active: false
|
|
key offset: 266240
|
|
[5]:
|
|
active: false
|
|
key offset: 331776
|
|
[6]:
|
|
active: false
|
|
key offset: 397312
|
|
[7]:
|
|
active: false
|
|
key offset: 462848
|
|
payload offset: 528384
|
|
master key iters: XXX
|
|
corrupt: false
|
|
|
|
=== Invalid BlockdevRef ===
|
|
|
|
{'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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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': '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'}}
|
|
{u'return': {}}
|
|
|