提交 7cbb50e9 编写于 作者: D Dmitry Guryanov 提交者: Peter Krempa

parallels: implement domainUndefine and domainUndefineFlags

Signed-off-by: NDmitry Guryanov <dguryanov@parallels.com>
上级 a7ed488d
......@@ -917,6 +917,30 @@ parallelsDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
return parallelsDomainCreate(domain);
}
static int
parallelsDomainUndefineFlags(virDomainPtr domain,
unsigned int flags)
{
parallelsConnPtr privconn = domain->conn->privateData;
virDomainObjPtr dom = NULL;
virCheckFlags(0, -1);
dom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
if (dom == NULL) {
parallelsDomNotFoundError(domain);
return -1;
}
return prlsdkUnregisterDomain(privconn, dom);
}
static int
parallelsDomainUndefine(virDomainPtr domain)
{
return parallelsDomainUndefineFlags(domain, 0);
}
static virHypervisorDriver parallelsDriver = {
.no = VIR_DRV_PARALLELS,
.name = "Parallels",
......@@ -949,6 +973,8 @@ static virHypervisorDriver parallelsDriver = {
.domainCreate = parallelsDomainCreate, /* 0.10.0 */
.domainCreateWithFlags = parallelsDomainCreateWithFlags, /* 1.2.10 */
.domainDefineXML = parallelsDomainDefineXML, /* 0.10.0 */
.domainUndefine = parallelsDomainUndefine, /* 1.2.10 */
.domainUndefineFlags = parallelsDomainUndefineFlags, /* 1.2.10 */
.domainIsActive = parallelsDomainIsActive, /* 1.2.10 */
.connectDomainEventRegisterAny = parallelsConnectDomainEventRegisterAny, /* 1.2.10 */
.connectDomainEventDeregisterAny = parallelsConnectDomainEventDeregisterAny, /* 1.2.10 */
......
......@@ -2709,3 +2709,21 @@ prlsdkCreateCt(virConnectPtr conn, virDomainDefPtr def)
PrlHandle_Free(sdkdom);
return ret;
}
int
prlsdkUnregisterDomain(parallelsConnPtr privconn, virDomainObjPtr dom)
{
parallelsDomObjPtr privdom = dom->privateData;
PRL_HANDLE job;
job = PrlVm_Unreg(privdom->sdkdom);
if (waitJob(job, privconn->jobTimeout))
return -1;
if (prlsdkSendEvent(privconn, dom, VIR_DOMAIN_EVENT_UNDEFINED,
VIR_DOMAIN_EVENT_UNDEFINED_REMOVED) < 0)
return -1;
virDomainObjListRemove(privconn->domains, dom);
return 0;
}
......@@ -51,3 +51,5 @@ prlsdkApplyConfig(virConnectPtr conn,
virDomainDefPtr new);
int prlsdkCreateVm(virConnectPtr conn, virDomainDefPtr def);
int prlsdkCreateCt(virConnectPtr conn, virDomainDefPtr def);
int
prlsdkUnregisterDomain(parallelsConnPtr privconn, virDomainObjPtr dom);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册