[libvirt] [PATCH 3/3] storage: Add virsh support for fs pool formating

Daniel Veillard veillard at redhat.com
Fri Sep 2 11:16:43 UTC 2011


On Wed, Aug 31, 2011 at 10:34:48PM +0800, Osier Yang wrote:
> ---
>  tools/virsh.c   |   14 ++++++++++++--
>  tools/virsh.pod |   11 ++++++++++-
>  2 files changed, 22 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 49034ae..cd87107 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -7134,6 +7134,8 @@ static const vshCmdInfo info_pool_build[] = {
>  
>  static const vshCmdOptDef opts_pool_build[] = {
>      {"pool", VSH_OT_DATA, VSH_OFLAG_REQ, N_("pool name or uuid")},
> +    {"no-overwrite", VSH_OT_BOOL, 0, N_("do not overwrite an existing pool of this type")},
> +    {"overwrite", VSH_OT_BOOL, 0, N_("overwrite any existing data")},
>      {NULL, 0, 0, NULL}
>  };
>  
> @@ -7143,6 +7145,7 @@ cmdPoolBuild(vshControl *ctl, const vshCmd *cmd)
>      virStoragePoolPtr pool;
>      bool ret = true;
>      const char *name;
> +    unsigned int flags = 0;
>  
>      if (!vshConnectionUsability(ctl, ctl->conn))
>          return false;
> @@ -7150,7 +7153,15 @@ cmdPoolBuild(vshControl *ctl, const vshCmd *cmd)
>      if (!(pool = vshCommandOptPool(ctl, cmd, "pool", &name)))
>          return false;
>  
> -    if (virStoragePoolBuild(pool, 0) == 0) {
> +    if (vshCommandOptBool (cmd, "no-overwrite")) {
> +        flags |= VIR_STORAGE_POOL_BUILD_NO_OVERWRITE;
> +    }
> +
> +    if (vshCommandOptBool (cmd, "overwrite")) {
> +        flags |= VIR_STORAGE_POOL_BUILD_OVERWRITE;
> +    }
> +
> +    if (virStoragePoolBuild(pool, flags) == 0) {
>          vshPrint(ctl, _("Pool %s built\n"), name);
>      } else {
>          vshError(ctl, _("Failed to build pool %s"), name);
> @@ -7162,7 +7173,6 @@ cmdPoolBuild(vshControl *ctl, const vshCmd *cmd)
>      return ret;
>  }
>  
> -
>  /*
>   * "pool-destroy" command
>   */
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index 2cd0f73..27e6f05 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -1274,10 +1274,19 @@ where the query is performed.
>  
>  Configure whether I<pool> should automatically start at boot.
>  
> -=item B<pool-build> I<pool-or-uuid>
> +=item B<pool-build> I<pool-or-uuid> [I<--overwrite>] [I<--no-overwrite>]
>  
>  Build a given pool.
>  
> +Options I<--overwrite> and I<--no-overwrite> can only be used for
> +B<pool-build> a filesystem pool. If neither of them is specified,
> +B<pool-build> on a filesystem pool only makes the directory; If
> +I<--no-overwrite> is specified, it probes to determine if a
> +filesystem already exists on the target device, returning an error
> +if exists, or using mkfs to format the target device if not; If
> +I<--overwrite> is specified, mkfs is always executed, any existed
> +data on the target device is overwritten unconditionally.
> +
>  =item B<pool-create> I<file>
>  
>  Create and start a pool object from the XML I<file>.

  ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list