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@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list