mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
Widening API change - accept empty path for virDomainBlockStats
And provide domain summary stat in that case, for lxc backend. Use case is a container inheriting all devices from the host, e.g. when doing application containerization.
This commit is contained in:
parent
dcc85c603e
commit
0bd2ccdecc
@ -7750,7 +7750,9 @@ error:
|
|||||||
* an unambiguous source name of the block device (the <source
|
* an unambiguous source name of the block device (the <source
|
||||||
* file='...'/> sub-element, such as "/path/to/image"). Valid names
|
* file='...'/> sub-element, such as "/path/to/image"). Valid names
|
||||||
* can be found by calling virDomainGetXMLDesc() and inspecting
|
* can be found by calling virDomainGetXMLDesc() and inspecting
|
||||||
* elements within //domain/devices/disk.
|
* elements within //domain/devices/disk. Some drivers might also
|
||||||
|
* accept the empty string for the @disk parameter, and then yield
|
||||||
|
* summary stats for the entire domain.
|
||||||
*
|
*
|
||||||
* Domains may have more than one block device. To get stats for
|
* Domains may have more than one block device. To get stats for
|
||||||
* each you should make multiple calls to this function.
|
* each you should make multiple calls to this function.
|
||||||
@ -7816,7 +7818,9 @@ error:
|
|||||||
* an unambiguous source name of the block device (the <source
|
* an unambiguous source name of the block device (the <source
|
||||||
* file='...'/> sub-element, such as "/path/to/image"). Valid names
|
* file='...'/> sub-element, such as "/path/to/image"). Valid names
|
||||||
* can be found by calling virDomainGetXMLDesc() and inspecting
|
* can be found by calling virDomainGetXMLDesc() and inspecting
|
||||||
* elements within //domain/devices/disk.
|
* elements within //domain/devices/disk. Some drivers might also
|
||||||
|
* accept the empty string for the @disk parameter, and then yield
|
||||||
|
* summary stats for the entire domain.
|
||||||
*
|
*
|
||||||
* Domains may have more than one block device. To get stats for
|
* Domains may have more than one block device. To get stats for
|
||||||
* each you should make multiple calls to this function.
|
* each you should make multiple calls to this function.
|
||||||
|
@ -888,7 +888,7 @@ static const vshCmdOptDef opts_domblkstat[] = {
|
|||||||
},
|
},
|
||||||
{.name = "device",
|
{.name = "device",
|
||||||
.type = VSH_OT_DATA,
|
.type = VSH_OT_DATA,
|
||||||
.flags = VSH_OFLAG_REQ,
|
.flags = VSH_OFLAG_EMPTY_OK,
|
||||||
.help = N_("block device")
|
.help = N_("block device")
|
||||||
},
|
},
|
||||||
{.name = "human",
|
{.name = "human",
|
||||||
@ -954,9 +954,16 @@ cmdDomblkstat(vshControl *ctl, const vshCmd *cmd)
|
|||||||
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
|
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
/* device argument is optional now. if it's missing, supply empty
|
||||||
|
string to denote 'all devices'. A NULL device arg would violate
|
||||||
|
API contract.
|
||||||
|
*/
|
||||||
if (vshCommandOptStringReq(ctl, cmd, "device", &device) < 0)
|
if (vshCommandOptStringReq(ctl, cmd, "device", &device) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
if (!device)
|
||||||
|
device = "";
|
||||||
|
|
||||||
rc = virDomainBlockStatsFlags(dom, device, NULL, &nparams, 0);
|
rc = virDomainBlockStatsFlags(dom, device, NULL, &nparams, 0);
|
||||||
|
|
||||||
/* It might fail when virDomainBlockStatsFlags is not
|
/* It might fail when virDomainBlockStatsFlags is not
|
||||||
|
@ -623,12 +623,13 @@ If I<--graceful> is specified, don't resort to extreme measures
|
|||||||
(e.g. SIGKILL) when the guest doesn't stop after a reasonable timeout;
|
(e.g. SIGKILL) when the guest doesn't stop after a reasonable timeout;
|
||||||
return an error instead.
|
return an error instead.
|
||||||
|
|
||||||
=item B<domblkstat> I<domain> I<block-device> [I<--human>]
|
=item B<domblkstat> I<domain> [I<block-device>] [I<--human>]
|
||||||
|
|
||||||
Get device block stats for a running domain. A I<block-device> corresponds
|
Get device block stats for a running domain. A I<block-device> corresponds
|
||||||
to a unique target name (<target dev='name'/>) or source file (<source
|
to a unique target name (<target dev='name'/>) or source file (<source
|
||||||
file='name'/>) for one of the disk devices attached to I<domain> (see
|
file='name'/>) for one of the disk devices attached to I<domain> (see
|
||||||
also B<domblklist> for listing these names).
|
also B<domblklist> for listing these names). On a lxc domain, omitting the
|
||||||
|
I<block-device> yields device block stats summarily for the entire domain.
|
||||||
|
|
||||||
Use I<--human> for a more human readable output.
|
Use I<--human> for a more human readable output.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user