mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
vz: fix active domain listing
Since commit 9c14a9ab we have broken active domain listing because reworked prlsdkLoadDomain doesn't set dom->def->id propely. It just looses it when a new def structure is set. Now we make prlsdkConvertDomainState function return void and move calling it after an old dom->def is replaces with a new one within prlsdkLoadDomain function. Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com>
This commit is contained in:
parent
2e70af12f2
commit
8a74498721
@ -1051,7 +1051,7 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState,
|
prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState,
|
||||||
PRL_UINT32 envId,
|
PRL_UINT32 envId,
|
||||||
virDomainObjPtr dom)
|
virDomainObjPtr dom)
|
||||||
@ -1121,17 +1121,12 @@ prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState,
|
|||||||
dom->def->id = envId;
|
dom->def->id = envId;
|
||||||
break;
|
break;
|
||||||
case VMS_UNKNOWN:
|
case VMS_UNKNOWN:
|
||||||
|
default:
|
||||||
virDomainObjSetState(dom, VIR_DOMAIN_NOSTATE,
|
virDomainObjSetState(dom, VIR_DOMAIN_NOSTATE,
|
||||||
VIR_DOMAIN_NOSTATE_UNKNOWN);
|
VIR_DOMAIN_NOSTATE_UNKNOWN);
|
||||||
break;
|
dom->def->id = -1;
|
||||||
default:
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
|
||||||
_("Unknown domain state: %X"), domainState);
|
|
||||||
return -1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -1374,9 +1369,6 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prlsdkConvertDomainState(domainState, envId, dom) < 0)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
/* assign new virDomainDef without any checks
|
/* assign new virDomainDef without any checks
|
||||||
* we can't use virDomainObjAssignDef, because it checks
|
* we can't use virDomainObjAssignDef, because it checks
|
||||||
* for state and domain name */
|
* for state and domain name */
|
||||||
@ -1386,6 +1378,8 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
|
|||||||
VIR_FREE(pdom->home);
|
VIR_FREE(pdom->home);
|
||||||
pdom->home = home;
|
pdom->home = home;
|
||||||
|
|
||||||
|
prlsdkConvertDomainState(domainState, envId, dom);
|
||||||
|
|
||||||
if (!pdom->sdkdom) {
|
if (!pdom->sdkdom) {
|
||||||
PrlHandle_AddRef(sdkdom);
|
PrlHandle_AddRef(sdkdom);
|
||||||
pdom->sdkdom = sdkdom;
|
pdom->sdkdom = sdkdom;
|
||||||
@ -1532,8 +1526,8 @@ prlsdkHandleVmStateEvent(vzConnPtr privconn,
|
|||||||
prlsdkCheckRetGoto(pret, cleanup);
|
prlsdkCheckRetGoto(pret, cleanup);
|
||||||
|
|
||||||
pdom = dom->privateData;
|
pdom = dom->privateData;
|
||||||
if (prlsdkConvertDomainState(domainState, pdom->id, dom) < 0)
|
|
||||||
goto cleanup;
|
prlsdkConvertDomainState(domainState, pdom->id, dom);
|
||||||
|
|
||||||
prlsdkNewStateToEvent(domainState,
|
prlsdkNewStateToEvent(domainState,
|
||||||
&lvEventType,
|
&lvEventType,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user