[gnome-boxes] Re-use local session libvirt connection



commit f7de98b11701488c043f38e40266ca11564fd184
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Wed Jan 11 18:29:18 2012 +0200

    Re-use local session libvirt connection
    
    This change also introduces the concept of 'default_connection' which by
    default means 'qemu:///session' but could be easily configured to use
    some other libvirt connection by modifying the "QEMU Session" file
    (hence the reason why connection hashtable now uses name rather than
    uris as keys).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=666366

 src/app.vala        |    6 ++++--
 src/vm-creator.vala |   13 ++-----------
 src/wizard.vala     |    2 +-
 3 files changed, 7 insertions(+), 14 deletions(-)
---
diff --git a/src/app.vala b/src/app.vala
index a63aced..f624e00 100644
--- a/src/app.vala
+++ b/src/app.vala
@@ -47,6 +47,7 @@ private class Boxes.App: Boxes.UI {
     private CollectionView view;
 
     private HashTable<string,GVir.Connection> connections;
+    public GVir.Connection default_connection { get { return connections.get ("QEMU Session"); } }
 
     private uint configure_id;
     public static const uint configure_id_timeout = 100;  // 100ms
@@ -149,7 +150,8 @@ private class Boxes.App: Boxes.UI {
 
         try {
             yield connection.open_async (null);
-            connection.fetch_domains (null);
+            yield connection.fetch_domains_async (null);
+            yield connection.fetch_storage_pools_async (null);
         } catch (GLib.Error error) {
             warning (error.message);
         }
@@ -170,7 +172,7 @@ private class Boxes.App: Boxes.UI {
             add_domain (source, connection, domain);
         });
 
-        connections.replace (source.uri, connection);
+        connections.replace (source.name, connection);
     }
 
     public void add_collection_source (CollectionSource source) {
diff --git a/src/vm-creator.vala b/src/vm-creator.vala
index 844cb9f..1dd7016 100644
--- a/src/vm-creator.vala
+++ b/src/vm-creator.vala
@@ -7,17 +7,14 @@ private class Boxes.VMCreator {
     private Connection connection;
     private VMConfigurator configurator;
 
-    public VMCreator (App app, string uri) throws GLib.Error {
-        connection = new Connection (uri);
+    public VMCreator (App app) throws GLib.Error {
+        connection = app.default_connection;
         configurator = new VMConfigurator ();
     }
 
     public async Domain create_and_launch_vm (InstallerMedia install_media,
                                               Resources      resources,
                                               Cancellable?   cancellable) throws GLib.Error {
-        if (!connection.is_open ())
-            yield connect (cancellable);
-
         if (install_media is UnattendedInstaller)
             yield (install_media as UnattendedInstaller).setup (cancellable);
 
@@ -91,12 +88,6 @@ private class Boxes.VMCreator {
         }
     }
 
-    private async void connect (Cancellable? cancellable) throws GLib.Error {
-        yield connection.open_async (cancellable);
-        yield connection.fetch_domains_async (cancellable);
-        yield connection.fetch_storage_pools_async (cancellable);
-    }
-
     private async StorageVol create_target_volume (string name, int64 storage) throws GLib.Error {
         var pool = yield get_storage_pool ();
 
diff --git a/src/wizard.vala b/src/wizard.vala
index d38ff0f..daeb785 100644
--- a/src/wizard.vala
+++ b/src/wizard.vala
@@ -195,7 +195,7 @@ private class Boxes.Wizard: Boxes.UI {
         if (client == null) {
             client = new GUdev.Client ({"block"});
             os_db = new OSDatabase ();
-            vm_creator = new VMCreator (app, "qemu:///session"); // FIXME
+            vm_creator = new VMCreator (app);
         }
 
         next_button.sensitive = false;



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