On Fri, Jun 12, 2015 at 13:29:26 -0600, Eric Blake wrote: > Add a new 'virsh domblkthreshold' command to use the new API. > > * tools/virsh.pod (domblkthreshold): Document it. > * tools/virsh-domain-monitor.c (cmdDomblkthreshold): New function. > (domMonitoringCmds): Register it. > > Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> > --- > tools/virsh-domain-monitor.c | 81 ++++++++++++++++++++++++++++++++++++++++++++ > tools/virsh.pod | 24 +++++++++++++ > 2 files changed, 105 insertions(+) > > diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c > index 1d4dc25..66f7571 100644 > --- a/tools/virsh-domain-monitor.c > +++ b/tools/virsh-domain-monitor.c > @@ -571,6 +571,81 @@ cmdDomblklist(vshControl *ctl, const vshCmd *cmd) > } > > /* > + * "domblkthreshold" command > + */ > +static const vshCmdInfo info_domblkthreshold[] = { > + {.name = "help", > + .data = N_("set domain block device write thresholds") > + }, > + {.name = "desc", > + .data = N_("Set a threshold to get a one-shot event if block " > + "allocation exceeds that size") > + }, > + {.name = NULL} > +}; > + > +static const vshCmdOptDef opts_domblkthreshold[] = { > + {.name = "domain", > + .type = VSH_OT_DATA, > + .flags = VSH_OFLAG_REQ, > + .help = N_("domain name, id or uuid"), > + }, > + {.name = "device", > + .type = VSH_OT_DATA, > + .flags = VSH_OFLAG_REQ, > + .help = N_("block device"), > + }, > + {.name = "threshold", > + .type = VSH_OT_INT, > + .flags = VSH_OFLAG_REQ, > + .help = N_("new threshold, or 0 to disable"), > + }, > + {.name = "percentage", I'd rather use "proportional" or something else that does not hint to parts per hundred. > + .type = VSH_OT_BOOL, > + .help = N_("threshold is in units of .001% instead of bytes"), > + }, > + {.name = NULL} > +}; > + > +static bool > +cmdDomblkthreshold(vshControl *ctl, const vshCmd *cmd) > +{ > + virDomainPtr dom; > + bool ret = false; > + const char *device = NULL; > + unsigned long long threshold; > + bool percentage = vshCommandOptBool(cmd, "percentage"); > + unsigned int flags = 0; > + > + if (percentage) > + flags |= VIR_DOMAIN_BLOCK_SET_WRITE_THRESHOLD_PERCENTAGE; As well as here. > + > + if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) > + return false; > + > + if (vshCommandOptStringReq(ctl, cmd, "device", &device) < 0) > + goto cleanup; > + if (vshCommandOptULongLong(ctl, cmd, "threshold", &threshold) < 0) > + goto cleanup; > + Peter
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list