]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
parallels: move up updating parameter in prlsdkLoadDomain
authorMaxim Nestratov <mnestratov@parallels.com>
Thu, 21 May 2015 13:49:34 +0000 (16:49 +0300)
committerDmitry Guryanov <dguryanov@parallels.com>
Mon, 25 May 2015 21:11:07 +0000 (00:11 +0300)
It is better to get all necessary parameters and check them on newly
created configuration before actually creating a domain with them or
applying them to an existing domain.

Signed-off-by: Maxim Nestratov <mnestratov@parallels.com>
src/parallels/parallels_sdk.c

index 2a4450413e024e488008f6bf426ad8a713925307..553a8775d63f536f300612daad0f4ff2262bb356 100644 (file)
@@ -1312,6 +1312,12 @@ prlsdkLoadDomain(parallelsConnPtr privconn,
             *s = '\0';
     }
 
+    pret = PrlVmCfg_GetAutoStart(sdkdom, &autostart);
+    prlsdkCheckRetGoto(pret, error);
+
+    if (prlsdkGetDomainState(sdkdom, &domainState) < 0)
+        goto error;
+
     if (virDomainDefAddImplicitControllers(def) < 0)
         goto error;
 
@@ -1349,15 +1355,6 @@ prlsdkLoadDomain(parallelsConnPtr privconn,
     dom->privateDataFreeFunc = prlsdkDomObjFreePrivate;
     dom->persistent = 1;
 
-    if (prlsdkGetDomainState(sdkdom, &domainState) < 0)
-        goto error;
-
-    if (prlsdkConvertDomainState(domainState, envId, dom) < 0)
-        goto error;
-
-    pret = PrlVmCfg_GetAutoStart(sdkdom, &autostart);
-    prlsdkCheckRetGoto(pret, error);
-
     switch (autostart) {
     case PAO_VM_START_ON_LOAD:
         dom->autostart = 1;
@@ -1371,6 +1368,9 @@ prlsdkLoadDomain(parallelsConnPtr privconn,
         goto error;
     }
 
+    if (prlsdkConvertDomainState(domainState, envId, dom) < 0)
+        goto error;
+
     if (!pdom->sdkdom) {
         pret = PrlHandle_AddRef(sdkdom);
         prlsdkCheckRetGoto(pret, error);