blockdev: Use blk_new_open() in blockdev_init()
Due to different error propagation, this breaks tests 051 and 087; fix their output. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 1423162705-32065-6-git-send-email-mreitz@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									80495fdf44
								
							
						
					
					
						commit
						e4342ce5a2
					
				
							
								
								
									
										94
									
								
								blockdev.c
									
									
									
									
									
								
							
							
						
						
									
										94
									
								
								blockdev.c
									
									
									
									
									
								
							| @ -354,13 +354,11 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, | ||||
|     ThrottleConfig cfg; | ||||
|     int snapshot = 0; | ||||
|     bool copy_on_read; | ||||
|     int ret; | ||||
|     Error *error = NULL; | ||||
|     QemuOpts *opts; | ||||
|     const char *id; | ||||
|     bool has_driver_specific_opts; | ||||
|     BlockdevDetectZeroesOptions detect_zeroes; | ||||
|     BlockDriver *drv = NULL; | ||||
| 
 | ||||
|     /* Check common options by copying from bs_opts to opts, all other options
 | ||||
|      * stay in bs_opts for processing by bdrv_open(). */ | ||||
| @ -426,11 +424,11 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, | ||||
|             goto early_err; | ||||
|         } | ||||
| 
 | ||||
|         drv = bdrv_find_format(buf); | ||||
|         if (!drv) { | ||||
|             error_setg(errp, "'%s' invalid format", buf); | ||||
|         if (qdict_haskey(bs_opts, "driver")) { | ||||
|             error_setg(errp, "Cannot specify both 'driver' and 'format'"); | ||||
|             goto early_err; | ||||
|         } | ||||
|         qdict_put(bs_opts, "driver", qstring_from_str(buf)); | ||||
|     } | ||||
| 
 | ||||
|     /* disk I/O throttling */ | ||||
| @ -505,13 +503,46 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, | ||||
|     } | ||||
| 
 | ||||
|     /* init */ | ||||
|     blk = blk_new_with_bs(qemu_opts_id(opts), errp); | ||||
|     if (!blk) { | ||||
|         goto early_err; | ||||
|     if ((!file || !*file) && !has_driver_specific_opts) { | ||||
|         blk = blk_new_with_bs(qemu_opts_id(opts), errp); | ||||
|         if (!blk) { | ||||
|             goto early_err; | ||||
|         } | ||||
| 
 | ||||
|         bs = blk_bs(blk); | ||||
|         bs->open_flags = snapshot ? BDRV_O_SNAPSHOT : 0; | ||||
|         bs->read_only = ro; | ||||
| 
 | ||||
|         QDECREF(bs_opts); | ||||
|     } else { | ||||
|         if (file && !*file) { | ||||
|             file = NULL; | ||||
|         } | ||||
| 
 | ||||
|         if (snapshot) { | ||||
|             /* always use cache=unsafe with snapshot */ | ||||
|             bdrv_flags &= ~BDRV_O_CACHE_MASK; | ||||
|             bdrv_flags |= (BDRV_O_SNAPSHOT|BDRV_O_CACHE_WB|BDRV_O_NO_FLUSH); | ||||
|         } | ||||
| 
 | ||||
|         if (copy_on_read) { | ||||
|             bdrv_flags |= BDRV_O_COPY_ON_READ; | ||||
|         } | ||||
| 
 | ||||
|         if (runstate_check(RUN_STATE_INMIGRATE)) { | ||||
|             bdrv_flags |= BDRV_O_INCOMING; | ||||
|         } | ||||
| 
 | ||||
|         bdrv_flags |= ro ? 0 : BDRV_O_RDWR; | ||||
| 
 | ||||
|         blk = blk_new_open(qemu_opts_id(opts), file, NULL, bs_opts, bdrv_flags, | ||||
|                            errp); | ||||
|         if (!blk) { | ||||
|             goto err_no_bs_opts; | ||||
|         } | ||||
|         bs = blk_bs(blk); | ||||
|     } | ||||
|     bs = blk_bs(blk); | ||||
|     bs->open_flags = snapshot ? BDRV_O_SNAPSHOT : 0; | ||||
|     bs->read_only = ro; | ||||
| 
 | ||||
|     bs->detect_zeroes = detect_zeroes; | ||||
| 
 | ||||
|     bdrv_set_on_error(bs, on_read_error, on_write_error); | ||||
| @ -522,53 +553,14 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts, | ||||
|         bdrv_set_io_limits(bs, &cfg); | ||||
|     } | ||||
| 
 | ||||
|     if (!file || !*file) { | ||||
|         if (has_driver_specific_opts) { | ||||
|             file = NULL; | ||||
|         } else { | ||||
|             QDECREF(bs_opts); | ||||
|             qemu_opts_del(opts); | ||||
|             return blk; | ||||
|         } | ||||
|     } | ||||
|     if (snapshot) { | ||||
|         /* always use cache=unsafe with snapshot */ | ||||
|         bdrv_flags &= ~BDRV_O_CACHE_MASK; | ||||
|         bdrv_flags |= (BDRV_O_SNAPSHOT|BDRV_O_CACHE_WB|BDRV_O_NO_FLUSH); | ||||
|     } | ||||
| 
 | ||||
|     if (copy_on_read) { | ||||
|         bdrv_flags |= BDRV_O_COPY_ON_READ; | ||||
|     } | ||||
| 
 | ||||
|     if (runstate_check(RUN_STATE_INMIGRATE)) { | ||||
|         bdrv_flags |= BDRV_O_INCOMING; | ||||
|     } | ||||
| 
 | ||||
|     bdrv_flags |= ro ? 0 : BDRV_O_RDWR; | ||||
| 
 | ||||
|     QINCREF(bs_opts); | ||||
|     ret = bdrv_open(&bs, file, NULL, bs_opts, bdrv_flags, drv, &error); | ||||
|     assert(bs == blk_bs(blk)); | ||||
| 
 | ||||
|     if (ret < 0) { | ||||
|         error_setg(errp, "could not open disk image %s: %s", | ||||
|                    file ?: blk_name(blk), error_get_pretty(error)); | ||||
|         error_free(error); | ||||
|         goto err; | ||||
|     } | ||||
| 
 | ||||
|     if (bdrv_key_required(bs)) { | ||||
|         autostart = 0; | ||||
|     } | ||||
| 
 | ||||
|     QDECREF(bs_opts); | ||||
| err_no_bs_opts: | ||||
|     qemu_opts_del(opts); | ||||
| 
 | ||||
|     return blk; | ||||
| 
 | ||||
| err: | ||||
|     blk_unref(blk); | ||||
| early_err: | ||||
|     qemu_opts_del(opts); | ||||
| err_no_opts: | ||||
|  | ||||
| @ -5,46 +5,46 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file='TEST_DIR | ||||
| === Unknown option === | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt= | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=on: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=1234: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,unknown_opt=foo: Block format 'qcow2' used by device 'ide0-hd0' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| 
 | ||||
| === Unknown protocol option === | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt= | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=: could not open disk image TEST_DIR/t.qcow2: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on: could not open disk image TEST_DIR/t.qcow2: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=on: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234: could not open disk image TEST_DIR/t.qcow2: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=1234: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo: could not open disk image TEST_DIR/t.qcow2: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,file.unknown_opt=foo: Block protocol 'file' doesn't support the option 'unknown_opt' | ||||
| 
 | ||||
| 
 | ||||
| === Invalid format === | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=foo | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=foo: 'foo' invalid format | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=foo: Unknown driver 'foo' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,driver=foo | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=foo: could not open disk image TEST_DIR/t.qcow2: Unknown driver 'foo' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=foo: Unknown driver 'foo' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2: could not open disk image TEST_DIR/t.qcow2: Driver specified twice | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,format=qcow2: Cannot specify both 'driver' and 'format' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2: could not open disk image TEST_DIR/t.qcow2: Driver specified twice | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=qcow2,format=qcow2: Cannot specify both 'driver' and 'format' | ||||
| 
 | ||||
| 
 | ||||
| === Overriding backing file === | ||||
| @ -58,13 +58,13 @@ ide0-hd0: TEST_DIR/t.qcow2 (qcow2) | ||||
| (qemu) q[K[Dqu[K[D[Dqui[K[D[D[Dquit[K | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig: could not open disk image TEST_DIR/t.qcow2: Driver doesn't support backing files | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,driver=raw,backing.file.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig: could not open disk image TEST_DIR/t.qcow2: Driver doesn't support backing files | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=file,file.backing.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig: could not open disk image TEST_DIR/t.qcow2: Driver doesn't support backing files | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.backing.driver=qcow2,file.backing.file.filename=TEST_DIR/t.qcow2.orig: Driver doesn't support backing files | ||||
| 
 | ||||
| 
 | ||||
| === Enable and disable lazy refcounting on the command line, plus some invalid values === | ||||
| @ -78,20 +78,20 @@ QEMU X.Y.Z monitor - type 'help' for more information | ||||
| (qemu) q[K[Dqu[K[D[Dqui[K[D[D[Dquit[K | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts= | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=42: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: could not open disk image TEST_DIR/t.qcow2: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=foo: Parameter 'lazy-refcounts' expects 'on' or 'off' | ||||
| 
 | ||||
| 
 | ||||
| === With version 2 images enabling lazy refcounts must fail === | ||||
| 
 | ||||
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on: could not open disk image TEST_DIR/t.qcow2: Lazy refcounts require a qcow2 image with at least qemu 1.1 compatibility level | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=on: Lazy refcounts require a qcow2 image with at least qemu 1.1 compatibility level | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,lazy-refcounts=off | ||||
| QEMU X.Y.Z monitor - type 'help' for more information | ||||
| @ -251,31 +251,31 @@ QEMU X.Y.Z monitor - type 'help' for more information | ||||
| (qemu) q[K[Dqu[K[D[Dqui[K[D[D[Dquit[K | ||||
| 
 | ||||
| Testing: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2 | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2: could not open disk image TEST_DIR/t.qcow2: Block format 'qcow2' used by device '' doesn't support the option 'filename' | ||||
| QEMU_PROG: -drive file=TEST_DIR/t.qcow2,file.driver=qcow2: Block format 'qcow2' used by device '' doesn't support the option 'filename' | ||||
| 
 | ||||
| 
 | ||||
| === Leaving out required options === | ||||
| 
 | ||||
| Testing: -drive driver=file | ||||
| QEMU_PROG: -drive driver=file: could not open disk image ide0-hd0: The 'file' block driver requires a file name | ||||
| QEMU_PROG: -drive driver=file: The 'file' block driver requires a file name | ||||
| 
 | ||||
| Testing: -drive driver=nbd | ||||
| QEMU_PROG: -drive driver=nbd: could not open disk image ide0-hd0: one of path and host must be specified. | ||||
| QEMU_PROG: -drive driver=nbd: one of path and host must be specified. | ||||
| 
 | ||||
| Testing: -drive driver=raw | ||||
| QEMU_PROG: -drive driver=raw: could not open disk image ide0-hd0: Can't use 'raw' as a block driver for the protocol level | ||||
| QEMU_PROG: -drive driver=raw: Can't use 'raw' as a block driver for the protocol level | ||||
| 
 | ||||
| Testing: -drive file.driver=file | ||||
| QEMU_PROG: -drive file.driver=file: could not open disk image ide0-hd0: The 'file' block driver requires a file name | ||||
| QEMU_PROG: -drive file.driver=file: The 'file' block driver requires a file name | ||||
| 
 | ||||
| Testing: -drive file.driver=nbd | ||||
| QEMU_PROG: -drive file.driver=nbd: could not open disk image ide0-hd0: one of path and host must be specified. | ||||
| QEMU_PROG: -drive file.driver=nbd: one of path and host must be specified. | ||||
| 
 | ||||
| Testing: -drive file.driver=raw | ||||
| QEMU_PROG: -drive file.driver=raw: could not open disk image ide0-hd0: Can't use 'raw' as a block driver for the protocol level | ||||
| QEMU_PROG: -drive file.driver=raw: Can't use 'raw' as a block driver for the protocol level | ||||
| 
 | ||||
| Testing: -drive foo=bar | ||||
| QEMU_PROG: -drive foo=bar: could not open disk image ide0-hd0: Must specify either driver or file | ||||
| QEMU_PROG: -drive foo=bar: Must specify either driver or file | ||||
| 
 | ||||
| 
 | ||||
| === Specifying both an option and its legacy alias === | ||||
| @ -326,13 +326,13 @@ QEMU_PROG: -drive file=TEST_DIR/t.qcow2,readonly=on,read-only=off: 'read-only' a | ||||
| === Parsing protocol from file name === | ||||
| 
 | ||||
| Testing: -hda foo:bar | ||||
| QEMU_PROG: -hda foo:bar: could not open disk image foo:bar: Unknown protocol 'foo' | ||||
| QEMU_PROG: -hda foo:bar: Unknown protocol 'foo' | ||||
| 
 | ||||
| Testing: -drive file=foo:bar | ||||
| QEMU_PROG: -drive file=foo:bar: could not open disk image foo:bar: Unknown protocol 'foo' | ||||
| QEMU_PROG: -drive file=foo:bar: Unknown protocol 'foo' | ||||
| 
 | ||||
| Testing: -drive file.filename=foo:bar | ||||
| QEMU_PROG: -drive file.filename=foo:bar: could not open disk image ide0-hd0: Could not open 'foo:bar': No such file or directory | ||||
| QEMU_PROG: -drive file.filename=foo:bar: Could not open 'foo:bar': No such file or directory | ||||
| 
 | ||||
| Testing: -hda file:TEST_DIR/t.qcow2 | ||||
| QEMU X.Y.Z monitor - type 'help' for more information | ||||
| @ -343,7 +343,7 @@ QEMU X.Y.Z monitor - type 'help' for more information | ||||
| (qemu) q[K[Dqu[K[D[Dqui[K[D[D[Dquit[K | ||||
| 
 | ||||
| Testing: -drive file.filename=file:TEST_DIR/t.qcow2 | ||||
| QEMU_PROG: -drive file.filename=file:TEST_DIR/t.qcow2: could not open disk image ide0-hd0: Could not open 'file:TEST_DIR/t.qcow2': No such file or directory | ||||
| QEMU_PROG: -drive file.filename=file:TEST_DIR/t.qcow2: Could not open 'file:TEST_DIR/t.qcow2': No such file or directory | ||||
| 
 | ||||
| 
 | ||||
| === Snapshot mode === | ||||
|  | ||||
| @ -21,9 +21,9 @@ QMP_VERSION | ||||
| {"return": {}} | ||||
| {"error": {"class": "GenericError", "desc": "Device with id 'disk' already exists"}} | ||||
| {"error": {"class": "GenericError", "desc": "Device name 'test-node' conflicts with an existing node name"}} | ||||
| {"error": {"class": "GenericError", "desc": "could not open disk image disk2: node-name=disk is conflicting with a device id"}} | ||||
| {"error": {"class": "GenericError", "desc": "could not open disk image disk2: Duplicate node name"}} | ||||
| {"error": {"class": "GenericError", "desc": "could not open disk image disk3: node-name=disk3 is conflicting with a device id"}} | ||||
| {"error": {"class": "GenericError", "desc": "node-name=disk is conflicting with a device id"}} | ||||
| {"error": {"class": "GenericError", "desc": "Duplicate node name"}} | ||||
| {"error": {"class": "GenericError", "desc": "node-name=disk3 is conflicting with a device id"}} | ||||
| {"return": {}} | ||||
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN"} | ||||
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": true}} | ||||
| @ -57,7 +57,7 @@ QMP_VERSION | ||||
| Testing: | ||||
| QMP_VERSION | ||||
| {"return": {}} | ||||
| {"error": {"class": "GenericError", "desc": "could not open disk image disk: Guest must be stopped for opening of encrypted image"}} | ||||
| {"error": {"class": "GenericError", "desc": "Guest must be stopped for opening of encrypted image"}} | ||||
| {"return": {}} | ||||
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN"} | ||||
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": true}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Max Reitz
						Max Reitz