[libvirt] [PATCH 5/5] setmem: add the new options to "virsh setmem" command

Daniel P. Berrange berrange at redhat.com
Wed Mar 9 15:59:42 UTC 2011


On Wed, Mar 02, 2011 at 05:13:39PM +0900, Taku Izumi wrote:
> 
> This patch adds the new options (--live and --config)  to "virsh setmem" command.
> The behavior of above options is the same as that of "virsh setvcpus" and so on.
> That is, when the --config option is specified, a modification is effective for
> the persistent domain. Moreover we can modify the memory size of inactive domains
> as well as that of active domains.
> 
> 
> Signed-off-by: Taku Izumi <izumi.taku at jp.fujitsu.com>
> ---
>  tools/virsh.c |   16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
> Index: libvirt-git/tools/virsh.c
> ===================================================================
> --- libvirt-git.orig/tools/virsh.c
> +++ libvirt-git/tools/virsh.c
> @@ -2910,6 +2910,8 @@ static const vshCmdInfo info_setmem[] =
>  static const vshCmdOptDef opts_setmem[] = {
>      {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
>      {"kilobytes", VSH_OT_INT, VSH_OFLAG_REQ, N_("number of kilobytes of memory")},
> +    {"config", VSH_OT_BOOL, 0, N_("affect next boot")},
> +    {"live", VSH_OT_BOOL, 0, N_("affect running domain")},
>      {NULL, 0, 0, NULL}
>  };
> 
> @@ -2920,6 +2922,10 @@ cmdSetmem(vshControl *ctl, const vshCmd
>      virDomainInfo info;
>      unsigned long kilobytes;
>      int ret = TRUE;
> +    int config = vshCommandOptBool(cmd, "config");
> +    int live = vshCommandOptBool(cmd, "live");
> +    int flags = ((config ? VIR_DOMAIN_MEM_CONFIG : 0) |
> +                 (live ? VIR_DOMAIN_MEM_LIVE : 0));
> 
>      if (!vshConnectionUsability(ctl, ctl->conn))
>          return FALSE;
> @@ -2947,8 +2953,14 @@ cmdSetmem(vshControl *ctl, const vshCmd
>          return FALSE;
>      }
> 
> -    if (virDomainSetMemory(dom, kilobytes) != 0) {
> -        ret = FALSE;
> +    if (!flags) {
> +    	if (virDomainSetMemory(dom, kilobytes) != 0) {
> +            ret = FALSE;
> +    	}

Indentation went a little bit wrong here. Also  '!flags' could
in fact be '!flags || (flags == VIR_DOMAIN_MEM_LIVE)'  since if
only the --live flag was set, we can still use the original API
call for greater backcompatibility.

> +    } else {
> +        if (virDomainSetMemoryFlags(dom, kilobytes, flags) < 0) {
> +            ret = FALSE;
> +        }
>      }

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list