[virt-tools-list] Question about the Gsettings and dconf and Design document.

Cole Robinson crobinso at redhat.com
Tue Nov 17 18:54:04 UTC 2015


On 11/17/2015 01:47 PM, Avaneendra Alugupalli wrote:
> Cole
>  Thanks for your time. Will try to ask again. Sorry for my bad english :).
> Will try my best
> this time.
> 
> I downloaded the code and tried to run the virt-manager.py of off eclipse
> Pydev IDE.
> Ran into some issues, not sure the order but ran 
> glib-compile-schemas data/*schamas*
> ran "python setup.py -install"
> 
> after that virt-manager sucessfully came up "with auto connected to lxc:///
> and qemu://system"
> *
> *
> Now I wanted to understand the code, ran the virt-manager in pdb -debugger. 
> stepping into the config code found that the
> "/org/virt-manager/virt-manager/connections/uris"
> is already populated with " lxc:/// and qemu://system" value.
> 
> but I see that this tuple in dconf DB is only updated by engine code. now
> wondering how 
> does config is able to see the " lxc:/// and qemu://system" values.
> 

If this was your first time running virt-manager, there is some first-run code
to try and determine a default connection, see engine.py:_add_default_conn as
a starting point.

That said, I don't know what could have caused the app to start up with both
qemu:///system _and_ lxc:/// in the connection list, it should only be one or
the other (or none, or an error message). You sure you definitely haven't run
virt-manager before?

FWIW you can test the first-run behavior again by using virt-manager --debug
--test-first-run, if you're just trying to figure out how it works

- Cole

> 
> On Tue, Nov 17, 2015 at 1:37 PM, Cole Robinson <crobinso at redhat.com
> <mailto:crobinso at redhat.com>> wrote:
> 
>     On 11/17/2015 11:40 AM, Avaneendra Alugupalli wrote:
>     > hi Cole
>     >  Thanks for the response.
>     >>
>     >
>     >>The functions that add/remove/list the URIs in config.py are add_conn,
>     >> remove_conn, list_conn_uris respectively. They are called from engine.py
>     >
>     > From the code in virt-manager.py main handler, I find that the
>     > config object is getting created before the engine object?. Is that for the first
>     > time when I run the virt-manager app. config sees default values of connections/
>     > uris to none [] and then engine creates them. And even if the app is exited
>     > we still have non default values ("qemu:///sysmtem" and "lxc://") in the dconf?.
>     > perhaps not delete those values from dconf?.
>     >
> 
>     Sorry, I'm not really following what you are saying. Can you describe the
>     problem you are hitting, step by step, and exactly what you are trying to
>     determine?
> 
>     Also, take a look at dconf-editor, it's a UI tool for exploring dconf values.
>     Might explain what you are seeing.
> 
>     - Cole
> 
>     >
>     > On Mon, Nov 16, 2015 at 8:09 PM, Cole Robinson <crobinso at redhat.com <mailto:crobinso at redhat.com>
>     > <mailto:crobinso at redhat.com <mailto:crobinso at redhat.com>>> wrote:
>     >
>     >     On 11/16/2015 02:17 PM, Avaneendra Alugupalli wrote:
>     >     > hi
>     >     >  I am trying to understand the code for virt-manager and found
>     that during the
>     >     > config object create, gets the connections / uris using the
>     Gsettings API. and
>     >     > these are the entries in dconf database.
>     >     >
>     >     > forchild inself._settings.list_children():
>     >     > childschema =self._root +"."+child
>     >     > self._settingsmap[child] =Gio.Settings.new(childschema)
>     >     >
>     >     >
>     >     > returns connections/uris as "qemu:///system" and "lxc:///". From the
>     >     >
>     >     > I can see that data
>     >     >
>     >   
>      <https://github.com/virt-manager/virt-manager/tree/master/data>/org.virt-manager.virt-manager.gschema.xml
>     >     > makes
>     >     > default entry for these fields. How ever am unable to track who is
>     updating
>     >     > the connections/uris to "qemu:///system" and "lxc:///" strings.
>     >
>     >     The functions that add/remove/list the URIs in config.py are add_conn,
>     >     remove_conn, list_conn_uris respectively. They are called from engine.py
>     >
>     >     > Also is there any architecture/ design document to understand the
>     code at very
>     >     > higher
>     >     > level?.
>     >
>     >     No unfortunately :/
>     >
>     >     - Cole
>     >
>     >
> 
> 




More information about the virt-tools-list mailing list