[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc |
Date: |
Wed, 12 May 2010 18:17:12 -0300 |
On Wed, 12 May 2010 18:48:38 +0200
Markus Armbruster <address@hidden> wrote:
> > +query-block
> > +-----------
> > +
> > +Show the block devices.
> > +
> > +Each block device information is stored in a json-object and the returned
> > value
> > +is a json-array of all devices.
> > +
> > +Each json-object contain the following:
> > +
> > +- "device": device name (json-string)
> > +- "type": device type (json-string)
>
> Possible values? "hd", "cdrom", "floppy". Code also has "unknown", but
> when it uses that, it's badly broken.
Yes, but you didn't mean we shouldn't use 'unknown', right?
> > +- "removable": true if the device is removable, false otherwise (json-bool)
> > +- "locked": true if the device is locked, false otherwise (json-bool)
> > +- "inserted": only present if the device is inserted, it is a json-object
> > + containing the following:
> > + - "file": device file name (json-string)
> > + - "ro": true if read-only, false otherwise (json-bool)
> > + - "drv": driver format name (json-string)
>
> Possible values?
I got the following list by grepping the code. Kevin, can you confirm it's
correct?
"blkdebug", "bochs", "cloop", "cow", "dmg", "file", "file", "ftp", "ftps",
"host_cdrom", "host_cdrom", "host_device", "host_device", "host_floppy",
"http", "https", "nbd", "parallels", "qcow", "qcow2", "raw", "tftp", "vdi",
"vmdk", "vpc", "vvfat"
> > +query-cpus
> > +----------
> > +
> > +Show CPU information.
> > +
> > +Return a json-array. Each CPU is represented by a json-object, which
> > contains:
> > +
> > +- "cpu": CPU index (json-int)
>
> It's actually upper case (see example below). I hate that.
Hm, this one leaked.. But it's quite minor anyway.
> > +- "current": true if this is the current CPU, false otherwise (json-bool)
> > +- "halted": true if the cpu is halted, false otherwise (json-bool)
> > +- Current program counter. The key's name depends on the architecture:
> > + "pc": i386/x86_64 (json-int)
> > + "nip": PPC (json-int)
> > + "pc" and "npc": sparc (json-int)
> > + "PC": mips (json-int)
>
> Key name depending on arch: isn't that an extraordinarily bad idea?
Honestly, I don't think it's that bad: it's a form of optional key,
but if you think it's so bad I can add a "arch" key with the arch's name.
Don't think anyone is using this, anyway.
> > +query-migrate
> > +-------------
> > +
> > +Migration status.
> > +
> > +Return a json-object. If migration is active there will be another
> > json-object
> > +with RAM migration status and if block migration is active another one with
> > +block migration status.
> > +
> > +The main json-object contains the following:
> > +
> > +- "status": migration status (json-string)
>
> Possible values? "active", "completed", "failed", "cancelled". Note
> there's no value for "never attempted"; see below.
>
> > +- "ram": only present if "status" is "active", it is a json-object with the
> > + following RAM information (in bytes):
> > + - "transferred": amount transferred (json-int)
> > + - "remaining": amount remaining (json-int)
> > + - "total": total (json-int)
> > +- "disk": only present if "status" is "active" and it is a block migration,
> > + it is a json-object with the following disk information (in bytes):
> > + - "transferred": amount transferred (json-int)
> > + - "remaining": amount remaining (json-int)
> > + - "total": total (json-int)
>
> Before the first migration, we actually reply with
>
> {"return": {}}
>
> which contradicts the doc.
Good catch, what would be the best behavior here?
> > +Example:
> > +
> > +{
> > + "return":[
> > + {
> > + "bus":0,
> > + "devices":[
> > + {
> > + "bus":0,
> > + "qdev_id":"",
> > + "slot":0,
> > + "class_info":{
> > + "class":1536,
> > + "desc":"Host bridge"
> > + },
> > + "id":{
> > + "device":32902,
> > + "vendor":4663
> > + },
> > + "function":0,
> > + "regions":[
> > +
> > + ]
>
> Suggest to simply write
>
> "regions":[]
I could, and I agree it's better, but I'm using a formatting tool, so
editing by hand would be a PITA.
> > +Note: This example has been shortened as the real response is too long.
>
> Actually, I get a shorter response for my minimal guest: just slots
> 0..3. Suggest to omit slot 4 and this note.
What's the command-line for it?
> > +query-vnc
> > +---------
> > +
> > +Show VNC server information.
> > +
> > +Return a json-object with server information. Connected clients are
> > returned
> > +as a json-array of json-objects.
> > +
> > +The main json-object contains the following:
> > +
> > +- "enabled": true or false (json-bool)
> > +- "host": server's IP address (json-string)
>
> Wouldn't hurt to mention it can be a wildcard address. The example
> below shows the IPv4 wildcard address "0.0.0.0".
>
> > +- "family": address family (json-string, "ipv4" or "ipv6")
>
> inet_strfamily() can also return "unix" and "unknown".
>
> By the way, we use PF_INET6, PF_INET and PF_UNIX there. To be
> pedantically correct, we should use AF_INET6, AF_INET and AF_LOCAL.
>
> > +- "service": server's port number (json-string)
>
> Why isn't this json-int?
Because getnameinfo() returns a string and I didn't bother using it,
do you?
- [Qemu-devel] [PATCH v2 0/2]: QMP: Commands doc, Luiz Capitulino, 2010/05/05
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Avi Kivity, 2010/05/13
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Luiz Capitulino, 2010/05/13
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Daniel P. Berrange, 2010/05/13
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Avi Kivity, 2010/05/13
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Luiz Capitulino, 2010/05/13
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Markus Armbruster, 2010/05/14
- Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc, Avi Kivity, 2010/05/14