=== 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': {}}