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;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState,
|
||||
PRL_UINT32 envId,
|
||||
virDomainObjPtr dom)
|
||||
@ -1121,17 +1121,12 @@ prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState,
|
||||
dom->def->id = envId;
|
||||
break;
|
||||
case VMS_UNKNOWN:
|
||||
default:
|
||||
virDomainObjSetState(dom, VIR_DOMAIN_NOSTATE,
|
||||
VIR_DOMAIN_NOSTATE_UNKNOWN);
|
||||
break;
|
||||
default:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Unknown domain state: %X"), domainState);
|
||||
return -1;
|
||||
dom->def->id = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
@ -1374,9 +1369,6 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (prlsdkConvertDomainState(domainState, envId, dom) < 0)
|
||||
goto error;
|
||||
|
||||
/* assign new virDomainDef without any checks
|
||||
* we can't use virDomainObjAssignDef, because it checks
|
||||
* for state and domain name */
|
||||
@ -1386,6 +1378,8 @@ prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
|
||||
VIR_FREE(pdom->home);
|
||||
pdom->home = home;
|
||||
|
||||
prlsdkConvertDomainState(domainState, envId, dom);
|
||||
|
||||
if (!pdom->sdkdom) {
|
||||
PrlHandle_AddRef(sdkdom);
|
||||
pdom->sdkdom = sdkdom;
|
||||
@ -1532,8 +1526,8 @@ prlsdkHandleVmStateEvent(vzConnPtr privconn,
|
||||
prlsdkCheckRetGoto(pret, cleanup);
|
||||
|
||||
pdom = dom->privateData;
|
||||
if (prlsdkConvertDomainState(domainState, pdom->id, dom) < 0)
|
||||
goto cleanup;
|
||||
|
||||
prlsdkConvertDomainState(domainState, pdom->id, dom);
|
||||
|
||||
prlsdkNewStateToEvent(domainState,
|
||||
&lvEventType,
|
||||
|
Loading…
x
Reference in New Issue
Block a user