On Wed, Apr 23, 2014 at 06:35:02PM +0400, Dmitry Guryanov wrote: > There is a problem with function parallelsDomainDefineXML. If we > are defining a new domain, then we need to do 2 things: aclually > create a VM in PCS and add new domain to the cached list of domains > _parallelsConn.domains. > > This is done in the function parallelsLoadDomains. So call to > virDomainObjListAdd will return a error, because a domain > with the same name and id will already be in the list. > > Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx> > --- > src/parallels/parallels_driver.c | 18 +++--------------- > 1 file changed, 3 insertions(+), 15 deletions(-) > > diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c > index 1c58b45..4ab3e1c 100644 > --- a/src/parallels/parallels_driver.c > +++ b/src/parallels/parallels_driver.c > @@ -2303,7 +2303,7 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) > parallelsConnPtr privconn = conn->privateData; > virDomainPtr ret = NULL; > virDomainDefPtr def; > - virDomainObjPtr dom = NULL, olddom = NULL; > + virDomainObjPtr olddom = NULL; > > parallelsDriverLock(privconn); > if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt, > @@ -2345,24 +2345,12 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) > } > virObjectUnlock(olddom); > > - if (!(dom = virDomainObjListAdd(privconn->domains, def, > - privconn->xmlopt, > - 0, NULL))) { > - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > - _("Can't allocate domobj")); > - goto cleanup; > - } > - > - def = NULL; > - > - ret = virGetDomain(conn, dom->def->name, dom->def->uuid); > + ret = virGetDomain(conn, def->name, def->uuid); > if (ret) > - ret->id = dom->def->id; > + ret->id = def->id; > > cleanup: > virDomainDefFree(def); > - if (dom) > - virObjectUnlock(dom); > parallelsDriverUnlock(privconn); > return ret; > } ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list