123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- # -*- Mode: Python -*-
- # vim: filetype=python
- #
- ##
- # = Yank feature
- ##
- ##
- # @YankInstanceType:
- #
- # An enumeration of yank instance types. See @YankInstance for more
- # information.
- #
- # Since: 6.0
- ##
- { 'enum': 'YankInstanceType',
- 'data': [ 'block-node', 'chardev', 'migration' ] }
- ##
- # @YankInstanceBlockNode:
- #
- # Specifies which block graph node to yank. See @YankInstance for
- # more information.
- #
- # @node-name: the name of the block graph node
- #
- # Since: 6.0
- ##
- { 'struct': 'YankInstanceBlockNode',
- 'data': { 'node-name': 'str' } }
- ##
- # @YankInstanceChardev:
- #
- # Specifies which character device to yank. See @YankInstance for
- # more information.
- #
- # @id: the chardev's ID
- #
- # Since: 6.0
- ##
- { 'struct': 'YankInstanceChardev',
- 'data': { 'id': 'str' } }
- ##
- # @YankInstance:
- #
- # A yank instance can be yanked with the @yank qmp command to recover
- # from a hanging QEMU.
- #
- # @type: yank instance type
- #
- # Currently implemented yank instances:
- #
- # - nbd block device: Yanking it will shut down the connection to the
- # nbd server without attempting to reconnect.
- # - socket chardev: Yanking it will shut down the connected socket.
- # - migration: Yanking it will shut down all migration connections.
- # Unlike @migrate_cancel, it will not notify the migration process,
- # so migration will go into @failed state, instead of @cancelled
- # state. @yank should be used to recover from hangs.
- #
- # Since: 6.0
- ##
- { 'union': 'YankInstance',
- 'base': { 'type': 'YankInstanceType' },
- 'discriminator': 'type',
- 'data': {
- 'block-node': 'YankInstanceBlockNode',
- 'chardev': 'YankInstanceChardev' } }
- ##
- # @yank:
- #
- # Try to recover from hanging QEMU by yanking the specified instances.
- # See @YankInstance for more information.
- #
- # @instances: the instances to be yanked
- #
- # Errors:
- # - If any of the YankInstances doesn't exist, DeviceNotFound
- #
- # .. qmp-example::
- #
- # -> { "execute": "yank",
- # "arguments": {
- # "instances": [
- # { "type": "block-node",
- # "node-name": "nbd0" }
- # ] } }
- # <- { "return": {} }
- #
- # Since: 6.0
- ##
- { 'command': 'yank',
- 'data': { 'instances': ['YankInstance'] },
- 'allow-oob': true }
- ##
- # @query-yank:
- #
- # Query yank instances. See @YankInstance for more information.
- #
- # Returns: list of @YankInstance
- #
- # .. qmp-example::
- #
- # -> { "execute": "query-yank" }
- # <- { "return": [
- # { "type": "block-node",
- # "node-name": "nbd0" }
- # ] }
- #
- # Since: 6.0
- ##
- { 'command': 'query-yank',
- 'returns': ['YankInstance'],
- 'allow-oob': true }
|