Add --config, --live and --current for command blkiotune --- tools/virsh.c | 26 +++++++++++++++++++++++--- tools/virsh.pod | 7 +++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index d98be1c..d458b92 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -3343,6 +3343,9 @@ static const vshCmdOptDef opts_blkiotune[] = { {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"weight", VSH_OT_INT, VSH_OFLAG_NONE, N_("IO Weight in range [100, 1000]")}, + {"config", VSH_OT_BOOL, 0, N_("affect next boot")}, + {"live", VSH_OT_BOOL, 0, N_("affect running domain")}, + {"current", VSH_OT_BOOL, 0, N_("affect current domain")}, {NULL, 0, 0, NULL} }; @@ -3355,6 +3358,23 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) unsigned int i = 0; virTypedParameterPtr params = NULL, temp = NULL; bool ret = false; + unsigned int flags = 0; + int current = vshCommandOptBool(cmd, "current"); + int config = vshCommandOptBool(cmd, "config"); + int live = vshCommandOptBool(cmd, "live"); + + if (current) { + if (live || config) { + vshError(ctl, "%s", _("--current must be specified exclusively")); + return false; + } + flags = VIR_DOMAIN_AFFECT_CURRENT; + } else { + if (config) + flags |= VIR_DOMAIN_AFFECT_CONFIG; + if (live) + flags |= VIR_DOMAIN_AFFECT_LIVE; + } if (!vshConnectionUsability(ctl, ctl->conn)) return false; @@ -3379,7 +3399,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) if (nparams == 0) { /* get the number of blkio parameters */ - if (virDomainGetBlkioParameters(dom, NULL, &nparams, 0) != 0) { + if (virDomainGetBlkioParameters(dom, NULL, &nparams, flags) != 0) { vshError(ctl, "%s", _("Unable to get number of blkio parameters")); goto cleanup; @@ -3393,7 +3413,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) /* now go get all the blkio parameters */ params = vshCalloc(ctl, nparams, sizeof(*params)); - if (virDomainGetBlkioParameters(dom, params, &nparams, 0) != 0) { + if (virDomainGetBlkioParameters(dom, params, &nparams, flags) != 0) { vshError(ctl, "%s", _("Unable to get blkio parameters")); goto cleanup; } @@ -3445,7 +3465,7 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd) weight = 0; } } - if (virDomainSetBlkioParameters(dom, params, nparams, 0) != 0) + if (virDomainSetBlkioParameters(dom, params, nparams, flags) != 0) vshError(ctl, "%s", _("Unable to change blkio parameters")); else ret = true; diff --git a/tools/virsh.pod b/tools/virsh.pod index 7ed3003..9c53203 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -697,6 +697,13 @@ value are kilobytes (i.e. blocks of 1024 bytes). Display or set the blkio parameters. QEMU/KVM supports I<--weight>. I<--weight> is in range [100, 1000]. +If I<--live> is specified, affect a running guest. +If I<--config> is specified, affect the next boot of a persistent guest. +If I<--current> is specified, affect the current guest state. +Both I<--live> and I<--current> flags may be given, but I<--current> is +exclusive. If no flag is specified, behavior is different depending +on hypervisor. + =item B<setvcpus> I<domain-id> I<count> optional I<--maximum> I<--config> I<--live> -- 1.7.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list