mirror of https://gitee.com/openkylin/libvirt.git
virsh: Implement 'domblkthreshold' command to call virDomainSetBlockThreshold
Add a simple wrapper which will allow to set the threshold for delivering the event.
This commit is contained in:
parent
bb09798fbe
commit
97148962b5
|
@ -7096,6 +7096,64 @@ cmdSetvcpu(vshControl *ctl, const vshCmd *cmd)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* "domblkthreshold" command
|
||||
*/
|
||||
static const vshCmdInfo info_domblkthreshold[] = {
|
||||
{.name = "help",
|
||||
.data = N_("set the threshold for block-threshold event for a given block "
|
||||
"device or it's backing chain element")
|
||||
},
|
||||
{.name = "desc",
|
||||
.data = N_("set threshold for block-threshold event for a block device")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
static const vshCmdOptDef opts_domblkthreshold[] = {
|
||||
VIRSH_COMMON_OPT_DOMAIN_FULL,
|
||||
{.name = "dev",
|
||||
.type = VSH_OT_DATA,
|
||||
.flags = VSH_OFLAG_REQ,
|
||||
.help = N_("device to set threshold for")
|
||||
},
|
||||
{.name = "threshold",
|
||||
.type = VSH_OT_INT,
|
||||
.flags = VSH_OFLAG_REQ,
|
||||
.help = N_("threshold as a scaled number (by default bytes)")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
static bool
|
||||
cmdDomblkthreshold(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
unsigned long long threshold;
|
||||
const char *dev = NULL;
|
||||
virDomainPtr dom;
|
||||
bool ret = false;
|
||||
|
||||
if (vshCommandOptStringReq(ctl, cmd, "dev", &dev))
|
||||
return false;
|
||||
|
||||
if (vshCommandOptScaledInt(ctl, cmd, "threshold",
|
||||
&threshold, 1, ULLONG_MAX) < 0)
|
||||
return false;
|
||||
|
||||
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
|
||||
return false;
|
||||
|
||||
if (virDomainSetBlockThreshold(dom, dev, threshold, 0) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ret = true;
|
||||
|
||||
cleanup:
|
||||
virDomainFree(dom);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* "iothreadinfo" command
|
||||
*/
|
||||
|
@ -14067,5 +14125,11 @@ const vshCmdDef domManagementCmds[] = {
|
|||
.info = info_setvcpu,
|
||||
.flags = 0
|
||||
},
|
||||
{.name = "domblkthreshold",
|
||||
.handler = cmdDomblkthreshold,
|
||||
.opts = opts_domblkthreshold,
|
||||
.info = info_domblkthreshold,
|
||||
.flags = 0
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
|
|
@ -1274,6 +1274,14 @@ I<--bytes> with a scaled value allows to use finer granularity. A scaled value
|
|||
used without I<--bytes> will be rounded down to MiB/s. Note that the
|
||||
I<--bytes> may be unsupported by the hypervisor.
|
||||
|
||||
|
||||
=item B<domblkthreshold> I<domain> I<dev> I<threshold>
|
||||
|
||||
Set the threshold value for delivering the block-threshold event. I<dev>
|
||||
specifies the disk device target or backing chain element of given device using
|
||||
the 'target[1]' syntax. I<threshold> is a scaled value of the offset. If the
|
||||
block device should write beyond that offset the event will be delivered.
|
||||
|
||||
=item B<blockresize> I<domain> I<path> I<size>
|
||||
|
||||
Resize a block device of domain while the domain is running, I<path>
|
||||
|
|
Loading…
Reference in New Issue