]> xenbits.xensource.com Git - libvirt.git/commitdiff
vz: fix active domain listing
authorMaxim Nestratov <mnestratov@virtuozzo.com>
Fri, 11 Mar 2016 08:36:17 +0000 (11:36 +0300)
committerMaxim Nestratov <mnestratov@virtuozzo.com>
Mon, 14 Mar 2016 12:12:10 +0000 (15:12 +0300)
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>
src/vz/vz_sdk.c

index de73c31edfc64c8871d6729b6e1b6caa1a7bb7e1..f7d769b2dd9b3425b509b1dbbe0c9f66edc1a861 100644 (file)
@@ -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,