On Mon, Mar 23, 2015 at 11:33:50AM +0800, Yanbing Du wrote: > > > On 03/20/2015 10:39 PM, Pavel Hrdina wrote: > > From: Luyao Huang <lhuang@xxxxxxxxxx> > > > > We will ignore --maximum option when only use setvcpus with > > this option, like this (this error is another issue): > > > > # virsh setvcpus test3 --maximum 10 > > error: Failed to create controller cpu for group: No such file or directory > > > > this is because we do not set it in flags before we check if there is > > a flags set. > > > > Refactor these code and fix the logic. > > > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1204033 > > > > Signed-off-by: Luyao Huang <lhuang@xxxxxxxxxx> > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > > --- > > tools/virsh-domain.c | 30 ++++++------------------------ > > 1 file changed, 6 insertions(+), 24 deletions(-) > > > > diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c > > index 1d8225c..9430ad9 100644 > > --- a/tools/virsh-domain.c > > +++ b/tools/virsh-domain.c > > @@ -6735,6 +6735,8 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) > > VSH_EXCLUSIVE_OPTIONS_VAR(current, live); > > VSH_EXCLUSIVE_OPTIONS_VAR(current, config); > > VSH_EXCLUSIVE_OPTIONS_VAR(guest, config); > > + VSH_EXCLUSIVE_OPTIONS_VAR(guest, maximum); > > + VSH_EXCLUSIVE_OPTIONS_VAR(config, maximum); > > 'maximum' should be used with 'config', and 'live' and 'maximum' are > mutually exclusive Yes, you're right, I've definitely meant live instead of config. Good catch. Pavel > > > > > if (config) > > flags |= VIR_DOMAIN_AFFECT_CONFIG; > > @@ -6742,9 +6744,8 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) > > flags |= VIR_DOMAIN_AFFECT_LIVE; > > if (guest) > > flags |= VIR_DOMAIN_VCPU_GUEST; > > - /* none of the options were specified */ > > - if (!current && flags == 0) > > - flags = -1; > > + if (maximum) > > + flags |= VIR_DOMAIN_VCPU_MAXIMUM; > > > > if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) > > return false; > > @@ -6754,30 +6755,11 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) > > goto cleanup; > > } > > > > - if (flags == -1) { > > + /* none of the options were specified */ > > + if (!current && flags == 0) { > > if (virDomainSetVcpus(dom, count) != 0) > > goto cleanup; > > } else { > > - /* If the --maximum flag was given, we need to ensure only the > > - --config flag is in effect as well */ > > - if (maximum) { > > - vshDebug(ctl, VSH_ERR_DEBUG, "--maximum flag was given\n"); > > - > > - flags |= VIR_DOMAIN_VCPU_MAXIMUM; > > - > > - /* If neither the --config nor --live flags were given, OR > > - if just the --live flag was given, we need to error out > > - warning the user that the --maximum flag can only be used > > - with the --config flag */ > > - if (live || !config) { > > - > > - /* Warn the user about the invalid flag combination */ > > - vshError(ctl, _("--maximum must be used with --config only")); > > - goto cleanup; > > - } > > - } > > - > > - /* Apply the virtual cpu changes */ > > if (virDomainSetVcpusFlags(dom, count, flags) < 0) > > goto cleanup; > > } > > > > -- > Regards, > Yanbing Du > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list