From 8a744987218c168d0b6cb93f61ad4011cb22d04c Mon Sep 17 00:00:00 2001 From: Maxim Nestratov Date: Fri, 11 Mar 2016 11:36:17 +0300 Subject: [PATCH] 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 --- src/vz/vz_sdk.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index de73c31edf..f7d769b2dd 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -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, -- 2.39.5