[PATCH 1/4] parallels: Fix connecting to parallels driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After 55ea7be7, failures of parallelsLoadNetworks and parallelsStorageOpen
started to fail establishing a new connection to parallels driver.
Before this patch we simply ignored such errors.
This patch restores the ability to connect to parallels driver
even if parallelsLoadNetworks fails to get information about
Parallels Bridged networks. This can happen when it is unconfigured
(which is a common case on developers hosts for instance) or configured
incompletely. In any case it is not a severe error and we can ignore it.
Failures of parallelsStorageOpen occured because we incorrectly treated
path to VM' configuration file as a directory. Now initialization of
parallels VM domains home directory is fixed.

Signed-off-by: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>
---
 src/parallels/parallels_network.c |    2 +-
 src/parallels/parallels_sdk.c     |    8 ++++++++
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/parallels/parallels_network.c b/src/parallels/parallels_network.c
index 3e7087d..033b347 100644
--- a/src/parallels/parallels_network.c
+++ b/src/parallels/parallels_network.c
@@ -304,7 +304,7 @@ static int parallelsLoadNetworks(parallelsConnPtr privconn)
 
         net = parallelsLoadNetwork(privconn, jobj2);
         if (!net)
-            goto cleanup;
+            continue;
 
     }
 
diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
index d0d2ce2..b9d5ddf 100644
--- a/src/parallels/parallels_sdk.c
+++ b/src/parallels/parallels_sdk.c
@@ -1247,6 +1247,14 @@ prlsdkLoadDomain(parallelsConnPtr privconn,
     pret = PrlVmCfg_GetHomePath(sdkdom, pdom->home, &buflen);
     prlsdkCheckRetGoto(pret, error);
 
+    // For VMs pdom->home is actually /directory/config.pvs
+    if(!IS_CT(def)){
+        // Get rid of /config.pvs in path string
+        char *s = strrchr(pdom->home, '/');
+        if (s)
+            *s = '\0';
+    }
+
     if (olddom) {
         /* assign new virDomainDef without any checks */
         /* we can't use virDomainObjAssignDef, because it checks
-- 
1.7.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]