[Libvir] 1/4 Additions to the public API

Daniel P. Berrange berrange at redhat.com
Sun Feb 24 22:20:24 UTC 2008


On Fri, Feb 22, 2008 at 11:07:15AM +0000, Richard W.M. Jones wrote:
> On Fri, Feb 22, 2008 at 10:47:44AM +0000, Mark McLoughlin wrote:
> > On Fri, 2008-02-22 at 05:16 -0500, Daniel Veillard wrote:
> > 
> > > I also agree to some extend with Mark, the on disk
> > > storage should probably go in the network description. But that's
> > > orthogonal to the API side :)
> > 
> > 	Heh, no it's not orthogonal ... XML *is* the API for this kind of stuff
> > across libvirt :-)
> 
> Sort of.  XML is used as a way to avoid making any ABI guarantees.
> 
> I had a look at the implementation of the network XML.  There are
> three calls which matter:
> 
>   virNetworkDefineXML
> 
>     Define the network from the XML definition, but don't start it up.
> 
>     Saves the XML into a private directory so that it will be loaded
>     when libvirtd restarts (and depending on the autostart setting may
>     also be started up automatically).
> 
>     The current implementation always completely recreates the
>     internal network definitions from scratch.
> 
>   virNetworkCreateXML
> 
>     Start up the network from the XML definition.
> 
>     As far as I can see, this doesn't persist the XML so the network
>     will disappear after libvirtd is restarted.
> 
>     The current implementation always completely recreates the
>     internal network definitions from scratch.
> 
>   virNetworkUndefine
> 
>     Stops the network.
> 
>     Deletes the config file and autostart setting from the private
>     directory.
> 
> The first two calls need to be changed to look for incremental changes
> in the XML, since its better to avoid fully restarting dnsmasq, and we
> certainly don't want to try taking down the bridge.

We can't change the semantics of these calls. virNetworkDefineXML() 
explicitly does not affect the current live config, saving the config
to take effect next time the network is started. This is the same semantics
as the  virDomainDefineXML() call, and the virStoragePoolDefineXML()
calls.

To do live updates, we'd need API similar to the domain device hot attach
and detach APIs

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 




More information about the libvir-list mailing list