]> git.proxmox.com Git - mirror_qemu.git/blob - qapi/yank.json
Merge tag 'pull-maintainer-may24-160524-2' of https://gitlab.com/stsquad/qemu into...
[mirror_qemu.git] / qapi / yank.json
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
24 # more 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
37 # more 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
50 # from a hanging QEMU.
51 #
52 # @type: yank instance type
53 #
54 # Currently implemented yank instances:
55 #
56 # - nbd block device: Yanking it will shut down the connection to the
57 # nbd server without attempting to reconnect.
58 # - socket chardev: Yanking it will shut down the connected socket.
59 # - migration: Yanking it will shut down all migration connections.
60 # Unlike @migrate_cancel, it will not notify the migration process,
61 # so migration will go into @failed state, instead of @cancelled
62 # state. @yank should be 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.
77 # See @YankInstance for more information.
78 #
79 # @instances: the instances to be yanked
80 #
81 # Errors:
82 # - If any of the YankInstances doesn't exist, DeviceNotFound
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 }