提交 68a81f77 编写于 作者: D Dmitry Guryanov 提交者: Daniel P. Berrange

parallels: don't add domain to the list twice

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: NDmitry Guryanov <dguryanov@parallels.com>
上级 6d02d277
...@@ -2303,7 +2303,7 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) ...@@ -2303,7 +2303,7 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
parallelsConnPtr privconn = conn->privateData; parallelsConnPtr privconn = conn->privateData;
virDomainPtr ret = NULL; virDomainPtr ret = NULL;
virDomainDefPtr def; virDomainDefPtr def;
virDomainObjPtr dom = NULL, olddom = NULL; virDomainObjPtr olddom = NULL;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt, if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt,
...@@ -2345,24 +2345,12 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) ...@@ -2345,24 +2345,12 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
} }
virObjectUnlock(olddom); virObjectUnlock(olddom);
if (!(dom = virDomainObjListAdd(privconn->domains, def, ret = virGetDomain(conn, def->name, def->uuid);
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);
if (ret) if (ret)
ret->id = dom->def->id; ret->id = def->id;
cleanup: cleanup:
virDomainDefFree(def); virDomainDefFree(def);
if (dom)
virObjectUnlock(dom);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册