conf: Display <physical> in output of voldef

Although the virStorageBackendUpdateVolTargetInfo will update the
target.physical value, there is no way to provide that information
via the virStorageGetVolInfo API since it only returns the capacity
and allocation of a volume. So as described in commit id '0282ca45',
it should be possible to generate an output only <physical> value
for that purpose.

This patch generates the <physical> value in the volume XML output
for the sole purpose of being able to view/see the value to allow
someone to parse the XML in order to obtain the value.

Update the documentation to describe the output only nature.

Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
John Ferlan 2016-12-13 10:56:21 -05:00
parent b9b1aa6392
commit 78661cb1f4
2 changed files with 11 additions and 0 deletions

View File

@ -550,6 +550,11 @@
specified with the same semantics as for <code>allocation</code>
This is compulsory when creating a volume.
<span class="since">Since 0.4.1</span></dd>
<dt><code>physical</code></dt>
<dd>This output only element provides the host physical size of
the target storage volume. The default output <code>unit</code>
will be in bytes.
<span class="since">Since 3.0.0</span></dd>
<dt><code>source</code></dt>
<dd>Provides information about the underlying storage allocation
of the volume. This may not be available for some pool types.

View File

@ -1669,6 +1669,12 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool,
def->target.capacity);
virBufferAsprintf(&buf, "<allocation unit='bytes'>%llu</allocation>\n",
def->target.allocation);
/* NB: Display only - since virStorageVolInfo is limited to just
* 'capacity' and 'allocation' on output. Since we don't read this
* in, be sure it was filled in before printing */
if (def->target.physical)
virBufferAsprintf(&buf, "<physical unit='bytes'>%llu</physical>\n",
def->target.physical);
if (virStorageVolTargetDefFormat(options, &buf,
&def->target, "target") < 0)