[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Making QEMU easier for management tools and applications
From: |
Stefan Hajnoczi |
Subject: |
Re: Making QEMU easier for management tools and applications |
Date: |
Mon, 13 Jan 2020 16:30:28 +0000 |
On Tue, Jan 07, 2020 at 06:11:13PM +0100, Christophe de Dinechin wrote:
> > On 20 Dec 2019, at 17:13, Stefan Hajnoczi <address@hidden> wrote:
> So I think that Daniel is right. We may need at some point to start
> a NEMU-style offshoot that does not attempt to be compatible,
> but explores describing an increasing surface of the API using a
> new meta-language from which we can generate, in a consistent
> way, at least:
>
> - C bindings
> - Command-line options
> - Shell bindings (or “HMP”)
> - JSON schema or qom description
> - Bindings in other languages (Rust, Go, Python)
> - Networked versions of the API (socket, REST)
> - Client-side code e.g. for libvirt.
> - Serialization / deserialization, e.g. for configuration files
> - Documentation, including man page and API docs
> - Command-line help
>
> At the most fundamental level, I think we need to describe:
>
> - Values, e.g. how we represent names, sizes, paths, etc, possibly
> with some user-friendly aspects, e.g. path shortcuts, memory units,
> spelling shortcuts (e.g. being able to consistently say -blo for -blockdev
> if that’s the shortest option that matches)
> - Relations, e.g. how we represent “contains”, “derives from”, “needs”,
> “one of”, “one or several”, “attaches to”…
> - States, e.g. how do we represent the machine configuration,
> or the desired new disk setting
> - Verbs, e.g. how we represent “add”, “connect”, “remove”, “find”,
> “start”, “notify”, etc. and how we describe the kind of input they need.
> - Possibly more subtle things like support for transactions, commit/rollback,
> i.e. “I want to add connect a virtual nic to some host vf, but if anything
> along the way fails, I’d like all the cleanup to happen automatically)
Extending QAPI to achieve these things is a possibility.
If we afford ourselves the luxury of breaking backwards compatibility
then I would instead use the opportunity to eliminate complexity:
1. Get rid of the CLI
2. Get rid of HMP
3. No per-command C bindings, just a qmp_call() API
4. No configuration file, just a sequence of QMP commands
The new QEMU would be very different and solely focussed on QMP (or a
standards-based RPC system).
It's not very fun working on projects that have a lot of custom
infrastructure. Making a one-time change requires a lot of learning
weird infrastructure that you won't use often. We already have too much
of this and it slows down QEMU development.
Stefan
signature.asc
Description: PGP signature
- Re: Integrating QOM into QAPI, (continued)
- Re: Integrating QOM into QAPI, Christophe de Dinechin, 2020/01/27
- Re: Integrating QOM into QAPI, Peter Maydell, 2020/01/26
- Re: Integrating QOM into QAPI, Christophe de Dinechin, 2020/01/27
- Re: Making QEMU easier for management tools and applications, Marc-André Lureau, 2020/01/15
- Re: Making QEMU easier for management tools and applications, Markus Armbruster, 2020/01/15
- Re: Making QEMU easier for management tools and applications, Paolo Bonzini, 2020/01/25
- Re: Making QEMU easier for management tools and applications, Markus Armbruster, 2020/01/27
Re: Making QEMU easier for management tools and applications,
Stefan Hajnoczi <=
Re: Making QEMU easier for management tools and applications, John Snow, 2020/01/22
- Re: Making QEMU easier for management tools and applications, Markus Armbruster, 2020/01/23
- Re: Making QEMU easier for management tools and applications, John Snow, 2020/01/23
- Re: Making QEMU easier for management tools and applications, Daniel P . Berrangé, 2020/01/23
- Re: Making QEMU easier for management tools and applications, John Snow, 2020/01/23
- Re: Making QEMU easier for management tools and applications, Markus Armbruster, 2020/01/24
- Re: Making QEMU easier for management tools and applications, Daniel P . Berrangé, 2020/01/24
- Re: Making QEMU easier for management tools and applications, Kevin Wolf, 2020/01/24
- Re: Making QEMU easier for management tools and applications, John Snow, 2020/01/24
- Re: Making QEMU easier for management tools and applications, Dr. David Alan Gilbert, 2020/01/24