Re: [PATCH 6/6] virsh: Add build flags to pool-create[-as] and pool-start

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25.11.2015 20:11, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=830056
> 
> Utilize recently added VIR_STORAGE_POOL_CREATE_WITH_BUILD* flags in
> order to pass the flags along to the virStoragePoolCreateXML and
> virStoragePoolCreate API's.
> 
> This affects the 'virsh pool-create', 'virsh pool-create-as', and
> 'virsh pool-start' commands.  While it could be argued that pool-start
> doesn't need the flags, they could prove useful for someone trying to
> do one command build --overwrite and start command processing or
> essentially starting with a clean slate.
> 
> NB:
> This patch is loosely based upon code originally authored by Osier
> Yang that were not reviewed and pushed, see:
> 
> https://www.redhat.com/archives/libvir-list/2012-July/msg00497.html
> Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx>
> ---
>  tools/virsh-pool.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++---
>  tools/virsh.pod    | 25 ++++++++++++++++++-
>  2 files changed, 94 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
> index cb91cd3..1bb987d 100644
> --- a/tools/virsh-pool.c
> +++ b/tools/virsh-pool.c
> @@ -47,6 +47,13 @@
>       .help = N_("file containing an XML pool description")    \
>      },                                                        \
>  
> +#define OPT_BUILD_COMMON                                      \
> +    {.name = "build",                                         \
> +     .type = VSH_OT_BOOL,                                     \
> +     .flags = 0,                                              \
> +     .help = N_("build the pool as normal")                   \
> +    },                                                        \
> +
>  #define OPT_NO_OVERWRITE_COMMON                                   \
>      {.name = "no-overwrite",                                      \
>       .type = VSH_OT_BOOL,                                         \
> @@ -235,6 +242,9 @@ static const vshCmdInfo info_pool_create[] = {
>  
>  static const vshCmdOptDef opts_pool_create[] = {
>      OPT_FILE_COMMON
> +    OPT_BUILD_COMMON
> +    OPT_NO_OVERWRITE_COMMON
> +    OPT_OVERWRITE_COMMON
>  
>      {.name = NULL}
>  };
> @@ -246,15 +256,32 @@ cmdPoolCreate(vshControl *ctl, const vshCmd *cmd)
>      const char *from = NULL;
>      bool ret = true;
>      char *buffer;
> +    bool build;
> +    bool overwrite;
> +    bool no_overwrite;
> +    unsigned int flags = 0;
>      virshControlPtr priv = ctl->privData;
>  
>      if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0)
>          return false;
>  
> +    build = vshCommandOptBool(cmd, "build");
> +    overwrite = vshCommandOptBool(cmd, "overwrite");
> +    no_overwrite = vshCommandOptBool(cmd, "no-overwrite");
> +
> +    VSH_EXCLUSIVE_OPTIONS_VAR(overwrite, no_overwrite);


A-HA! I knew it! These are mutually exclusive. So please do fix 1/6.

> +
> +    if (build)
> +        flags |= VIR_STORAGE_POOL_CREATE_WITH_BUILD;
> +    if (overwrite)
> +        flags |= VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE;
> +    if (no_overwrite)
> +        flags |= VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE;
> +
>      if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
>          return false;
>  
> -    pool = virStoragePoolCreateXML(priv->conn, buffer, 0);
> +    pool = virStoragePoolCreateXML(priv->conn, buffer, flags);
>      VIR_FREE(buffer);
>  
>      if (pool != NULL) {

ACK

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]