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