10 # Emitted when the guest changes the RTC time.
12 # @offset: offset between base RTC clock (as specified by -rtc base), and
15 # Note: This event is rate-limited.
21 # <- { "event": "RTC_CHANGE",
22 # "data": { "offset": 78 },
23 # "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
26 { 'event': 'RTC_CHANGE',
27 'data': { 'offset': 'int' } }
32 # Emitted whenever the device removal completion is acknowledged by the guest.
33 # At this point, it's safe to reuse the specified device ID. Device removal can
34 # be initiated by the guest or by HMP/QMP commands.
36 # @device: device name
44 # <- { "event": "DEVICE_DELETED",
45 # "data": { "device": "virtio-net-pci-0",
46 # "path": "/machine/peripheral/virtio-net-pci-0" },
47 # "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
50 { 'event': 'DEVICE_DELETED',
51 'data': { '*device': 'str', 'path': 'str' } }
54 # @NIC_RX_FILTER_CHANGED:
56 # Emitted once until the 'query-rx-filter' command is executed, the first event
57 # will always be emitted
59 # @name: net client name
67 # <- { "event": "NIC_RX_FILTER_CHANGED",
68 # "data": { "name": "vnet0",
69 # "path": "/machine/peripheral/vnet0/virtio-backend" },
70 # "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
74 { 'event': 'NIC_RX_FILTER_CHANGED',
75 'data': { '*name': 'str', 'path': 'str' } }
80 # Emitted when a VNC client establishes a connection
82 # @server: server information
84 # @client: client information
86 # Note: This event is emitted before any authentication takes place, thus
87 # the authentication ID is not provided
93 # <- { "event": "VNC_CONNECTED",
95 # "server": { "auth": "sasl", "family": "ipv4",
96 # "service": "5901", "host": "0.0.0.0" },
97 # "client": { "family": "ipv4", "service": "58425",
98 # "host": "127.0.0.1" } },
99 # "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
102 { 'event': 'VNC_CONNECTED',
103 'data': { 'server': 'VncServerInfo',
104 'client': 'VncBasicInfo' } }
109 # Emitted after authentication takes place (if any) and the VNC session is
112 # @server: server information
114 # @client: client information
120 # <- { "event": "VNC_INITIALIZED",
122 # "server": { "auth": "sasl", "family": "ipv4",
123 # "service": "5901", "host": "0.0.0.0"},
124 # "client": { "family": "ipv4", "service": "46089",
125 # "host": "127.0.0.1", "sasl_username": "luiz" } },
126 # "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
129 { 'event': 'VNC_INITIALIZED',
130 'data': { 'server': 'VncServerInfo',
131 'client': 'VncClientInfo' } }
136 # Emitted when the connection is closed
138 # @server: server information
140 # @client: client information
146 # <- { "event": "VNC_DISCONNECTED",
148 # "server": { "auth": "sasl", "family": "ipv4",
149 # "service": "5901", "host": "0.0.0.0" },
150 # "client": { "family": "ipv4", "service": "58425",
151 # "host": "127.0.0.1", "sasl_username": "luiz" } },
152 # "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
155 { 'event': 'VNC_DISCONNECTED',
156 'data': { 'server': 'VncServerInfo',
157 'client': 'VncClientInfo' } }
162 # Emitted when a SPICE client establishes a connection
164 # @server: server information
166 # @client: client information
172 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
173 # "event": "SPICE_CONNECTED",
175 # "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
176 # "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
180 { 'event': 'SPICE_CONNECTED',
181 'data': { 'server': 'SpiceBasicInfo',
182 'client': 'SpiceBasicInfo' } }
185 # @SPICE_INITIALIZED:
187 # Emitted after initial handshake and authentication takes place (if any)
188 # and the SPICE channel is up and running
190 # @server: server information
192 # @client: client information
198 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
199 # "event": "SPICE_INITIALIZED",
200 # "data": {"server": {"auth": "spice", "port": "5921",
201 # "family": "ipv4", "host": "127.0.0.1"},
202 # "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
203 # "connection-id": 1804289383, "host": "127.0.0.1",
204 # "channel-id": 0, "tls": true}
208 { 'event': 'SPICE_INITIALIZED',
209 'data': { 'server': 'SpiceServerInfo',
210 'client': 'SpiceChannel' } }
213 # @SPICE_DISCONNECTED:
215 # Emitted when the SPICE connection is closed
217 # @server: server information
219 # @client: client information
225 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
226 # "event": "SPICE_DISCONNECTED",
228 # "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
229 # "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
233 { 'event': 'SPICE_DISCONNECTED',
234 'data': { 'server': 'SpiceBasicInfo',
235 'client': 'SpiceBasicInfo' } }
238 # @SPICE_MIGRATE_COMPLETED:
240 # Emitted when SPICE migration has completed
246 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
247 # "event": "SPICE_MIGRATE_COMPLETED" }
250 { 'event': 'SPICE_MIGRATE_COMPLETED' }
255 # Emitted when a migration event happens
257 # @status: @MigrationStatus describing the current migration status.
263 # <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
264 # "event": "MIGRATION",
265 # "data": {"status": "completed"} }
268 { 'event': 'MIGRATION',
269 'data': {'status': 'MigrationStatus'}}
274 # Emitted from the source side of a migration at the start of each pass
275 # (when it syncs the dirty bitmap)
277 # @pass: An incrementing count (starting at 1 on the first pass)
283 # { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
284 # "event": "MIGRATION_PASS", "data": {"pass": 2} }
287 { 'event': 'MIGRATION_PASS',
288 'data': { 'pass': 'int' } }
293 # Emitted when guest executes ACPI _OST method.
295 # @info: ACPIOSTInfo type as described in qapi-schema.json
301 # <- { "event": "ACPI_DEVICE_OST",
302 # "data": { "device": "d1", "slot": "0",
303 # "slot-type": "DIMM", "source": 1, "status": 0 } }
306 { 'event': 'ACPI_DEVICE_OST',
307 'data': { 'info': 'ACPIOSTInfo' } }
312 # Emitted when the guest changes the actual BALLOON level. This value is
313 # equivalent to the @actual field return by the 'query-balloon' command
315 # @actual: actual level of the guest memory balloon in bytes
317 # Note: this event is rate-limited.
323 # <- { "event": "BALLOON_CHANGE",
324 # "data": { "actual": 944766976 },
325 # "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
328 { 'event': 'BALLOON_CHANGE',
329 'data': { 'actual': 'int' } }
334 # Emitted by the Quorum block driver if it fails to establish a quorum
336 # @reference: device name if defined else node name
338 # @sector-num: number of the first sector of the failed read operation
340 # @sectors-count: failed read operation sector count
342 # Note: This event is rate-limited.
348 # <- { "event": "QUORUM_FAILURE",
349 # "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
350 # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
353 { 'event': 'QUORUM_FAILURE',
354 'data': { 'reference': 'str', 'sector-num': 'int', 'sectors-count': 'int' } }
357 # @QUORUM_REPORT_BAD:
359 # Emitted to report a corruption of a Quorum file
361 # @type: quorum operation type (Since 2.6)
363 # @error: error message. Only present on failure. This field
364 # contains a human-readable error message. There are no semantics other
365 # than that the block layer reported an error and clients should not
366 # try to interpret the error string.
368 # @node-name: the graph node name of the block driver state
370 # @sector-num: number of the first sector of the failed read operation
372 # @sectors-count: failed read operation sector count
374 # Note: This event is rate-limited.
382 # { "event": "QUORUM_REPORT_BAD",
383 # "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
385 # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
389 # { "event": "QUORUM_REPORT_BAD",
390 # "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
391 # "type": "flush", "error": "Broken pipe" },
392 # "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
395 { 'event': 'QUORUM_REPORT_BAD',
396 'data': { 'type': 'QuorumOpType', '*error': 'str', 'node-name': 'str',
397 'sector-num': 'int', 'sectors-count': 'int' } }
402 # Emitted when memory hot unplug error occurs.
404 # @device: device name
406 # @msg: Informative message
412 # <- { "event": "MEM_UNPLUG_ERROR"
413 # "data": { "device": "dimm1",
414 # "msg": "acpi: device unplug for unsupported device"
416 # "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
419 { 'event': 'MEM_UNPLUG_ERROR',
420 'data': { 'device': 'str', 'msg': 'str' } }
425 # Emitted when background dump has completed
427 # @result: DumpQueryResult type described in qapi-schema.json.
429 # @error: human-readable error string that provides
430 # hint on why dump failed. Only presents on failure. The
431 # user should not try to interpret the error string.
437 # { "event": "DUMP_COMPLETED",
438 # "data": {"result": {"total": 1090650112, "status": "completed",
439 # "completed": 1090650112} } }
442 { 'event': 'DUMP_COMPLETED' ,
443 'data': { 'result': 'DumpQueryResult', '*error': 'str' } }