12 # An enumeration of yank instance types. See @YankInstance for more
17 { 'enum': 'YankInstanceType',
18 'data': [ 'block-node', 'chardev', 'migration' ] }
21 # @YankInstanceBlockNode:
23 # Specifies which block graph node to yank. See @YankInstance for more
26 # @node-name: the name of the block graph node
30 { 'struct': 'YankInstanceBlockNode',
31 'data': { 'node-name': 'str' } }
34 # @YankInstanceChardev:
36 # Specifies which character device to yank. See @YankInstance for more
39 # @id: the chardev's ID
43 { 'struct': 'YankInstanceChardev',
44 'data': { 'id': 'str' } }
49 # A yank instance can be yanked with the @yank qmp command to recover from a
52 # Currently implemented yank instances:
54 # Yanking it will shut down the connection to the nbd server without
55 # attempting to reconnect.
57 # Yanking it will shut down the connected socket.
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.
66 { 'union': 'YankInstance',
67 'base': { 'type': 'YankInstanceType' },
68 'discriminator': 'type',
70 'block-node': 'YankInstanceBlockNode',
71 'chardev': 'YankInstanceChardev' } }
76 # Try to recover from hanging QEMU by yanking the specified instances. See
77 # @YankInstance for more information.
79 # Takes a list of @YankInstance as argument.
81 # Returns: - Nothing on success
82 # - @DeviceNotFound error, if any of the YankInstances doesn't exist
86 # -> { "execute": "yank",
89 # { "type": "block-node",
90 # "node-name": "nbd0" }
97 'data': { 'instances': ['YankInstance'] },
103 # Query yank instances. See @YankInstance for more information.
105 # Returns: list of @YankInstance
109 # -> { "execute": "query-yank" }
111 # { "type": "block-node",
112 # "node-name": "nbd0" }
117 { 'command': 'query-yank',
118 'returns': ['YankInstance'],