Lines Matching +full:- +full:- +full:disable +full:- +full:replication

1 # -*- Mode: Python -*-
21 # @vm-state-size: size of the VM state
23 # @date-sec: UTC date of the snapshot in seconds
25 # @date-nsec: fractional part in nano seconds to be used with date-sec
27 # @vm-clock-sec: VM clock relative to boot in seconds
29 # @vm-clock-nsec: fractional part in nano seconds to be used with
30 # vm-clock-sec
33 # record/replay is enabled. Used for "time-traveling" to match
35 # counter may be obtained through `query-replay` command
41 'data': { 'id': 'str', 'name': 'str', 'vm-state-size': 'int',
42 'date-sec': 'int', 'date-nsec': 'int',
43 'vm-clock-sec': 'int', 'vm-clock-nsec': 'int',
71 # @data-file: the filename of the external data file that is stored in
75 # @data-file-raw: True if the external data file must stay valid as a
76 # standalone (read-only) raw image without looking at qcow2
79 # @extended-l2: true if the image has extended L2 entries; only valid
82 # @lazy-refcounts: on or off; only valid for compat >= 1.1
87 # @refcount-bits: width of a refcount entry in bits (since 2.3)
94 # @compression-type: the image cluster compression method (since 5.1)
101 '*data-file': 'str',
102 '*data-file-raw': 'bool',
103 '*extended-l2': 'bool',
104 '*lazy-refcounts': 'bool',
106 'refcount-bits': 'int',
109 'compression-type': 'Qcow2CompressionType'
115 # @create-type: The create type of VMDK image
119 # @parent-cid: Parent VMDK image's cid
127 'create-type': 'str',
129 'parent-cid': 'int',
142 # @virtual-size: Number of bytes covered by this extent
144 # @cluster-size: Cluster size in bytes (for non-flat extents)
154 'virtual-size': 'int',
155 '*cluster-size': 'int',
162 # @encryption-format: Image encryption format. If encryption is enabled for the
175 '*encryption-format': 'RbdImageEncryptionFormat'
181 # @extent-size-hint: Extent size hint (if available)
187 '*extent-size-hint': 'size'
287 # @virtual-size: maximum capacity in bytes of the image
289 # @actual-size: actual size on disk in bytes of the image
291 # @dirty-flag: true if image is not cleanly closed
293 # @cluster-size: size of a cluster in bytes
299 # @backing-filename: name of the backing file
301 # @full-backing-filename: full path of the backing file
303 # @backing-filename-format: the format of the backing file
307 # @format-specific: structure supplying additional format-specific
313 'data': {'filename': 'str', 'format': 'str', '*dirty-flag': 'bool',
314 '*actual-size': 'int', 'virtual-size': 'int',
315 '*cluster-size': 'int', '*encrypted': 'bool', '*compressed': 'bool',
316 '*backing-filename': 'str', '*full-backing-filename': 'str',
317 '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'],
318 '*format-specific': 'ImageInfoSpecific' } }
326 # @backing-image: info of the backing image
333 '*backing-image': 'ImageInfo'
380 # @check-errors: number of unexpected errors occurred during check
382 # @image-end-offset: offset (in bytes) where the image ends, this
389 # @corruptions-fixed: number of corruptions fixed during the check if
392 # @leaks-fixed: number of leaks fixed during the check if any
394 # @total-clusters: total number of clusters, this field is present if
397 # @allocated-clusters: total number of allocated clusters, this field
400 # @fragmented-clusters: total number of fragmented clusters, this
403 # @compressed-clusters: total number of compressed clusters, this
409 'data': {'filename': 'str', 'format': 'str', 'check-errors': 'int',
410 '*image-end-offset': 'int', '*corruptions': 'int', '*leaks': 'int',
411 '*corruptions-fixed': 'int', '*leaks-fixed': 'int',
412 '*total-clusters': 'int', '*allocated-clusters': 'int',
413 '*fragmented-clusters': 'int', '*compressed-clusters': 'int' } }
435 # file, ..., n - 1 = bottom image (where n is the number of images
463 # @no-flush: true if flush requests are ignored for the device
470 'no-flush': 'bool' } }
477 # @node-name: The name of the child's block driver node.
483 'node-name': 'str' } }
492 # @node-name: the name of the block driver node (Since 2.0)
494 # @ro: true if the backing device was open read-only
502 # 2.5: 'host_floppy' dropped 2.6: 'luks' added 2.8: 'replication'
505 # @backing_file: the name of the backing file (for copy-on-write)
578 # @dirty-bitmaps: dirty bitmaps information (only present if node has
584 'data': { 'file': 'str', 'node-name': 'str', 'ro': 'bool', 'drv': 'str',
599 'write_threshold': 'int', '*dirty-bitmaps': ['BlockDirtyInfo'] } }
610 # @nospace: The last I/O operation has failed due to a no-space
631 # @busy: true if the bitmap is in-use by some operation (NBD or jobs)
641 # it, use `block-dirty-bitmap-remove`. (Since 4.0)
655 # @in-use: This flag is set by any process actively modifying the
667 'data': ['in-use', 'auto'] }
706 # +------------------
736 # @io-status: `BlockDeviceIoStatus`. Only present if the device
738 # (supported device models: virtio-blk, IDE, SCSI except
739 # scsi-generic)
749 '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus' } }
769 # copying just allocated guest-visible contents.
771 # @fully-allocated: Image file size, in bytes, once data has been
772 # written to all sectors, when copying just guest-visible
775 # @bitmaps: Additional size required if all the top-level bitmap
783 'data': {'required': 'int', 'fully-allocated': 'int', '*bitmaps': 'int'} }
786 # @query-block:
795 # .. qmp-example::
797 # -> { "execute": "query-block" }
798 # <- {
801 # "io-status": "ok",
802 # "device":"ide0-hd0",
829 # "virtual-size":2048000,
831 # "full-backing-filename":"disks/base.qcow2",
832 # "backing-filename-format":"qcow2",
837 # "vm-state-size": 0,
838 # "date-sec": 10000200,
839 # "date-nsec": 12,
840 # "vm-clock-sec": 206,
841 # "vm-clock-nsec": 30
844 # "backing-image":{
847 # "virtual-size":2048000
855 # "io-status": "ok",
856 # "device":"ide1-cd0",
879 { 'command': 'query-block', 'returns': ['BlockInfo'],
880 'allow-preconfig': true }
1093 # @discard-nb-ok: The number of successful discard operations
1096 # @discard-nb-failed: The number of failed discard operations
1099 # @discard-bytes-ok: The number of bytes discarded by the driver.
1105 'discard-nb-ok': 'uint64',
1106 'discard-nb-failed': 'uint64',
1107 'discard-bytes-ok': 'uint64' } }
1114 # @completion-errors: The number of completion errors.
1116 # @aligned-accesses: The number of aligned accesses performed by the
1119 # @unaligned-accesses: The number of unaligned accesses performed by
1126 'completion-errors': 'uint64',
1127 'aligned-accesses': 'uint64',
1128 'unaligned-accesses': 'uint64' } }
1156 # @node-name: The node name of the device. (Since 2.3)
1163 # @driver-specific: Optional driver-specific stats. (Since 4.2)
1176 'data': {'*device': 'str', '*qdev': 'str', '*node-name': 'str',
1178 '*driver-specific': 'BlockStatsSpecific',
1183 # @query-blockstats:
1187 # @query-nodes: If true, the command will query all the block nodes
1190 # behavior is as before - query all the device backends,
1199 # .. qmp-example::
1201 # -> { "execute": "query-blockstats" }
1202 # <- {
1205 # "device":"ide0-hd0",
1243 # "device":"ide1-cd0",
1301 { 'command': 'query-blockstats',
1302 'data': { '*query-nodes': 'bool' },
1304 'allow-preconfig': true }
1363 # @on-success: The bitmap is only synced when the operation is
1368 # treated solely as a read-only manifest of blocks to copy.
1376 'data': ['on-success', 'never', 'always'] }
1386 # @write-blocking: when data is written to the source, write it
1393 'data': ['background', 'write-blocking'] }
1400 # @actively-synced: Whether the source is actively synced to the
1407 'data': { 'actively-synced': 'bool' } }
1412 # Information about a long-running block device operation.
1435 # @io-status: the status of the job (since 1.3)
1441 # @auto-finalize: Job will finalize itself when PENDING, moving to the
1444 # @auto-dismiss: Job will dismiss itself when CONCLUDED, and
1455 'io-status': 'BlockDeviceIoStatus', 'ready': 'bool',
1457 'auto-finalize': 'bool', 'auto-dismiss': 'bool',
1463 # @query-block-jobs:
1465 # Return information about long-running block device operations.
1471 { 'command': 'query-block-jobs', 'returns': ['BlockJobInfo'],
1472 'allow-preconfig': true }
1479 # Either @device or @node-name must be set but not both.
1483 # @node-name: graph node name to get the image resized (Since 2.0)
1488 # - If @device is not a valid block device, DeviceNotFound
1492 # .. qmp-example::
1494 # -> { "execute": "block_resize",
1496 # <- { "return": {} }
1500 '*node-name': 'str',
1503 'allow-preconfig': true }
1513 # @absolute-paths: QEMU should create a new image with absolute paths
1520 'data': [ 'existing', 'absolute-paths' ] }
1525 # Either @device or @node-name must be set but not both.
1529 # @node-name: graph node name to generate the snapshot from
1532 # @snapshot-file: the target of the new overlay image. If the file
1536 # @snapshot-node-name: the graph node name of the new image
1542 # 'absolute-paths'.
1545 'data': { '*device': 'str', '*node-name': 'str',
1546 'snapshot-file': 'str', '*snapshot-node-name': 'str',
1557 # "backing": null to `blockdev-add`).
1570 # @use-copy-range: Use copy offloading. Default false.
1572 # @max-workers: Maximum number of parallel requests for the sustained
1573 # background copying process. Doesn't influence copy-before-write
1576 # @max-chunk: Maximum request length for the sustained background
1577 # copying process. Doesn't influence copy-before-write
1578 # operations. 0 means unlimited. If max-chunk is non-zero then
1582 # @min-cluster-size: Minimum size of blocks used by copy-before-write
1590 'data': { '*use-copy-range': 'bool', '*max-workers': 'int',
1591 '*max-chunk': 'int64', '*min-cluster-size': 'size' } }
1596 # @job-id: identifier for the newly-created block job. If omitted,
1599 # @device: the device name or node-name of a root node which should be
1612 # (Since 2.4 (`drive-backup`), 3.1 (`blockdev-backup`))
1614 # @bitmap-mode: Specifies the type of data the bitmap should contain
1621 # @on-source-error: the action to take on an error on the source,
1623 # block device supports io-status (see `BlockInfo`).
1625 # @on-target-error: the action to take on an error on the target,
1629 # @on-cbw-error: policy defining behavior on I/O errors in
1630 # copy-before-write jobs; defaults to break-guest-write. (Since 10.1)
1632 # @auto-finalize: When false, this job will wait in a PENDING state
1633 # after it has finished its work, waiting for `job-finalize` before
1638 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
1640 # `job-dismiss`. When true, this job will automatically disappear
1643 # @filter-node-name: the node name that should be assigned to the
1648 # @discard-source: Discard blocks on source which have already been
1651 # @x-perf: Performance options. (Since 6.0)
1655 # @unstable: Member @x-perf is experimental.
1657 # .. note:: @on-source-error and @on-target-error only affect
1664 'data': { '*job-id': 'str', 'device': 'str',
1666 '*bitmap': 'str', '*bitmap-mode': 'BitmapSyncMode',
1668 '*on-source-error': 'BlockdevOnError',
1669 '*on-target-error': 'BlockdevOnError',
1670 '*on-cbw-error': 'OnCbwError',
1671 '*auto-finalize': 'bool', '*auto-dismiss': 'bool',
1672 '*filter-node-name': 'str',
1673 '*discard-source': 'bool',
1674 '*x-perf': { 'type': 'BackupPerf',
1688 # 'absolute-paths'.
1701 # @target: the device name or node-name of the backup target node.
1710 # @blockdev-snapshot-sync:
1715 # - If @device is not a valid block device, DeviceNotFound
1719 # .. qmp-example::
1721 # -> { "execute": "blockdev-snapshot-sync",
1722 # "arguments": { "device": "ide-hd0",
1723 # "snapshot-file":
1724 # "/some/place/my-image",
1726 # <- { "return": {} }
1728 { 'command': 'blockdev-snapshot-sync',
1730 'allow-preconfig': true }
1733 # @blockdev-snapshot:
1744 # @allow-write-only-overlay: If present, the check whether this
1746 # backing file of a destination of a `blockdev-mirror`. (since 5.0)
1750 # .. qmp-example::
1752 # -> { "execute": "blockdev-add",
1754 # "node-name": "node1534",
1759 # <- { "return": {} }
1761 # -> { "execute": "blockdev-snapshot",
1762 # "arguments": { "node": "ide-hd0",
1764 # <- { "return": {} }
1766 { 'command': 'blockdev-snapshot',
1768 'features': [ 'allow-write-only-overlay' ],
1769 'allow-preconfig': true }
1772 # @change-backing-file:
1776 # (it may, however, perform a reopen to change permissions from r/o ->
1777 # r/w -> r/o, if needed). The new backing file string is written into
1780 # @image-node-name: The name of the block driver state node of the
1782 # "image-node-name" is in the chain described by "device".
1784 # @device: The device name or node-name of the root node that owns
1785 # image-node-name.
1787 # @backing-file: The string to write as the backing file. This string
1792 # - If "device" does not exist or cannot be determined,
1797 { 'command': 'change-backing-file',
1798 'data': { 'device': 'str', 'image-node-name': 'str',
1799 'backing-file': 'str' },
1800 'allow-preconfig': true }
1803 # @block-commit:
1805 # Live commit of data from overlay image nodes into backing nodes -
1811 # `job-complete` command after getting the ready event. (Since 2.0)
1819 # @job-id: identifier for the newly-created block job. If omitted,
1822 # @device: the device name or node-name of a root node
1824 # @base-node: The node name of the backing image to write data into.
1828 # @base: Same as @base-node, except that it is a file name rather than
1833 # @top-node: The node name of the backing image within the image chain
1837 # @top: Same as @top-node, except that it is a file name rather than a
1842 # @backing-file: The backing file string to write into the overlay
1849 # QMP or HMP commands must use node-names for the image in
1857 # @backing-mask-protocol: If true, replace any protocol mentioned in
1864 # @on-error: the action to take on an error. 'ignore' means that the
1867 # @filter-node-name: the node name that should be assigned to the
1872 # @auto-finalize: When false, this job will wait in a PENDING state
1873 # after it has finished its work, waiting for `job-finalize` before
1878 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
1880 # `job-dismiss`. When true, this job will automatically disappear
1885 # @deprecated: Members @base and @top are deprecated. Use @base-node
1886 # and @top-node instead.
1889 # - If @device does not exist, DeviceNotFound
1893 # .. qmp-example::
1895 # -> { "execute": "block-commit",
1898 # <- { "return": {} }
1900 { 'command': 'block-commit',
1901 'data': { '*job-id': 'str', 'device': 'str', '*base-node': 'str',
1903 '*top-node': 'str',
1905 '*backing-file': 'str', '*backing-mask-protocol': 'bool',
1907 '*on-error': 'BlockdevOnError',
1908 '*filter-node-name': 'str',
1909 '*auto-finalize': 'bool', '*auto-dismiss': 'bool' },
1910 'allow-preconfig': true }
1913 # @drive-backup:
1915 # Start a point-in-time copy of a block device to a new destination.
1916 # The status of ongoing `drive-backup` operations can be checked with
1917 # `query-block-jobs` where the `BlockJobInfo`.type field has the value
1919 # using the `job-cancel` or `block-job-cancel` command.
1923 # @deprecated: This command is deprecated. Use `blockdev-backup`
1927 # - If @device is not a valid block device, GenericError
1931 # .. qmp-example::
1933 # -> { "execute": "drive-backup",
1937 # <- { "return": {} }
1939 { 'command': 'drive-backup', 'boxed': true,
1941 'allow-preconfig': true }
1944 # @blockdev-backup:
1946 # Start a point-in-time copy of a block device to a new destination.
1947 # The status of ongoing `blockdev-backup` operations can be checked with
1948 # `query-block-jobs` where the `BlockJobInfo`.type field has the value
1950 # using the `job-cancel` or `block-job-cancel` command.
1953 # - If @device is not a valid block device, DeviceNotFound
1957 # .. qmp-example::
1959 # -> { "execute": "blockdev-backup",
1960 # "arguments": { "device": "src-id",
1962 # "target": "tgt-id" } }
1963 # <- { "return": {} }
1965 { 'command': 'blockdev-backup', 'boxed': true,
1967 'allow-preconfig': true }
1970 # @query-named-block-nodes:
1974 # @flat: Omit the nested data about backing image ("backing-image"
1979 # .. qmp-example::
1981 # -> { "execute": "query-named-block-nodes" }
1982 # <- { "return": [ { "ro":false,
1986 # "node-name": "my-node",
2006 # "virtual-size":2048000,
2008 # "full-backing-filename":"disks/base.qcow2",
2009 # "backing-filename-format":"qcow2",
2014 # "vm-state-size": 0,
2015 # "date-sec": 10000200,
2016 # "date-nsec": 12,
2017 # "vm-clock-sec": 206,
2018 # "vm-clock-nsec": 30
2021 # "backing-image":{
2024 # "virtual-size":2048000
2028 { 'command': 'query-named-block-nodes',
2031 'allow-preconfig': true }
2036 # @block-backend: corresponds to BlockBackend
2038 # @block-job: corresponds to BlockJob
2040 # @block-driver: corresponds to BlockDriverState
2045 'data': [ 'block-backend', 'block-job', 'block-driver' ] }
2051 # `x-debug-query-block-graph` and does not relate to any other
2054 # @type: Type of graph node. Can be one of block-backend, block-job
2055 # or block-driver-state.
2057 # @name: Human readable name of the node. Corresponds to node-name
2058 # for block-driver-state nodes; is not guaranteed to be unique in
2059 # the whole graph (with block-jobs and block-backends).
2071 # @consistent-read: A user that has the "permission" of consistent
2073 # device is complete and self-consistent, representing the
2082 # @write-unchanged: This permission (which is weaker than
2095 'data': [ 'consistent-read', 'write', 'write-unchanged', 'resize' ] }
2100 # Block Graph edge description for `x-debug-query-block-graph`.
2110 # @shared-perm: permissions that can still be granted to other users
2118 'shared-perm': [ 'BlockPermission' ] } }
2123 # Block Graph - list of nodes and list of edges.
2131 # @x-debug-query-block-graph:
2141 { 'command': 'x-debug-query-block-graph', 'returns': 'XDbgBlockGraph',
2143 'allow-preconfig': true }
2146 # @drive-mirror:
2156 # - If @device is not a valid block device, GenericError
2160 # .. qmp-example::
2162 # -> { "execute": "drive-mirror",
2163 # "arguments": { "device": "ide-hd0",
2164 # "target": "/some/place/my-image",
2167 # <- { "return": {} }
2169 { 'command': 'drive-mirror', 'boxed': true,
2171 'allow-preconfig': true }
2178 # @job-id: identifier for the newly-created block job. If omitted,
2181 # @device: the device name or node-name of a root node whose writes
2191 # @node-name: the new block driver state node name in the graph
2200 # 'absolute-paths'.
2213 # @buf-size: maximum amount of data in flight from source to target
2216 # @on-source-error: the action to take on an error on the source,
2218 # block device supports io-status (see `BlockInfo`).
2220 # @on-target-error: the action to take on an error on the target,
2230 # @copy-mode: when to copy data to the destination; defaults to
2233 # @auto-finalize: When false, this job will wait in a PENDING state
2234 # after it has finished its work, waiting for `job-finalize` before
2239 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
2241 # `job-dismiss`. When true, this job will automatically disappear
2247 'data': { '*job-id': 'str', 'device': 'str', 'target': 'str',
2248 '*format': 'str', '*node-name': 'str', '*replaces': 'str',
2251 '*buf-size': 'int', '*on-source-error': 'BlockdevOnError',
2252 '*on-target-error': 'BlockdevOnError',
2253 '*unmap': 'bool', '*copy-mode': 'MirrorCopyMode',
2254 '*auto-finalize': 'bool', '*auto-dismiss': 'bool' } }
2276 # `block-dirty-bitmap-add`
2281 # for `block-dirty-bitmap-add`. (Since: 2.10)
2285 # with `block-dirty-bitmap-enable`. Default is false. (Since: 4.0)
2325 # @block-dirty-bitmap-add:
2331 # - If @node is not a valid block device or node, DeviceNotFound
2332 # - If @name is already taken, GenericError
2336 # .. qmp-example::
2338 # -> { "execute": "block-dirty-bitmap-add",
2340 # <- { "return": {} }
2342 { 'command': 'block-dirty-bitmap-add',
2344 'allow-preconfig': true }
2347 # @block-dirty-bitmap-remove:
2350 # with `block-dirty-bitmap-add`. If the bitmap is persistent, remove it
2354 # - If @node is not a valid block device or node, DeviceNotFound
2355 # - If @name is not found, GenericError
2356 # - if @name is frozen by an operation, GenericError
2360 # .. qmp-example::
2362 # -> { "execute": "block-dirty-bitmap-remove",
2364 # <- { "return": {} }
2366 { 'command': 'block-dirty-bitmap-remove',
2368 'allow-preconfig': true }
2371 # @block-dirty-bitmap-clear:
2378 # - If @node is not a valid block device, DeviceNotFound
2379 # - If @name is not found, GenericError
2383 # .. qmp-example::
2385 # -> { "execute": "block-dirty-bitmap-clear",
2387 # <- { "return": {} }
2389 { 'command': 'block-dirty-bitmap-clear',
2391 'allow-preconfig': true }
2394 # @block-dirty-bitmap-enable:
2399 # - If @node is not a valid block device, DeviceNotFound
2400 # - If @name is not found, GenericError
2404 # .. qmp-example::
2406 # -> { "execute": "block-dirty-bitmap-enable",
2408 # <- { "return": {} }
2410 { 'command': 'block-dirty-bitmap-enable',
2412 'allow-preconfig': true }
2415 # @block-dirty-bitmap-disable:
2420 # - If @node is not a valid block device, DeviceNotFound
2421 # - If @name is not found, GenericError
2425 # .. qmp-example::
2427 # -> { "execute": "block-dirty-bitmap-disable",
2429 # <- { "return": {} }
2431 { 'command': 'block-dirty-bitmap-disable',
2433 'allow-preconfig': true }
2436 # @block-dirty-bitmap-merge:
2449 # - If @node is not a valid block device, DeviceNotFound
2450 # - If any bitmap in @bitmaps or @target is not found,
2452 # - If any of the bitmaps have different sizes or granularities,
2457 # .. qmp-example::
2459 # -> { "execute": "block-dirty-bitmap-merge",
2462 # <- { "return": {} }
2464 { 'command': 'block-dirty-bitmap-merge',
2466 'allow-preconfig': true }
2481 # @x-debug-block-dirty-bitmap-sha256:
2490 # - If @node is not a valid block device, DeviceNotFound
2491 # - If @name is not found or if hashing has failed, GenericError
2495 { 'command': 'x-debug-block-dirty-bitmap-sha256',
2498 'allow-preconfig': true }
2501 # @blockdev-mirror:
2505 # @job-id: identifier for the newly-created block job. If omitted,
2508 # @device: The device name or node-name of a root node whose writes
2511 # @target: the id or node-name of the block device to mirror to. This
2530 # @buf-size: maximum amount of data in flight from source to target
2532 # @on-source-error: the action to take on an error on the source,
2534 # block device supports io-status (see `BlockInfo`).
2536 # @on-target-error: the action to take on an error on the target,
2540 # @filter-node-name: the node name that should be assigned to the
2545 # @copy-mode: when to copy data to the destination; defaults to
2548 # @auto-finalize: When false, this job will wait in a PENDING state
2549 # after it has finished its work, waiting for `job-finalize` before
2554 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
2556 # `job-dismiss`. When true, this job will automatically disappear
2559 # @target-is-zero: Assume the destination reads as all zeroes before
2566 # .. qmp-example::
2568 # -> { "execute": "blockdev-mirror",
2569 # "arguments": { "device": "ide-hd0",
2572 # <- { "return": {} }
2574 { 'command': 'blockdev-mirror',
2575 'data': { '*job-id': 'str', 'device': 'str', 'target': 'str',
2579 '*buf-size': 'int', '*on-source-error': 'BlockdevOnError',
2580 '*on-target-error': 'BlockdevOnError',
2581 '*filter-node-name': 'str',
2582 '*copy-mode': 'MirrorCopyMode',
2583 '*auto-finalize': 'bool', '*auto-dismiss': 'bool',
2584 '*target-is-zero': 'bool'},
2585 'allow-preconfig': true }
2679 # @iops-total: limit total I/O operations per second
2681 # @iops-total-max: I/O operations burst
2683 # @iops-total-max-length: length of the iops-total-max burst period,
2684 # in seconds. It must only be set if @iops-total-max is set as
2687 # @iops-read: limit read operations per second
2689 # @iops-read-max: I/O operations read burst
2691 # @iops-read-max-length: length of the iops-read-max burst period, in
2692 # seconds. It must only be set if @iops-read-max is set as well.
2694 # @iops-write: limit write operations per second
2696 # @iops-write-max: I/O operations write burst
2698 # @iops-write-max-length: length of the iops-write-max burst period,
2699 # in seconds. It must only be set if @iops-write-max is set as
2702 # @bps-total: limit total bytes per second
2704 # @bps-total-max: total bytes burst
2706 # @bps-total-max-length: length of the bps-total-max burst period, in
2707 # seconds. It must only be set if @bps-total-max is set as well.
2709 # @bps-read: limit read bytes per second
2711 # @bps-read-max: total bytes read burst
2713 # @bps-read-max-length: length of the bps-read-max burst period, in
2714 # seconds. It must only be set if @bps-read-max is set as well.
2716 # @bps-write: limit write bytes per second
2718 # @bps-write-max: total bytes write burst
2720 # @bps-write-max-length: length of the bps-write-max burst period, in
2721 # seconds. It must only be set if @bps-write-max is set as well.
2723 # @iops-size: when limiting by iops max size of an I/O in bytes
2728 'data': { '*iops-total' : 'int', '*iops-total-max' : 'int',
2729 '*iops-total-max-length' : 'int', '*iops-read' : 'int',
2730 '*iops-read-max' : 'int', '*iops-read-max-length' : 'int',
2731 '*iops-write' : 'int', '*iops-write-max' : 'int',
2732 '*iops-write-max-length' : 'int', '*bps-total' : 'int',
2733 '*bps-total-max' : 'int', '*bps-total-max-length' : 'int',
2734 '*bps-read' : 'int', '*bps-read-max' : 'int',
2735 '*bps-read-max-length' : 'int', '*bps-write' : 'int',
2736 '*bps-write-max' : 'int', '*bps-write-max-length' : 'int',
2737 '*iops-size' : 'int' } }
2742 # Properties for throttle-group objects.
2748 # @unstable: All members starting with x- are aliases for the same key
2749 # without x- in the @limits object. This is not a stable
2757 '*x-iops-total': { 'type': 'int',
2759 '*x-iops-total-max': { 'type': 'int',
2761 '*x-iops-total-max-length': { 'type': 'int',
2763 '*x-iops-read': { 'type': 'int',
2765 '*x-iops-read-max': { 'type': 'int',
2767 '*x-iops-read-max-length': { 'type': 'int',
2769 '*x-iops-write': { 'type': 'int',
2771 '*x-iops-write-max': { 'type': 'int',
2773 '*x-iops-write-max-length': { 'type': 'int',
2775 '*x-bps-total': { 'type': 'int',
2777 '*x-bps-total-max': { 'type': 'int',
2779 '*x-bps-total-max-length': { 'type': 'int',
2781 '*x-bps-read': { 'type': 'int',
2783 '*x-bps-read-max': { 'type': 'int',
2785 '*x-bps-read-max-length': { 'type': 'int',
2787 '*x-bps-write': { 'type': 'int',
2789 '*x-bps-write-max': { 'type': 'int',
2791 '*x-bps-write-max-length': { 'type': 'int',
2793 '*x-iops-size': { 'type': 'int',
2797 # @block-stream:
2804 # streaming operations can be checked with `query-block-jobs`. The
2806 # `job-cancel` or `block-job-cancel` command.
2812 # node; presence of the 'base-node' parameter during introspection can
2827 # In case @device is a filter node, `block-stream` modifies the first
2828 # non-filter overlay node below it to point to the new backing node
2831 # @job-id: identifier for the newly-created block job. If omitted,
2836 # @base: the common backing file name. It cannot be set if @base-node
2839 # @base-node: the node name of the backing file. It cannot be set if
2843 # top. It cannot be set if @base or @base-node is also set. It
2846 # @backing-file: The backing file string to write into the top image.
2851 # node-names for the image in question, as filename lookup methods
2859 # @backing-mask-protocol: If true, replace any protocol mentioned in
2866 # @on-error: the action to take on an error (default report). 'stop'
2868 # io-status (see `BlockInfo`). (Since 1.3)
2870 # @filter-node-name: the node name that should be assigned to the
2875 # @auto-finalize: When false, this job will wait in a PENDING state
2876 # after it has finished its work, waiting for `job-finalize` before
2881 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
2883 # `job-dismiss`. When true, this job will automatically disappear
2887 # - If @device does not exist, DeviceNotFound.
2891 # .. qmp-example::
2893 # -> { "execute": "block-stream",
2896 # <- { "return": {} }
2898 { 'command': 'block-stream',
2899 'data': { '*job-id': 'str', 'device': 'str', '*base': 'str',
2900 '*base-node': 'str', '*backing-file': 'str',
2901 '*backing-mask-protocol': 'bool',
2903 '*speed': 'int', '*on-error': 'BlockdevOnError',
2904 '*filter-node-name': 'str',
2905 '*auto-finalize': 'bool', '*auto-dismiss': 'bool' },
2906 'allow-preconfig': true }
2909 # @block-job-set-speed:
2925 # - If no background operation is active on this device,
2930 { 'command': 'block-job-set-speed',
2932 'allow-preconfig': true }
2935 # @block-job-cancel:
2945 # visible when enumerated using `query-block-jobs`.
2947 # Note that if you issue `block-job-cancel` after `drive-mirror` has
2951 # mirroring has ended and the destination now has a point-in-time copy
2969 # - If no background operation is active on this device,
2974 { 'command': 'block-job-cancel', 'data': { 'device': 'str', '*force': 'bool' },
2975 'allow-preconfig': true }
2978 # @block-job-pause:
2997 # @deprecated: This command is deprecated. Use `job-pause`
3001 # - If no background operation is active on this device,
3006 { 'command': 'block-job-pause', 'data': { 'device': 'str' },
3008 'allow-preconfig': true }
3011 # @block-job-resume:
3026 # @deprecated: This command is deprecated. Use `job-resume`
3030 # - If no background operation is active on this device,
3035 { 'command': 'block-job-resume', 'data': { 'device': 'str' },
3037 'allow-preconfig': true }
3040 # @block-job-complete:
3047 # mirroring includes `drive-mirror`, `blockdev-mirror` and `block-commit`
3066 # @deprecated: This command is deprecated. Use `job-complete`
3070 # - If no background operation is active on this device,
3075 { 'command': 'block-job-complete', 'data': { 'device': 'str' },
3077 'allow-preconfig': true }
3080 # @block-job-dismiss:
3085 # for jobs that have @auto-dismiss option, which are `drive-backup`,
3086 # `blockdev-backup`, `drive-mirror`, `blockdev-mirror`, `block-commit` and
3087 # `block-stream`. @auto-dismiss is enabled by default for these
3092 # the `BLOCK_JOB_READY` event, `job-cancel`, `block-job-cancel` or
3093 # `job-complete` will still need to be used as appropriate.
3099 # @deprecated: This command is deprecated. Use `job-dismiss`
3104 { 'command': 'block-job-dismiss', 'data': { 'id': 'str' },
3106 'allow-preconfig': true }
3109 # @block-job-finalize:
3120 # The command is applicable only to jobs which have @auto-finalize option
3127 # @deprecated: This command is deprecated. Use `job-finalize`
3132 { 'command': 'block-job-finalize', 'data': { 'id': 'str' },
3134 'allow-preconfig': true }
3139 # @copy-mode: Switch to this copy mode. Currently, only the switch
3140 # from 'background' to 'write-blocking' is implemented.
3145 'data': { 'copy-mode' : 'MirrorCopyMode' } }
3164 # @block-job-change:
3170 { 'command': 'block-job-change',
3227 # Includes cache-related options for block devices
3232 # @no-flush: ignore any flush requests for the device (default: false)
3238 '*no-flush': 'bool' } }
3249 # @copy-on-read: Since 3.0
3257 # @copy-before-write: Since 6.2
3259 # @snapshot-access: Since 7.0
3270 'cloop', 'compress', 'copy-before-write', 'copy-on-read', 'dmg',
3271 'file', 'snapshot-access', 'ftp', 'ftps',
3278 'luks', 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme',
3279 { 'name': 'nvme-io_uring', 'if': 'CONFIG_BLKIO' },
3282 { 'name': 'replication', 'if': 'CONFIG_REPLICATION' },
3284 { 'name': 'virtio-blk-vfio-pci', 'if': 'CONFIG_BLKIO' },
3285 { 'name': 'virtio-blk-vhost-user', 'if': 'CONFIG_BLKIO' },
3286 { 'name': 'virtio-blk-vhost-vdpa', 'if': 'CONFIG_BLKIO' },
3296 # @pr-manager: the id for the object that will handle persistent
3302 # @aio-max-batch: maximum number of requests to batch together into a
3304 # between this and the aio-max-batch value of the IOThread object
3312 # @drop-cache: invalidate page cache during live migration. This
3317 # @x-check-cache-dropped: whether to check that page cache was dropped
3324 # @dynamic-auto-read-only: If present, enabled auto-read-only means
3325 # that the driver will open the image read-only at first,
3326 # dynamically reopen the image file read-write when the first
3327 # writer is attached to the node and reopen read-only when the
3332 # @unstable: Member x-check-cache-dropped is meant for debugging.
3338 '*pr-manager': 'str',
3341 '*aio-max-batch': 'int',
3342 '*drop-cache': {'type': 'bool',
3344 '*x-check-cache-dropped': { 'type': 'bool',
3346 'features': [ { 'name': 'dynamic-auto-read-only',
3356 # @latency-ns: emulated latency (in nanoseconds) in processing
3360 # @read-zeroes: if true, reads from the device produce zeroes; if
3367 'data': { '*size': 'int', '*latency-ns': 'uint64', '*read-zeroes': 'bool' } }
3394 # @fat-type: FAT type: 12, 16 or 32
3409 'data': { 'dir': 'str', '*fat-type': 'int', '*floppy': 'bool',
3430 # @key-secret: the ID of a QCryptoSecret object providing the
3431 # decryption key. Mandatory except when doing a metadata-only
3440 'data': { '*key-secret': 'str',
3491 # @main-header: Qcow2 format header
3493 # @active-l1: Qcow2 active L1 table
3495 # @active-l2: Qcow2 active L2 table
3497 # @refcount-table: Qcow2 refcount table
3499 # @refcount-block: Qcow2 refcount blocks
3501 # @snapshot-table: Qcow2 snapshot table
3503 # @inactive-l1: Qcow2 inactive L1 tables
3505 # @inactive-l2: Qcow2 inactive L2 tables
3507 # @bitmap-directory: Qcow2 bitmap directory (since 3.0)
3513 '*main-header': 'bool',
3514 '*active-l1': 'bool',
3515 '*active-l2': 'bool',
3516 '*refcount-table': 'bool',
3517 '*refcount-block': 'bool',
3518 '*snapshot-table': 'bool',
3519 '*inactive-l1': 'bool',
3520 '*inactive-l2': 'bool',
3521 '*bitmap-directory': 'bool' } }
3543 # @aes: AES-CBC with plain64 initialization vectors
3568 # except when doing a metadata-only probe of the image.
3579 # @aes: AES-CBC with plain64 initialization vectors
3605 # @prealloc-align: on preallocation, align file length to this number,
3608 # @prealloc-size: how much to preallocate, default 134217728 (128M)
3614 'data': { '*prealloc-align': 'int', '*prealloc-size': 'int' } }
3621 # @lazy-refcounts: whether to enable the lazy refcounts feature
3624 # @pass-discard-request: whether discard requests to the qcow2 device
3627 # @pass-discard-snapshot: whether discard requests for the data source
3631 # @pass-discard-other: whether discard requests for the data source
3634 # @discard-no-unref: when enabled, data clusters will remain
3638 # image file) depends on the setting of the pass-discard-request
3641 # re-allocating them later. Besides potential performance
3649 # @overlap-check: which overlap checks to perform for writes to the
3652 # @cache-size: the maximum total size of the L2 table and refcount
3655 # @l2-cache-size: the maximum size of the L2 table cache in bytes
3658 # @l2-cache-entry-size: the size of each entry in the L2 cache in
3662 # @refcount-cache-size: the maximum size of the refcount block cache
3665 # @cache-clean-interval: clean unused entries in the L2 and refcount
3671 # except when doing a metadata-only probe of the image.
3674 # @data-file: reference to or definition of the external data file.
3683 'data': { '*lazy-refcounts': 'bool',
3684 '*pass-discard-request': 'bool',
3685 '*pass-discard-snapshot': 'bool',
3686 '*pass-discard-other': 'bool',
3687 '*discard-no-unref': 'bool',
3688 '*overlap-check': 'Qcow2OverlapChecks',
3689 '*cache-size': 'int',
3690 '*l2-cache-size': 'int',
3691 '*l2-cache-entry-size': 'int',
3692 '*refcount-cache-size': 'int',
3693 '*cache-clean-interval': 'int',
3695 '*data-file': 'BlockdevRef' } }
3759 # @host-key-check: Defines how and what to check the host key against
3768 '*host-key-check': 'SshHostKeyCheck' } }
3780 # @cor_write: a write due to copy-on-read (since 2.11)
3816 # @write-zeroes: .bdrv_co_pwrite_zeroes()
3822 # @block-status: .bdrv_co_block_status()
3827 'data': [ 'read', 'write', 'write-zeroes', 'discard', 'flush',
3828 'block-status' ] }
3841 # injected; defaults to "all read, write, write-zeroes, discard,
3868 # Describes a single state-change event for blkdebug.
3897 # @max-transfer: maximum size for I/O transfers in bytes, must be
3902 # @opt-write-zero: preferred alignment for write zero requests in
3907 # @max-write-zero: maximum size for write zero requests in bytes, must
3908 # be positive multiple of @align, of @opt-write-zero, and of the
3912 # @opt-discard: preferred alignment for discard requests in bytes,
3917 # @max-discard: maximum size for discard requests in bytes, must be
3918 # positive multiple of @align, of @opt-discard, and of the
3922 # @inject-error: array of error injection descriptions
3924 # @set-state: array of state-change descriptions
3926 # @take-child-perms: Permissions to take on @image in addition to what
3930 # @unshare-child-perms: Permissions not to share on @image in addition
3939 '*align': 'int', '*max-transfer': 'int32',
3940 '*opt-write-zero': 'int32', '*max-write-zero': 'int32',
3941 '*opt-discard': 'int32', '*max-discard': 'int32',
3942 '*inject-error': ['BlkdebugInjectErrorOptions'],
3943 '*set-state': ['BlkdebugSetStateOptions'],
3944 '*take-child-perms': ['BlockPermission'],
3945 '*unshare-child-perms': ['BlockPermission'] } }
3956 # @log-sector-size: sector size used in logging writes to @file,
3960 # @log-append: append to an existing log (default: false)
3962 # @log-super-update-interval: interval of write requests after which
3970 '*log-sector-size': 'uint32',
3971 '*log-append': 'bool',
3972 '*log-super-update-interval': 'uint64' } }
4024 # @vote-threshold: the vote limit under which a read will fail
4026 # @rewrite-corrupted: rewrite corrupted data when quorum is reached
4029 # @read-pattern: choose read pattern and set to quorum by default
4037 'vote-threshold': 'int',
4038 '*rewrite-corrupted': 'bool',
4039 '*read-pattern': 'QuorumReadPattern' } }
4081 # Driver specific block device options for the nvme-io_uring backend.
4095 # Driver specific block device options for the virtio-blk-vfio-pci
4110 # Driver specific block device options for the virtio-blk-vhost-user
4113 # @path: path to the vhost-user UNIX domain socket.
4124 # Driver specific block device options for the virtio-blk-vhost-vdpa
4127 # @path: path to the vhost-vdpa character device.
4161 'data': [ 'crc32c', 'none', 'crc32c-none', 'none-crc32c' ] }
4179 # @password-secret: The ID of a QCryptoSecret object providing the
4183 # @initiator-name: The iqn name we want to identify to the target as.
4187 # @header-digest: The desired header digest. Defaults to none-crc32c.
4200 '*password-secret': 'str',
4201 '*initiator-name': 'str',
4202 '*header-digest': 'IscsiHeaderDigest',
4216 # @luks-any: Used for opening either luks or luks2 (Since 8.0)
4221 'data': [ 'luks', 'luks2', 'luks-any' ] }
4226 # @key-secret: ID of a QCryptoSecret object providing a passphrase for
4232 'data': { 'key-secret': 'str' } }
4237 # @cipher-alg: The encryption algorithm
4243 'data': { '*cipher-alg': 'QCryptoCipherAlgo' } }
4308 'luks-any': 'RbdEncryptionOptionsLUKSAny'} }
4341 # @auth-client-required: Acceptable authentication modes. This maps
4345 # @key-secret: ID of a QCryptoSecret object providing a key for cephx
4362 '*auth-client-required': ['RbdAuthMode'],
4363 '*key-secret': 'str',
4369 # An enumeration of replication modes.
4385 # Driver specific block device options for replication
4387 # @mode: the replication mode
4389 # @top-id: In secondary mode, node name or device ID of the root node
4390 # who owns the replication node chain. Must not be given in
4398 '*top-id': 'str' },
4443 # @tcp-syn-count: number of SYNs during the session establishment
4446 # @readahead-size: set the readahead size in bytes (defaults to libnfs
4449 # @page-cache-size: set the pagecache size in bytes (defaults to
4461 '*tcp-syn-count': 'int',
4462 '*readahead-size': 'int',
4463 '*page-cache-size': 'int',
4474 # @readahead: Size of the read-ahead cache; must be a multiple of 512
4481 # @password-secret: ID of a QCryptoSecret object providing a password
4484 # @proxy-username: Username for proxy authentication (defaults to
4487 # @proxy-password-secret: ID of a QCryptoSecret object providing a
4497 '*password-secret': 'str',
4498 '*proxy-username': 'str',
4499 '*proxy-password-secret': 'str' } }
4511 # @cookie-secret: ID of a QCryptoSecret object providing the cookie
4519 '*cookie-secret': 'str'} }
4534 # @cookie-secret: ID of a QCryptoSecret object providing the cookie
4543 '*cookie-secret': 'str'} }
4581 # @tls-creds: TLS credentials ID
4583 # @tls-hostname: TLS hostname override for certificate validation
4586 # @x-dirty-bitmap: A metadata context name such as
4587 # "qemu:dirty-bitmap:NAME" or "qemu:allocation-depth" to query in
4590 # this option x-context would have made more sense) (since 3.0)
4592 # @reconnect-delay: On an unexpected disconnect, the nbd client tries
4594 # error. During the first @reconnect-delay seconds, all requests
4600 # @open-timeout: In seconds. If zero, the nbd driver tries the
4602 # If non-zero, the nbd driver will repeat connection attempts
4603 # until successful or until @open-timeout seconds have elapsed.
4608 # @unstable: Member @x-dirty-bitmap is experimental.
4615 '*tls-creds': 'str',
4616 '*tls-hostname': 'str',
4617 '*x-dirty-bitmap': { 'type': 'str', 'features': [ 'unstable' ] },
4618 '*reconnect-delay': 'uint32',
4619 '*open-timeout': 'uint32' } }
4641 # @throttle-group: the name of the throttle-group object to use. It
4649 'data': { 'throttle-group': 'str',
4656 # Driver specific block device options for the copy-on-read driver.
4658 # @bottom: The name of a non-filter node (allocation-bearing layer)
4673 # An enumeration of possible behaviors for copy-before-write operation
4676 # @break-guest-write: report the error to the guest. This way, the
4680 # @break-snapshot: continue guest write. Doing so will make the
4687 'data': [ 'break-guest-write', 'break-snapshot' ] }
4692 # Driver specific block device options for the copy-before-write
4693 # driver, which does so called copy-before-write operations: when data
4700 # @target: The target for copy-before-write operations.
4702 # @bitmap: If specified, copy-before-write filter will do
4703 # copy-before-write operations only for dirty regions of the
4710 # @on-cbw-error: Behavior on failure of copy-before-write operation.
4711 # Default is @break-guest-write. (Since 7.1)
4713 # @cbw-timeout: Zero means no limit. Non-zero sets the timeout in
4714 # seconds for copy-before-write operation. When a timeout occurs,
4715 # the respective copy-before-write operation will fail, and the
4716 # @on-cbw-error parameter will decide how this failure is handled.
4719 # @min-cluster-size: Minimum size of blocks used by copy-before-write
4729 '*on-cbw-error': 'OnCbwError', '*cbw-timeout': 'uint32',
4730 '*min-cluster-size': 'size' } }
4740 # @node-name: the node name of the new node. This option is required
4741 # on the top level of `blockdev-add`. Valid node names start with
4743 # characters, '-', '.' and '_'. Their maximum length is 31
4746 # @discard: discard-related options (default: ignore)
4748 # @cache: cache-related options
4755 # @read-only: whether the block device should be read-only (default:
4756 # false). Note that some block drivers support only read-only
4761 # @auto-read-only: if true and @read-only is false, QEMU may
4762 # automatically decide not to open the image read-write as
4763 # requested, but fall back to read-only instead (and switch
4768 # @detect-zeroes: detect and optimize zero writes (Since 2.1)
4771 # @force-share: force share all permission on added nodes. Requires
4772 # read-only=true. (Since 2.10)
4778 '*node-name': 'str',
4782 '*read-only': 'bool',
4783 '*auto-read-only': 'bool',
4784 '*force-share': 'bool',
4785 '*detect-zeroes': 'BlockdevDetectZeroesOptions' },
4795 'copy-before-write':'BlockdevOptionsCbw',
4796 'copy-on-read':'BlockdevOptionsCor',
4814 'null-aio': 'BlockdevOptionsNull',
4815 'null-co': 'BlockdevOptionsNull',
4817 'nvme-io_uring': { 'type': 'BlockdevOptionsNvmeIoUring',
4827 'replication': { 'type': 'BlockdevOptionsReplication',
4829 'snapshot-access': 'BlockdevOptionsGenericFormat',
4834 'virtio-blk-vfio-pci':
4837 'virtio-blk-vhost-user':
4840 'virtio-blk-vhost-vdpa':
4884 # @blockdev-add:
4890 # .. qmp-example::
4892 # -> { "execute": "blockdev-add",
4895 # "node-name": "test1",
4902 # <- { "return": {} }
4904 # .. qmp-example::
4906 # -> { "execute": "blockdev-add",
4909 # "node-name": "node0",
4928 # <- { "return": {} }
4930 { 'command': 'blockdev-add', 'data': 'BlockdevOptions', 'boxed': true,
4931 'allow-preconfig': true }
4934 # @blockdev-reopen:
4945 # one of them, the top-level @node-name option (from `BlockdevOptions`)
4947 # reopened. Other @node-name options must be either omitted or set to
4968 # Unlike with `blockdev-add`, the @backing option must always be present
4975 { 'command': 'blockdev-reopen',
4977 'allow-preconfig': true }
4980 # @blockdev-del:
4982 # Deletes a block device that has been added using `blockdev-add`. The
4986 # @node-name: Name of the graph node to delete.
4990 # .. qmp-example::
4992 # -> { "execute": "blockdev-add",
4995 # "node-name": "node0",
5002 # <- { "return": {} }
5004 # -> { "execute": "blockdev-del",
5005 # "arguments": { "node-name": "node0" }
5007 # <- { "return": {} }
5009 { 'command': 'blockdev-del', 'data': { 'node-name': 'str' },
5010 'allow-preconfig': true }
5013 # @blockdev-set-active:
5016 # block devices on migration with qemu-storage-daemon.
5022 # @node-name: Name of the graph node to activate or inactivate. By default, all
5030 # .. qmp-example::
5032 # -> { "execute": "blockdev-set-active",
5034 # "node-name": "node0",
5038 # <- { "return": {} }
5040 { 'command': 'blockdev-set-active',
5041 'data': { '*node-name': 'str', 'active': 'bool' },
5042 'allow-preconfig': true }
5057 # @nocow: Turn off copy-on-write (valid only on btrfs; default: off)
5059 # @extent-size-hint: Extent size hint to add to the image file; 0 for
5069 '*extent-size-hint': 'size'} }
5139 # @cluster-size: Cluster size in bytes (default: 1 MB)
5146 '*cluster-size': 'size' } }
5157 # @backing-file: File name of the backing file if a backing file
5167 '*backing-file': 'str',
5204 # @data-file: Node to use as an external data file in which all guest
5208 # @data-file-raw: True if the external data file must stay valid as a
5209 # standalone (read-only) raw image without looking at qcow2
5212 # @extended-l2: True to make the image have extended L2 entries
5219 # @backing-file: File name of the backing file if a backing file
5222 # @backing-fmt: Name of the block driver to use for the backing file
5226 # @cluster-size: qcow2 cluster size in bytes (default: 65536)
5231 # @lazy-refcounts: True if refcounts may be updated lazily
5234 # @refcount-bits: Width of reference counts in bits (default: 16)
5236 # @compression-type: The image cluster compression method
5243 '*data-file': 'BlockdevRef',
5244 '*data-file-raw': 'bool',
5245 '*extended-l2': 'bool',
5248 '*backing-file': 'str',
5249 '*backing-fmt': 'BlockdevDriver',
5251 '*cluster-size': 'size',
5253 '*lazy-refcounts': 'bool',
5254 '*refcount-bits': 'int',
5255 '*compression-type':'Qcow2CompressionType' } }
5266 # @backing-file: File name of the backing file if a backing file
5269 # @backing-fmt: Name of the block driver to use for the backing file
5271 # @cluster-size: Cluster size in bytes (default: 65536)
5273 # @table-size: L1/L2 table size (in clusters)
5280 '*backing-file': 'str',
5281 '*backing-fmt': 'BlockdevDriver',
5282 '*cluster-size': 'size',
5283 '*table-size': 'int' } }
5295 # @cluster-size: RBD object size
5304 '*cluster-size' : 'size',
5362 # @backing-file: The path of backing file. Default: no backing file
5365 # @adapter-type: The adapter type used to fill in the descriptor.
5374 # @zeroed-grain: Whether to enable zeroed-grain feature for sparse
5384 '*backing-file': 'str',
5385 '*adapter-type': 'BlockdevVmdkAdapterType',
5388 '*zeroed-grain': 'bool' } }
5429 # @fixed: Preallocated fixed-size image file
5445 # @log-size: Log size in bytes, must be a multiple of 1 MB (default: 1
5448 # @block-size: Block size in bytes, must be a multiple of 1 MB and not
5454 # @block-state-zero: Force use of payload blocks of type 'ZERO'.
5455 # Non-standard, but default. Do not set to 'off' when using
5456 # 'qemu-img convert' with subformat=dynamic.
5463 '*log-size': 'size',
5464 '*block-size': 'size',
5466 '*block-state-zero': 'bool' } }
5473 # @fixed: Preallocated fixed-size image file
5491 # @force-size: Force use of the exact byte size instead of rounding to
5501 '*force-size': 'bool' } }
5534 # @blockdev-create:
5537 # automatically finalized, but a manual `job-dismiss` is required.
5539 # @job-id: Identifier for the newly created job.
5545 { 'command': 'blockdev-create',
5546 'data': { 'job-id': 'str',
5548 'allow-preconfig': true }
5593 # @x-blockdev-amend:
5597 # `job-dismiss` is required.
5599 # @job-id: Identifier for the newly created job.
5601 # @node-name: Name of the block node to work on
5616 { 'command': 'x-blockdev-amend',
5617 'data': { 'job-id': 'str',
5618 'node-name': 'str',
5622 'allow-preconfig': true }
5652 # @node-name: node name (Since: 2.4)
5671 # .. qmp-example::
5673 # <- { "event": "BLOCK_IMAGE_CORRUPTED",
5674 # "data": { "device": "", "node-name": "drive", "fatal": false,
5682 '*node-name' : 'str',
5693 # @qom-path: path to the device object in the QOM tree (since 9.2)
5699 # @node-name: node name. Note that errors may be reported for the
5708 # @nospace: true if I/O error was caused due to a no-space condition.
5709 # This key is only present if query-block's io-status is present,
5710 # please see `query-block` documentation for more information
5720 # .. note:: This event is rate-limited.
5724 # .. qmp-example::
5726 # <- { "event": "BLOCK_IO_ERROR",
5727 # "data": { "qom-path": "/machine/unattached/device[0]",
5728 # "device": "ide0-hd1",
5729 # "node-name": "#block212",
5736 'data': { 'qom-path': 'str', 'device': 'str', '*node-name': 'str',
5759 # contains a human-readable error message. There are no semantics
5765 # .. qmp-example::
5767 # <- { "event": "BLOCK_JOB_COMPLETED",
5768 # "data": { "type": "stream", "device": "virtio-disk0",
5800 # .. qmp-example::
5802 # <- { "event": "BLOCK_JOB_CANCELLED",
5803 # "data": { "type": "stream", "device": "virtio-disk0",
5829 # .. qmp-example::
5831 # <- { "event": "BLOCK_JOB_ERROR",
5832 # "data": { "device": "ide0-hd1",
5864 # .. qmp-example::
5866 # <- { "event": "BLOCK_JOB_READY",
5882 # finalize graph changes via `job-finalize`. If this job is part
5892 # .. qmp-example::
5894 # <- { "event": "BLOCK_JOB_PENDING",
5928 # configured write threshold. For thin-provisioned devices, this
5931 # re-registered with another `block-set-write-threshold` command.
5933 # @node-name: graph node name on which the threshold was exceeded.
5935 # @amount-exceeded: amount of data which exceeded the threshold, in
5938 # @write-threshold: last configured threshold, in bytes.
5943 'data': { 'node-name': 'str',
5944 'amount-exceeded': 'uint64',
5945 'write-threshold': 'uint64' } }
5948 # @block-set-write-threshold:
5952 # threshold. The threshold is an offset, thus must be non-negative.
5956 # This is useful to transparently resize thin-provisioned drives
5959 # @node-name: graph node name on which the threshold must be set.
5961 # @write-threshold: configured threshold for the block device, bytes.
5962 # Use 0 to disable the threshold.
5966 # .. qmp-example::
5968 # -> { "execute": "block-set-write-threshold",
5969 # "arguments": { "node-name": "mydev",
5970 # "write-threshold": 17179869184 } }
5971 # <- { "return": {} }
5973 { 'command': 'block-set-write-threshold',
5974 'data': { 'node-name': 'str', 'write-threshold': 'uint64' },
5975 'allow-preconfig': true }
5978 # @x-blockdev-change:
6007 # .. qmp-example::
6010 # -> { "execute": "blockdev-add",
6013 # "node-name": "new_node",
6016 # <- { "return": {} }
6017 # -> { "execute": "x-blockdev-change",
6020 # <- { "return": {} }
6022 # .. qmp-example::
6025 # -> { "execute": "x-blockdev-change",
6028 # <- { "return": {} }
6030 { 'command': 'x-blockdev-change',
6035 'allow-preconfig': true }
6038 # @x-blockdev-set-iothread:
6045 # @node-name: the name of the block driver node
6059 # .. qmp-example::
6062 # -> { "execute": "x-blockdev-set-iothread",
6063 # "arguments": { "node-name": "disk1",
6065 # <- { "return": {} }
6067 # .. qmp-example::
6070 # -> { "execute": "x-blockdev-set-iothread",
6071 # "arguments": { "node-name": "disk1",
6073 # <- { "return": {} }
6075 { 'command': 'x-blockdev-set-iothread',
6076 'data' : { 'node-name': 'str',
6080 'allow-preconfig': true }
6105 # @sector-num: number of the first sector of the failed read operation
6107 # @sectors-count: failed read operation sector count
6109 # .. note:: This event is rate-limited.
6113 # .. qmp-example::
6115 # <- { "event": "QUORUM_FAILURE",
6116 # "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
6120 'data': { 'reference': 'str', 'sector-num': 'int', 'sectors-count': 'int' } }
6130 # contains a human-readable error message. There are no semantics
6134 # @node-name: the graph node name of the block driver state
6136 # @sector-num: number of the first sector of the failed read operation
6138 # @sectors-count: failed read operation sector count
6140 # .. note:: This event is rate-limited.
6144 # .. qmp-example::
6147 # <- { "event": "QUORUM_REPORT_BAD",
6148 # "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
6152 # .. qmp-example::
6155 # <- { "event": "QUORUM_REPORT_BAD",
6156 # "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
6161 'data': { 'type': 'QuorumOpType', '*error': 'str', 'node-name': 'str',
6162 'sector-num': 'int', 'sectors-count': 'int' } }
6167 # @device: the device name or node-name of a root node to generate the
6178 # @blockdev-snapshot-internal-sync:
6186 # - If @device is not a valid block device, GenericError
6187 # - If any snapshot matching @name exists, or @name is empty,
6189 # - If the format of the image used does not support it,
6197 # .. qmp-example::
6199 # -> { "execute": "blockdev-snapshot-internal-sync",
6200 # "arguments": { "device": "ide-hd0",
6203 # <- { "return": {} }
6205 { 'command': 'blockdev-snapshot-internal-sync',
6207 'allow-preconfig': true }
6210 # @blockdev-snapshot-delete-internal-sync:
6217 # @device: the device name or node-name of a root node to delete the
6225 # - If @device is not a valid block device, GenericError
6226 # - If snapshot not found, GenericError
6227 # - If the format of the image used does not support it,
6229 # - If @id and @name are both not specified, GenericError
6233 # .. qmp-example::
6235 # -> { "execute": "blockdev-snapshot-delete-internal-sync",
6236 # "arguments": { "device": "ide-hd0",
6239 # <- { "return": {
6242 # "vm-state-size": 0,
6243 # "date-sec": 1000012,
6244 # "date-nsec": 10,
6245 # "vm-clock-sec": 100,
6246 # "vm-clock-nsec": 20,
6251 { 'command': 'blockdev-snapshot-delete-internal-sync',
6254 'allow-preconfig': true }
6264 'data': { 'unused-block-graph-info': ['BlockGraphInfo'] } }