提交 596a1371 编写于 作者: E Eric Blake

getstats: report block sizes for offline domains

The prior refactoring can now be put to use. With the same domain
as the earlier commit 7b499262 (one qcow2 disk and an empty
cdrom drive):
$ virsh domstats --block foo
Domain: 'foo'
  block.count=2
  block.0.name=hda
  block.0.path=/var/lib/libvirt/images/foo.qcow2
  block.0.allocation=1309614080
  block.0.capacity=42949672960
  block.0.physical=1309671424
  block.1.name=hdc

* src/qemu/qemu_driver.c (qemuDomainGetStatsBlock): Use
qemuStorageLimitsRefresh to report offline statistics.
Signed-off-by: NEric Blake <eblake@redhat.com>
上级 8de6544e
...@@ -18565,6 +18565,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, ...@@ -18565,6 +18565,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
virHashTablePtr stats = NULL; virHashTablePtr stats = NULL;
qemuDomainObjPrivatePtr priv = dom->privateData; qemuDomainObjPrivatePtr priv = dom->privateData;
bool abbreviated = false; bool abbreviated = false;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom)) { if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom)) {
abbreviated = true; /* it's ok, just go ahead silently */ abbreviated = true; /* it's ok, just go ahead silently */
...@@ -18594,8 +18595,19 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, ...@@ -18594,8 +18595,19 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
if (abbreviated || !disk->info.alias || if (abbreviated || !disk->info.alias ||
!(entry = virHashLookup(stats, disk->info.alias))) { !(entry = virHashLookup(stats, disk->info.alias))) {
/* FIXME: we could still look up sizing by sharing code if (virStorageSourceIsEmpty(disk->src))
* with qemuDomainGetBlockInfo */ continue;
if (qemuStorageLimitsRefresh(driver, cfg, dom, disk->src) < 0)
goto cleanup;
if (disk->src->allocation)
QEMU_ADD_BLOCK_PARAM_ULL(record, maxparams, i,
"allocation", disk->src->allocation);
if (disk->src->capacity)
QEMU_ADD_BLOCK_PARAM_ULL(record, maxparams, i,
"capacity", disk->src->capacity);
if (disk->src->physical)
QEMU_ADD_BLOCK_PARAM_ULL(record, maxparams, i,
"physical", disk->src->physical);
continue; continue;
} }
...@@ -18632,6 +18644,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, ...@@ -18632,6 +18644,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
cleanup: cleanup:
virHashFree(stats); virHashFree(stats);
virObjectUnref(cfg);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册