10 # Emitted when the virtual machine has shut down, indicating that qemu is
13 # @guest: If true, the shutdown was triggered by a guest request (such as
14 # a guest-initiated ACPI shutdown request or other hardware-specific action)
15 # rather than a host request (such as sending qemu a SIGINT). (since 2.10)
17 # Note: If the command-line option "-no-shutdown" has been specified, qemu will
18 # not exit, and a STOP event will eventually follow the SHUTDOWN event
24 # <- { "event": "SHUTDOWN", "data": { "guest": true },
25 # "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
28 { 'event': 'SHUTDOWN', 'data': { 'guest': 'bool' } }
33 # Emitted when the virtual machine is powered down through the power control
34 # system, such as via ACPI.
40 # <- { "event": "POWERDOWN",
41 # "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
44 { 'event': 'POWERDOWN' }
49 # Emitted when the virtual machine is reset
51 # @guest: If true, the reset was triggered by a guest request (such as
52 # a guest-initiated ACPI reboot request or other hardware-specific action)
53 # rather than a host request (such as the QMP command system_reset).
60 # <- { "event": "RESET", "data": { "guest": false },
61 # "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
64 { 'event': 'RESET', 'data': { 'guest': 'bool' } }
69 # Emitted when the virtual machine is stopped
75 # <- { "event": "STOP",
76 # "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
84 # Emitted when the virtual machine resumes execution
90 # <- { "event": "RESUME",
91 # "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
99 # Emitted when guest enters a hardware suspension state, for example, S3 state,
100 # which is sometimes called standby state
106 # <- { "event": "SUSPEND",
107 # "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
110 { 'event': 'SUSPEND' }
115 # Emitted when guest enters a hardware suspension state with data saved on
116 # disk, for example, S4 state, which is sometimes called hibernate state
118 # Note: QEMU shuts down (similar to event @SHUTDOWN) when entering this state
124 # <- { "event": "SUSPEND_DISK",
125 # "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
128 { 'event': 'SUSPEND_DISK' }
133 # Emitted when the guest has woken up from suspend state and is running
139 # <- { "event": "WAKEUP",
140 # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
143 { 'event': 'WAKEUP' }
148 # Emitted when the guest changes the RTC time.
150 # @offset: offset between base RTC clock (as specified by -rtc base), and
151 # new RTC clock value
153 # Note: This event is rate-limited.
159 # <- { "event": "RTC_CHANGE",
160 # "data": { "offset": 78 },
161 # "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
164 { 'event': 'RTC_CHANGE',
165 'data': { 'offset': 'int' } }
170 # Emitted when the watchdog device's timer is expired
172 # @action: action that has been taken
174 # Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is
175 # followed respectively by the RESET, SHUTDOWN, or STOP events
177 # Note: This event is rate-limited.
183 # <- { "event": "WATCHDOG",
184 # "data": { "action": "reset" },
185 # "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
188 { 'event': 'WATCHDOG',
189 'data': { 'action': 'WatchdogExpirationAction' } }
194 # Emitted whenever the device removal completion is acknowledged by the guest.
195 # At this point, it's safe to reuse the specified device ID. Device removal can
196 # be initiated by the guest or by HMP/QMP commands.
198 # @device: device name
206 # <- { "event": "DEVICE_DELETED",
207 # "data": { "device": "virtio-net-pci-0",
208 # "path": "/machine/peripheral/virtio-net-pci-0" },
209 # "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
212 { 'event': 'DEVICE_DELETED',
213 'data': { '*device': 'str', 'path': 'str' } }
216 # @NIC_RX_FILTER_CHANGED:
218 # Emitted once until the 'query-rx-filter' command is executed, the first event
219 # will always be emitted
221 # @name: net client name
229 # <- { "event": "NIC_RX_FILTER_CHANGED",
230 # "data": { "name": "vnet0",
231 # "path": "/machine/peripheral/vnet0/virtio-backend" },
232 # "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
236 { 'event': 'NIC_RX_FILTER_CHANGED',
237 'data': { '*name': 'str', 'path': 'str' } }
242 # Emitted when a VNC client establishes a connection
244 # @server: server information
246 # @client: client information
248 # Note: This event is emitted before any authentication takes place, thus
249 # the authentication ID is not provided
255 # <- { "event": "VNC_CONNECTED",
257 # "server": { "auth": "sasl", "family": "ipv4",
258 # "service": "5901", "host": "0.0.0.0" },
259 # "client": { "family": "ipv4", "service": "58425",
260 # "host": "127.0.0.1" } },
261 # "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
264 { 'event': 'VNC_CONNECTED',
265 'data': { 'server': 'VncServerInfo',
266 'client': 'VncBasicInfo' } }
271 # Emitted after authentication takes place (if any) and the VNC session is
274 # @server: server information
276 # @client: client information
282 # <- { "event": "VNC_INITIALIZED",
284 # "server": { "auth": "sasl", "family": "ipv4",
285 # "service": "5901", "host": "0.0.0.0"},
286 # "client": { "family": "ipv4", "service": "46089",
287 # "host": "127.0.0.1", "sasl_username": "luiz" } },
288 # "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
291 { 'event': 'VNC_INITIALIZED',
292 'data': { 'server': 'VncServerInfo',
293 'client': 'VncClientInfo' } }
298 # Emitted when the connection is closed
300 # @server: server information
302 # @client: client information
308 # <- { "event": "VNC_DISCONNECTED",
310 # "server": { "auth": "sasl", "family": "ipv4",
311 # "service": "5901", "host": "0.0.0.0" },
312 # "client": { "family": "ipv4", "service": "58425",
313 # "host": "127.0.0.1", "sasl_username": "luiz" } },
314 # "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
317 { 'event': 'VNC_DISCONNECTED',
318 'data': { 'server': 'VncServerInfo',
319 'client': 'VncClientInfo' } }
324 # Emitted when a SPICE client establishes a connection
326 # @server: server information
328 # @client: client information
334 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
335 # "event": "SPICE_CONNECTED",
337 # "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
338 # "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
342 { 'event': 'SPICE_CONNECTED',
343 'data': { 'server': 'SpiceBasicInfo',
344 'client': 'SpiceBasicInfo' } }
347 # @SPICE_INITIALIZED:
349 # Emitted after initial handshake and authentication takes place (if any)
350 # and the SPICE channel is up and running
352 # @server: server information
354 # @client: client information
360 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
361 # "event": "SPICE_INITIALIZED",
362 # "data": {"server": {"auth": "spice", "port": "5921",
363 # "family": "ipv4", "host": "127.0.0.1"},
364 # "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
365 # "connection-id": 1804289383, "host": "127.0.0.1",
366 # "channel-id": 0, "tls": true}
370 { 'event': 'SPICE_INITIALIZED',
371 'data': { 'server': 'SpiceServerInfo',
372 'client': 'SpiceChannel' } }
375 # @SPICE_DISCONNECTED:
377 # Emitted when the SPICE connection is closed
379 # @server: server information
381 # @client: client information
387 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
388 # "event": "SPICE_DISCONNECTED",
390 # "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
391 # "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
395 { 'event': 'SPICE_DISCONNECTED',
396 'data': { 'server': 'SpiceBasicInfo',
397 'client': 'SpiceBasicInfo' } }
400 # @SPICE_MIGRATE_COMPLETED:
402 # Emitted when SPICE migration has completed
408 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
409 # "event": "SPICE_MIGRATE_COMPLETED" }
412 { 'event': 'SPICE_MIGRATE_COMPLETED' }
417 # Emitted when a migration event happens
419 # @status: @MigrationStatus describing the current migration status.
425 # <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
426 # "event": "MIGRATION",
427 # "data": {"status": "completed"} }
430 { 'event': 'MIGRATION',
431 'data': {'status': 'MigrationStatus'}}
436 # Emitted from the source side of a migration at the start of each pass
437 # (when it syncs the dirty bitmap)
439 # @pass: An incrementing count (starting at 1 on the first pass)
445 # { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
446 # "event": "MIGRATION_PASS", "data": {"pass": 2} }
449 { 'event': 'MIGRATION_PASS',
450 'data': { 'pass': 'int' } }
455 # Emitted when guest executes ACPI _OST method.
457 # @info: ACPIOSTInfo type as described in qapi-schema.json
463 # <- { "event": "ACPI_DEVICE_OST",
464 # "data": { "device": "d1", "slot": "0",
465 # "slot-type": "DIMM", "source": 1, "status": 0 } }
468 { 'event': 'ACPI_DEVICE_OST',
469 'data': { 'info': 'ACPIOSTInfo' } }
474 # Emitted when the guest changes the actual BALLOON level. This value is
475 # equivalent to the @actual field return by the 'query-balloon' command
477 # @actual: actual level of the guest memory balloon in bytes
479 # Note: this event is rate-limited.
485 # <- { "event": "BALLOON_CHANGE",
486 # "data": { "actual": 944766976 },
487 # "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
490 { 'event': 'BALLOON_CHANGE',
491 'data': { 'actual': 'int' } }
496 # Emitted when guest OS panic is detected
498 # @action: action that has been taken, currently always "pause"
500 # @info: information about a panic (since 2.9)
506 # <- { "event": "GUEST_PANICKED",
507 # "data": { "action": "pause" } }
510 { 'event': 'GUEST_PANICKED',
511 'data': { 'action': 'GuestPanicAction', '*info': 'GuestPanicInformation' } }
516 # Emitted by the Quorum block driver if it fails to establish a quorum
518 # @reference: device name if defined else node name
520 # @sector-num: number of the first sector of the failed read operation
522 # @sectors-count: failed read operation sector count
524 # Note: This event is rate-limited.
530 # <- { "event": "QUORUM_FAILURE",
531 # "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
532 # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
535 { 'event': 'QUORUM_FAILURE',
536 'data': { 'reference': 'str', 'sector-num': 'int', 'sectors-count': 'int' } }
539 # @QUORUM_REPORT_BAD:
541 # Emitted to report a corruption of a Quorum file
543 # @type: quorum operation type (Since 2.6)
545 # @error: error message. Only present on failure. This field
546 # contains a human-readable error message. There are no semantics other
547 # than that the block layer reported an error and clients should not
548 # try to interpret the error string.
550 # @node-name: the graph node name of the block driver state
552 # @sector-num: number of the first sector of the failed read operation
554 # @sectors-count: failed read operation sector count
556 # Note: This event is rate-limited.
564 # { "event": "QUORUM_REPORT_BAD",
565 # "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
567 # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
571 # { "event": "QUORUM_REPORT_BAD",
572 # "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
573 # "type": "flush", "error": "Broken pipe" },
574 # "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
577 { 'event': 'QUORUM_REPORT_BAD',
578 'data': { 'type': 'QuorumOpType', '*error': 'str', 'node-name': 'str',
579 'sector-num': 'int', 'sectors-count': 'int' } }
584 # Emitted when the guest opens or closes a virtio-serial port.
586 # @id: device identifier of the virtio-serial port
588 # @open: true if the guest has opened the virtio-serial port
594 # <- { "event": "VSERPORT_CHANGE",
595 # "data": { "id": "channel0", "open": true },
596 # "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
599 { 'event': 'VSERPORT_CHANGE',
600 'data': { 'id': 'str', 'open': 'bool' } }
605 # Emitted when memory hot unplug error occurs.
607 # @device: device name
609 # @msg: Informative message
615 # <- { "event": "MEM_UNPLUG_ERROR"
616 # "data": { "device": "dimm1",
617 # "msg": "acpi: device unplug for unsupported device"
619 # "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
622 { 'event': 'MEM_UNPLUG_ERROR',
623 'data': { 'device': 'str', 'msg': 'str' } }
628 # Emitted when background dump has completed
630 # @result: DumpQueryResult type described in qapi-schema.json.
632 # @error: human-readable error string that provides
633 # hint on why dump failed. Only presents on failure. The
634 # user should not try to interpret the error string.
640 # { "event": "DUMP_COMPLETED",
641 # "data": {"result": {"total": 1090650112, "status": "completed",
642 # "completed": 1090650112} } }
645 { 'event': 'DUMP_COMPLETED' ,
646 'data': { 'result': 'DumpQueryResult', '*error': 'str' } }