[PATCH] Save on separate connection

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

 



Here's another patch I've been neglecting to forward. :(

Requests to kvm to save its state is sent from a different thread, but
on the same connection as any other communication with the relevant
libvirtd instance.  This has a good chance of causing responses to come
back out of order, and that makes libvirt cry. :(

This patch creates a separate connection for the save operation. I'm
almost sure it's not correct, but it seems to do the job. :) 

-- 
Soren Hansen               | 
Virtualisation specialist  | Ubuntu Server Team
Canonical Ltd.             | http://www.ubuntu.com/
Index: virt-manager-0.5.3/src/virtManager/engine.py
===================================================================
--- virt-manager-0.5.3.orig/src/virtManager/engine.py	2008-03-12 14:46:12.316814503 +0100
+++ virt-manager-0.5.3/src/virtManager/engine.py	2008-03-13 00:11:46.836312746 +0100
@@ -318,8 +318,10 @@
             self.connections[uri]["windowCreate"] = create
         self.connections[uri]["windowCreate"].show()
 
-    def add_connection(self, uri, readOnly=None):
+    def add_connection(self, uri, readOnly=None, privateConnection=False):
         conn = vmmConnection(self.get_config(), uri, readOnly)
+        if privateConnection:
+            return conn
         self.connections[uri] = {
             "connection": conn,
             "windowHost": None,
@@ -350,14 +352,20 @@
 
         return handle_id
 
-    def get_connection(self, uri, readOnly=None):
-        if not(self.connections.has_key(uri)):
-            self.add_connection(uri, readOnly)
+    def get_connection(self, uri, readOnly=None, privateConnection=False):
+        if not privateConnection:
+            if not(self.connections.has_key(uri)):
+                self.add_connection(uri, readOnly)
+        else:
+            return self.add_connection(uri, readOnly, True)
 
         return self.connections[uri]["connection"]
 
     def save_domain(self, src, uri, uuid):
-        con = self.get_connection(uri, False)
+        con = self.get_connection(uri, False, True)
+        con.open()
+        # Needed to let the connection know about all the vms
+        con.tick()
         if con.is_remote():
             warn = gtk.MessageDialog(src.window.get_widget("vmm-details"),
                                      gtk.DIALOG_DESTROY_WITH_PARENT,

Attachment: signature.asc
Description: Digital signature

_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools

[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux