On 05/04/2016 10:26 AM, Nitesh Konkar wrote: > virshDomainDetachInterface handles virsh interface > detach from the specified live/config domain xml. > > Signed-off-by: Nitesh Konkar <nitkon12@xxxxxxxxxxxxxxxxxx> > --- > tools/virsh-domain.c | 120 ++++++++++++++++++++++++++++----------------------- > 1 file changed, 67 insertions(+), 53 deletions(-) > > diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c > index 0a6caae..1b4e9f0 100644 > --- a/tools/virsh-domain.c > +++ b/tools/virsh-domain.c > @@ -11199,57 +11199,21 @@ static const vshCmdOptDef opts_detach_interface[] = { > }; > Thanks, I pushed with the following changes: > + > + > +static bool > +cmdDetachInterface(vshControl *ctl, const vshCmd *cmd) > +{ > + virDomainPtr dom = NULL; > + char *doc = NULL; > + const char *mac = NULL, *type = NULL; > + bool ret = false; > + unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT; > + bool current = vshCommandOptBool(cmd, "current"); > + bool config = vshCommandOptBool(cmd, "config"); > + bool live = vshCommandOptBool(cmd, "live"); > + bool persistent = vshCommandOptBool(cmd, "persistent"); > + > + VSH_EXCLUSIVE_OPTIONS_VAR(persistent, current); > + > + VSH_EXCLUSIVE_OPTIONS_VAR(current, live); > + VSH_EXCLUSIVE_OPTIONS_VAR(current, config); > + > + if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0) > + goto cleanup; > + > + if (vshCommandOptStringReq(ctl, cmd, "mac", &mac) < 0) > + goto cleanup; > + Moved these two checks below the 'dom' lookup, which is where they were originally > + if (config || persistent) > + flags |= VIR_DOMAIN_AFFECT_CONFIG; > + if (live) > + flags |= VIR_DOMAIN_AFFECT_LIVE; > + > + if (!(dom = virshCommandOptDomain(ctl, cmd, NULL))) > + return false; > + > + if (persistent && > + virDomainIsActive(dom) == 1) > + flags |= VIR_DOMAIN_AFFECT_LIVE; > + > + if (flags & VIR_DOMAIN_AFFECT_CONFIG) > + doc = virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_INACTIVE); > + else > + doc = virDomainGetXMLDesc(dom, 0); > + > + if (!doc) > + goto cleanup; > + else > + ret = virshDomainDetachInterface(doc, flags, dom, ctl, current, type, mac); > + Split this long line Thanks, Cole > + cleanup: > + if (!ret) { > vshError(ctl, "%s", _("Failed to detach interface")); > } else { > vshPrint(ctl, "%s", _("Interface detached successfully\n")); > - functionReturn = true; > } > > - cleanup: > VIR_FREE(doc); > - VIR_FREE(detach_xml); > virDomainFree(dom); > - xmlXPathFreeObject(obj); > - xmlXPathFreeContext(ctxt); > - xmlFreeDoc(xml); > - return functionReturn; > + return ret; > } > > typedef enum { > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list