Remove the QAPI doc section heading syntax, use plain rST section headings instead. Tests and documentation are updated to match. Interestingly, Plain rST headings work fine before this patch, except for over- and underlining with '=', which the doc parser rejected as invalid QAPI doc section heading in free-form comments. Signed-off-by: John Snow <jsnow@redhat.com> Message-ID: <20250618165353.1980365-5-jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Add more detail to commit message] Signed-off-by: Markus Armbruster <armbru@redhat.com>
121 lines
2.6 KiB
Python
121 lines
2.6 KiB
Python
# -*- 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 }
|