mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
parallels: implement domainUndefine and domainUndefineFlags
Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
This commit is contained in:
parent
a7ed488dd7
commit
7cbb50e912
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user