MonitorProtocol: Difference between revisions
From KVM
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
= Monitor Protocol = | = Monitor Protocol = | ||
This is the page of the Monitor Protocol project, which aims to implement a [http://www.json.org JSON] based protocol for QEMU | This is the page of the Monitor Protocol project, which aims to implement a [http://www.json.org JSON] based protocol for QEMU. | ||
== Problem == | == Problem == | ||
Line 15: | Line 15: | ||
== Solution == | == Solution == | ||
Improve QEMU's Monitor to support a | Improve QEMU's Monitor to support a JSON based protocol. | ||
== Project status (2009-10-20) == | |||
Most of the infrastructure has been merged, JSON encoder/decoder should be merged in the next days. The only important missing part is error handling. | |||
Some conversions are taking place in parallel, but some depend on not merged work. | |||
=== Main building blocks === | |||
* QObject Layer ('''merged''') | |||
* QObject Monitor infrastructure ('''merged''') | |||
* JSON encoder/decoder ('''under review''') | |||
* Error handling ('''under discussion''') | |||
=== Command handlers Conversion work === | |||
* Input through QDict ('''merged''') | |||
* Output in QObject style ('''in progress''') | |||
* Error handling ('''not started''') |
Revision as of 08:20, 20 October 2009
Monitor Protocol
This is the page of the Monitor Protocol project, which aims to implement a JSON based protocol for QEMU.
Problem
QEMU does not provide a way for applications to control it at the "machine level", that is, the current existing interface (called Monitor) was designed for human interaction only.
This is very problematic for applications, for the following reasons:
- It is needed to parse output meant to be read by humans
- It is not reliable, because it is not always possible to know whether a command has been successfully executed or not
- It lacks support for asynchronous events
Solution
Improve QEMU's Monitor to support a JSON based protocol.
Project status (2009-10-20)
Most of the infrastructure has been merged, JSON encoder/decoder should be merged in the next days. The only important missing part is error handling.
Some conversions are taking place in parallel, but some depend on not merged work.
Main building blocks
- QObject Layer (merged)
- QObject Monitor infrastructure (merged)
- JSON encoder/decoder (under review)
- Error handling (under discussion)
Command handlers Conversion work
- Input through QDict (merged)
- Output in QObject style (in progress)
- Error handling (not started)