From: Justin Clift Date: Thu, 13 Jan 2011 17:42:03 +0000 (+1100) Subject: virsh: ensure --maximum flag used only with --config for setvcpus X-Git-Tag: v0.8.8~214 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6935a1e2899f9e1baeacac417fb1b0651e09af5c;p=thirdparty%2Flibvirt.git virsh: ensure --maximum flag used only with --config for setvcpus --- diff --git a/tools/virsh.c b/tools/virsh.c index 018e363794..4f103ae6d8 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -1,7 +1,7 @@ /* * virsh.c: a shell to exercise the libvirt API * - * Copyright (C) 2005, 2007-2010 Red Hat, Inc. + * Copyright (C) 2005, 2007-2011 Red Hat, Inc. * * See COPYING.LIB for the License of this software * @@ -2765,11 +2765,31 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) ret = FALSE; } } else { + /* If the --maximum flag was given, we need to ensure only the + --config flag is in effect as well */ + if (maximum) { + vshDebug(ctl, 5, "--maximum flag was given\n"); + + /* 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")); + ret = FALSE; + goto cleanup; + } + } + + /* Apply the virtual cpu changes */ if (virDomainSetVcpusFlags(dom, count, flags) < 0) { ret = FALSE; } } + cleanup: virDomainFree(dom); return ret; }