提交 2780bcd9 编写于 作者: P Peter Krempa

qemu: monitor: Extract the top level format node when querying disks

To allow matching the node names gathered via 'query-named-block-nodes'
we need to query and then use the top level nodes from 'query-block'.
Add the data to the structure returned by qemuMonitorGetBlockInfo.
上级 b0aa088f
......@@ -364,6 +364,7 @@ struct qemuDomainDiskInfo {
bool tray_open;
bool empty;
int io_status;
char *nodename;
};
typedef struct _qemuDomainHostdevPrivate qemuDomainHostdevPrivate;
......
......@@ -2173,6 +2173,16 @@ qemuMonitorBlockIOStatusToError(const char *status)
}
static void
qemuDomainDiskInfoFree(void *value, const void *name ATTRIBUTE_UNUSED)
{
struct qemuDomainDiskInfo *info = value;
VIR_FREE(info->nodename);
VIR_FREE(info);
}
virHashTablePtr
qemuMonitorGetBlockInfo(qemuMonitorPtr mon)
{
......@@ -2181,7 +2191,7 @@ qemuMonitorGetBlockInfo(qemuMonitorPtr mon)
QEMU_CHECK_MONITOR_NULL(mon);
if (!(table = virHashCreate(32, virHashValueFree)))
if (!(table = virHashCreate(32, qemuDomainDiskInfoFree)))
return NULL;
if (mon->json)
......
......@@ -1868,9 +1868,11 @@ int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon,
for (i = 0; i < virJSONValueArraySize(devices); i++) {
virJSONValuePtr dev;
virJSONValuePtr image;
struct qemuDomainDiskInfo *info;
const char *thisdev;
const char *status;
const char *nodename;
if (!(dev = qemuMonitorJSONGetBlockDev(devices, i)))
goto cleanup;
......@@ -1907,8 +1909,12 @@ int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon,
info->tray = true;
/* presence of 'inserted' notifies that a medium is in the device */
if (!virJSONValueObjectGetObject(dev, "inserted"))
if ((image = virJSONValueObjectGetObject(dev, "inserted"))) {
if ((nodename = virJSONValueObjectGetString(image, "node-name")))
ignore_value(VIR_STRDUP(info->nodename, nodename));
} else {
info->empty = true;
}
/* Missing io-status indicates no error */
if ((status = virJSONValueObjectGetString(dev, "io-status"))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册