
On 01/25/13 14:31, Eric Blake wrote:
On 01/25/2013 06:05 AM, Peter Krempa wrote:
On 01/25/13 13:20, Michal Privoznik wrote:
With our code, we fail to query for tray-open attribute currently. That's because in HMP it is 'tray-open' and in QMP it's 'tray_open'. It always has been. However, we got it exactly the opposite. --- src/qemu/qemu_monitor_json.c | 2 +- src/qemu/qemu_monitor_text.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index de5f115..0aa3bcb 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -1588,7 +1588,7 @@ int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon, /* Don't check for success here, because 'tray-open' is presented iff * medium is ejected. */ - ignore_value(virJSONValueObjectGetBoolean(dev, "tray-open", + ignore_value(virJSONValueObjectGetBoolean(dev, "tray_open", &info->tray_open));
Indeed. The returned value is with the underscore, while the documentation uses the dash.
Where did you find that? Because qemu.git/qapi-schema.json says:
{ 'type': 'BlockInfo', 'data': {'device': 'str', 'type': 'str', 'removable': 'bool', 'locked': 'bool', '*inserted': 'BlockDeviceInfo', '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus', '*dirty': 'BlockDirtyInfo' } }
with the underscore, and that's the file I refer to for documentation of QMP.
I usualy refer to qemu.git/qmp-commands.hx: 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) - deprecated, retained for backward compatibility - Possible values: "unknown" - "removable": true if the device is removable, false otherwise (json-bool) - "locked": true if the device is locked, false otherwise (json-bool) - "tray-open": only present if removable, true if the device has a tray, and it is open (json-bool) - "inserted": only present if the device is inserted, it is a json-object containing the following: [...]