]> git.proxmox.com Git - mirror_qemu.git/blame - qapi/yank.json
qapi: introduce x-query-opcount QMP command
[mirror_qemu.git] / qapi / yank.json
CommitLineData
50186051
LS
1# -*- Mode: Python -*-
2# vim: filetype=python
3#
4
5##
6# = Yank feature
7##
8
9##
10# @YankInstanceType:
11#
12# An enumeration of yank instance types. See @YankInstance for more
13# information.
14#
15# Since: 6.0
16##
17{ 'enum': 'YankInstanceType',
18 'data': [ 'block-node', 'chardev', 'migration' ] }
19
20##
21# @YankInstanceBlockNode:
22#
23# Specifies which block graph node to yank. See @YankInstance for more
24# information.
25#
26# @node-name: the name of the block graph node
27#
28# Since: 6.0
29##
30{ 'struct': 'YankInstanceBlockNode',
31 'data': { 'node-name': 'str' } }
32
33##
34# @YankInstanceChardev:
35#
36# Specifies which character device to yank. See @YankInstance for more
37# information.
38#
39# @id: the chardev's ID
40#
41# Since: 6.0
42##
43{ 'struct': 'YankInstanceChardev',
44 'data': { 'id': 'str' } }
45
46##
47# @YankInstance:
48#
49# A yank instance can be yanked with the @yank qmp command to recover from a
50# hanging QEMU.
51#
52# Currently implemented yank instances:
53# - nbd block device:
54# Yanking it will shut down the connection to the nbd server without
55# attempting to reconnect.
56# - socket chardev:
57# Yanking it will shut down the connected socket.
58# - migration:
59# Yanking it will shut down all migration connections. Unlike
60# @migrate_cancel, it will not notify the migration process, so migration
61# will go into @failed state, instead of @cancelled state. @yank should be
62# used to recover from hangs.
63#
64# Since: 6.0
65##
66{ 'union': 'YankInstance',
67 'base': { 'type': 'YankInstanceType' },
68 'discriminator': 'type',
69 'data': {
70 'block-node': 'YankInstanceBlockNode',
71 'chardev': 'YankInstanceChardev' } }
72
73##
74# @yank:
75#
76# Try to recover from hanging QEMU by yanking the specified instances. See
77# @YankInstance for more information.
78#
79# Takes a list of @YankInstance as argument.
80#
81# Returns: - Nothing on success
82# - @DeviceNotFound error, if any of the YankInstances doesn't exist
83#
84# Example:
85#
86# -> { "execute": "yank",
87# "arguments": {
88# "instances": [
89# { "type": "block-node",
90# "node-name": "nbd0" }
91# ] } }
92# <- { "return": {} }
93#
94# Since: 6.0
95##
96{ 'command': 'yank',
97 'data': { 'instances': ['YankInstance'] },
98 'allow-oob': true }
99
100##
101# @query-yank:
102#
103# Query yank instances. See @YankInstance for more information.
104#
105# Returns: list of @YankInstance
106#
107# Example:
108#
109# -> { "execute": "query-yank" }
110# <- { "return": [
111# { "type": "block-node",
112# "node-name": "nbd0" }
113# ] }
114#
115# Since: 6.0
116##
117{ 'command': 'query-yank',
118 'returns': ['YankInstance'],
119 'allow-oob': true }