
On Wed, Apr 17, 2013 at 10:40:45AM +0200, Peter Krempa wrote:
Until now tranisent networks weren't really useful as libvirtd wasn't able to remember them across restarts. This patch adds support for loading status files of transient networks (that already were generated) so that the status isn't lost.
This patch chops up virNetworkObjUpdateParseFile and turns it into virNetworkLoadState and a few friends that will help us to load status XMLs and refactors the functions that are loading the configs to use them. --- src/conf/network_conf.c | 220 +++++++++++++++++++++++++++++--------------- src/conf/network_conf.h | 10 +- src/libvirt_private.syms | 2 +- src/network/bridge_driver.c | 51 ++++++---- 4 files changed, 184 insertions(+), 99 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index bca6bd9..56af108 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -416,6 +421,10 @@ networkStartup(bool privileged, /* if this fails now, it will be retried later with dnsmasqCapsRefresh() */ driverState->dnsmasqCaps = dnsmasqCapsNewFromBinary(DNSMASQ);
+ if (virNetworkLoadAllState(&driverState->networks, + NETWORK_STATE_DIR) < 0) + goto error; + if (virNetworkLoadAllConfigs(&driverState->networks, driverState->networkConfigDir, driverState->networkAutostartDir) < 0) @@ -480,6 +489,8 @@ networkReload(void) { return 0;
networkDriverLock(driverState); + virNetworkLoadAllState(&driverState->networks, + NETWORK_STATE_DIR); virNetworkLoadAllConfigs(&driverState->networks, driverState->networkConfigDir, driverState->networkAutostartDir);
This has broken launching of libvirtd as non-root, since you cannot access NETWORK_STATE_DIR - it should be looking under $HOME $ ./daemon/libvirtd 2013-05-02 15:37:09.753+0000: 14422: info : libvirt version: 1.0.5 2013-05-02 15:37:09.753+0000: 14422: error : virNetworkLoadAllState:2671 : Failed to open dir '/var/lib/libvirt/network': Permission denied 2013-05-02 15:37:09.753+0000: 14422: error : virStateInitialize:837 : Initialization of Network state driver failed 2013-05-02 15:37:09.753+0000: 14422: error : daemonRunStateInit:879 : Driver state initialization failed Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|