1 === Successful image creation (defaults) === 2 3 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2", "size": 0}}} 4 {"return": {}} 5 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 6 {"return": {}} 7 8 {"execute": "blockdev-add", "arguments": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2", "node-name": "imgfile"}} 9 {"return": {}} 10 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "imgfile", "size": 134217728}}} 11 {"return": {}} 12 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 13 {"return": {}} 14 15 image: TEST_IMG 16 file format: IMGFMT 17 virtual size: 128 MiB (134217728 bytes) 18 cluster_size: 65536 19 Format specific information: 20 compat: 1.1 21 compression type: COMPRESSION_TYPE 22 lazy refcounts: false 23 refcount bits: 16 24 corrupt: false 25 extended l2: false 26 27 === Successful image creation (inline blockdev-add, explicit defaults) === 28 29 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2", "nocow": false, "preallocation": "off", "size": 0}}} 30 {"return": {}} 31 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 32 {"return": {}} 33 34 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 65536, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2"}, "lazy-refcounts": false, "preallocation": "off", "refcount-bits": 16, "size": 67108864, "version": "v3"}}} 35 {"return": {}} 36 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 37 {"return": {}} 38 39 image: TEST_IMG 40 file format: IMGFMT 41 virtual size: 64 MiB (67108864 bytes) 42 cluster_size: 65536 43 Format specific information: 44 compat: 1.1 45 compression type: COMPRESSION_TYPE 46 lazy refcounts: false 47 refcount bits: 16 48 corrupt: false 49 extended l2: false 50 51 === Successful image creation (v3 non-default options) === 52 53 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2", "nocow": true, "preallocation": "falloc", "size": 0}}} 54 {"return": {}} 55 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 56 {"return": {}} 57 58 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 2097152, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2"}, "lazy-refcounts": true, "preallocation": "metadata", "refcount-bits": 1, "size": 33554432, "version": "v3"}}} 59 {"return": {}} 60 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 61 {"return": {}} 62 63 image: TEST_IMG 64 file format: IMGFMT 65 virtual size: 32 MiB (33554432 bytes) 66 cluster_size: 2097152 67 Format specific information: 68 compat: 1.1 69 compression type: COMPRESSION_TYPE 70 lazy refcounts: true 71 refcount bits: 1 72 corrupt: false 73 extended l2: false 74 75 === Successful image creation (v2 non-default options) === 76 77 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2", "size": 0}}} 78 {"return": {}} 79 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 80 {"return": {}} 81 82 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"backing-file": "TEST_DIR/PID-t.qcow2.base", "backing-fmt": "qcow2", "cluster-size": 512, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2"}, "size": 33554432, "version": "v2"}}} 83 {"return": {}} 84 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 85 {"return": {}} 86 87 image: TEST_IMG 88 file format: IMGFMT 89 virtual size: 32 MiB (33554432 bytes) 90 cluster_size: 512 91 backing file: TEST_IMG.base 92 backing file format: IMGFMT 93 Format specific information: 94 compat: 0.10 95 compression type: COMPRESSION_TYPE 96 refcount bits: 16 97 98 === Successful image creation (encrypted) === 99 100 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "encrypt": {"cipher-alg": "aes-128", "cipher-mode": "cbc", "format": "luks", "hash-alg": "sha1", "iter-time": 10, "ivgen-alg": "plain64", "ivgen-hash-alg": "md5", "key-secret": "keysec0"}, "file": {"driver": "file", "filename": "TEST_DIR/PID-t.qcow2"}, "size": 33554432}}} 101 {"return": {}} 102 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 103 {"return": {}} 104 105 image: TEST_IMG 106 file format: IMGFMT 107 virtual size: 32 MiB (33554432 bytes) 108 encrypted: yes 109 cluster_size: 65536 110 Format specific information: 111 compat: 1.1 112 compression type: COMPRESSION_TYPE 113 lazy refcounts: false 114 refcount bits: 16 115 encrypt: 116 ivgen alg: plain64 117 detached header: false 118 hash alg: sha1 119 cipher alg: aes-128 120 uuid: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 121 format: luks 122 cipher mode: cbc 123 slots: 124 [0]: 125 active: true 126 iters: XXX 127 key offset: 4096 128 stripes: 4000 129 [1]: 130 active: false 131 key offset: 69632 132 [2]: 133 active: false 134 key offset: 135168 135 [3]: 136 active: false 137 key offset: 200704 138 [4]: 139 active: false 140 key offset: 266240 141 [5]: 142 active: false 143 key offset: 331776 144 [6]: 145 active: false 146 key offset: 397312 147 [7]: 148 active: false 149 key offset: 462848 150 payload offset: 528384 151 master key iters: XXX 152 corrupt: false 153 extended l2: false 154 155 === Invalid BlockdevRef === 156 157 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "this doesn't exist", "size": 33554432}}} 158 {"return": {}} 159 Job failed: Cannot find device='this doesn't exist' nor node-name='this doesn't exist' 160 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 161 {"return": {}} 162 163 === Invalid sizes === 164 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 1234}}} 165 {"return": {}} 166 Job failed: Image size must be a multiple of 512 bytes 167 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 168 {"return": {}} 169 170 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 18446744073709551104}}} 171 {"return": {}} 172 Job failed: Could not resize image: Image size cannot be negative 173 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 174 {"return": {}} 175 176 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 9223372036854775808}}} 177 {"return": {}} 178 Job failed: Could not resize image: Image size cannot be negative 179 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 180 {"return": {}} 181 182 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 9223372036854775296}}} 183 {"return": {}} 184 Job failed: Could not resize image: offset(9223372036854775296) exceeds maximum(9223372035781033984) 185 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 186 {"return": {}} 187 188 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 9223372035781033984}}} 189 {"return": {}} 190 Job failed: Could not resize image: Failed to grow the L1 table: File too large 191 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 192 {"return": {}} 193 194 === Invalid version === 195 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "size": 67108864, "version": "v1"}}} 196 {"error": {"class": "GenericError", "desc": "Parameter 'version' does not accept value 'v1'"}} 197 198 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "lazy-refcounts": true, "size": 67108864, "version": "v2"}}} 199 {"return": {}} 200 Job failed: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater) 201 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 202 {"return": {}} 203 204 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "refcount-bits": 8, "size": 67108864, "version": "v2"}}} 205 {"return": {}} 206 Job failed: Different refcount widths than 16 bits require compatibility level 1.1 or above (use version=v3 or greater) 207 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 208 {"return": {}} 209 210 === Invalid backing file options === 211 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"backing-file": "/dev/null", "driver": "qcow2", "file": "node0", "preallocation": "full", "size": 67108864}}} 212 {"return": {}} 213 Job failed: Backing file and preallocation can only be used at the same time if extended_l2 is on 214 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 215 {"return": {}} 216 217 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"backing-fmt": "qcow2", "driver": "qcow2", "file": "node0", "size": 67108864}}} 218 {"return": {}} 219 Job failed: Backing format cannot be used without backing file 220 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 221 {"return": {}} 222 223 === Invalid cluster size === 224 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 1234, "driver": "qcow2", "file": "node0", "size": 67108864}}} 225 {"return": {}} 226 Job failed: Cluster size must be a power of two between 512 and 2048k 227 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 228 {"return": {}} 229 230 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 128, "driver": "qcow2", "file": "node0", "size": 67108864}}} 231 {"return": {}} 232 Job failed: Cluster size must be a power of two between 512 and 2048k 233 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 234 {"return": {}} 235 236 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 4194304, "driver": "qcow2", "file": "node0", "size": 67108864}}} 237 {"return": {}} 238 Job failed: Cluster size must be a power of two between 512 and 2048k 239 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 240 {"return": {}} 241 242 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 0, "driver": "qcow2", "file": "node0", "size": 67108864}}} 243 {"return": {}} 244 Job failed: Cluster size must be a power of two between 512 and 2048k 245 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 246 {"return": {}} 247 248 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 512, "driver": "qcow2", "file": "node0", "size": 281474976710656}}} 249 {"return": {}} 250 Job failed: Could not resize image: Failed to grow the L1 table: File too large 251 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 252 {"return": {}} 253 254 === Invalid refcount width === 255 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "refcount-bits": 128, "size": 67108864}}} 256 {"return": {}} 257 Job failed: Refcount width must be a power of two and may not exceed 64 bits 258 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 259 {"return": {}} 260 261 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "refcount-bits": 0, "size": 67108864}}} 262 {"return": {}} 263 Job failed: Refcount width must be a power of two and may not exceed 64 bits 264 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 265 {"return": {}} 266 267 {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "node0", "refcount-bits": 7, "size": 67108864}}} 268 {"return": {}} 269 Job failed: Refcount width must be a power of two and may not exceed 64 bits 270 {"execute": "job-dismiss", "arguments": {"id": "job0"}} 271 {"return": {}} 272 273