On Wed, Jul 13, 2011 at 06:19:44PM +0800, Osier Yang wrote: > --- > tools/virsh.c | 12 +++++++++++- > tools/virsh.pod | 6 +++++- > 2 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/tools/virsh.c b/tools/virsh.c > index 3cdf043..f81e923 100644 > --- a/tools/virsh.c > +++ b/tools/virsh.c > @@ -1409,6 +1409,7 @@ static const vshCmdInfo info_undefine[] = { > > static const vshCmdOptDef opts_undefine[] = { > {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name or uuid")}, > + {"undefine-managed-state", VSH_OT_BOOL, 0, N_("remove domain managed state file")}, IMO, it would be clearer to call this option remove-managed-state. Dave > {NULL, 0, 0, NULL} > }; > > @@ -1419,6 +1420,14 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd) > bool ret = true; > const char *name = NULL; > int id; > + int flags = 0; > + int undefine_managed_state = vshCommandOptBool(cmd, "undefine-managed-state"); > + > + if (undefine_managed_state) > + flags |= VIR_DOMAIN_UNDEFINE_MANAGED_STATE; > + > + if (!undefine_managed_state) > + flags = -1; > > if (!vshConnectionUsability(ctl, ctl->conn)) > return false; > @@ -1440,7 +1449,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd) > VSH_BYNAME|VSH_BYUUID))) > return false; > > - if (virDomainUndefine(dom) == 0) { > + if (((flags == -1) ? virDomainUndefine(dom) : > + virDomainUndefineWithFlags(dom, flags)) == 0) { > vshPrint(ctl, _("Domain %s has been undefined\n"), name); > } else { > vshError(ctl, _("Failed to undefine domain %s"), name); > diff --git a/tools/virsh.pod b/tools/virsh.pod > index 8b820d2..393d014 100644 > --- a/tools/virsh.pod > +++ b/tools/virsh.pod > @@ -804,11 +804,15 @@ hypervisor. > Output the device used for the TTY console of the domain. If the information > is not available the processes will provide an exit code of 1. > > -=item B<undefine> I<domain-id> > +=item B<undefine> I<domain-id> optional I<--undefine-managed-state> > > Undefine the configuration for an inactive domain. Since it's not running > the domain name or UUID must be used as the I<domain-id>. > > +If I<--undefine-managed-state> is specified, the managed state file will > +be removed along with the domain undefine peocess, the entire domain > +undefine process will fail if it fails on removing the managed state file. > + > =item B<vcpucount> I<domain-id> optional I<--maximum> I<--current> > I<--config> I<--live> > > -- > 1.7.6 > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list