* qemuMonitorQueryBlockstats:
* @mon: monitor object
*
- * Returns data from a call to 'query-blockstats'.
+ * Returns data from a call to 'query-blockstats' without using 'query-nodes'
*/
virJSONValue *
qemuMonitorQueryBlockstats(qemuMonitor *mon)
{
QEMU_CHECK_MONITOR_NULL(mon);
- return qemuMonitorJSONQueryBlockstats(mon);
+ return qemuMonitorJSONQueryBlockstats(mon, false);
}
virJSONValue *
-qemuMonitorJSONQueryBlockstats(qemuMonitor *mon)
+qemuMonitorJSONQueryBlockstats(qemuMonitor *mon,
+ bool queryNodes)
{
g_autoptr(virJSONValue) cmd = NULL;
g_autoptr(virJSONValue) reply = NULL;
- if (!(cmd = qemuMonitorJSONMakeCommand("query-blockstats", NULL)))
+ if (!(cmd = qemuMonitorJSONMakeCommand("query-blockstats",
+ "B:query-nodes", queryNodes,
+ NULL)))
return NULL;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
size_t i;
g_autoptr(virJSONValue) devices = NULL;
- if (!(devices = qemuMonitorJSONQueryBlockstats(mon)))
+ if (!(devices = qemuMonitorJSONQueryBlockstats(mon, true)))
return -1;
for (i = 0; i < virJSONValueArraySize(devices); i++) {
return -1;
}
- if (!(dev_name = virJSONValueObjectGetString(dev, "device"))) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("blockstats device entry was not "
- "in expected format"));
- return -1;
+ if ((dev_name = virJSONValueObjectGetString(dev, "device"))) {
+ if (*dev_name == '\0')
+ dev_name = NULL;
}
- if (*dev_name == '\0')
- dev_name = NULL;
-
rc = qemuMonitorJSONGetOneBlockStatsInfo(dev, dev_name, 0, hash);
if (rc < 0)
int qemuMonitorJSONGetBlockInfo(qemuMonitor *mon,
GHashTable *table);
-virJSONValue *qemuMonitorJSONQueryBlockstats(qemuMonitor *mon);
+virJSONValue *qemuMonitorJSONQueryBlockstats(qemuMonitor *mon,
+ bool queryNodes);
int qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitor *mon,
GHashTable *hash);
int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitor *mon,