From 71a3a883906f54ae8a5bdc9480258b9223aef2c0 Mon Sep 17 00:00:00 2001 From: Aline Manera Date: Tue, 1 Oct 2013 15:36:29 -0300 Subject: [PATCH] Create default network if it does not exist The default network must exist and be active in order to Kimchi manage virtual machines without problems. So verify if the default network exists and if not create and active it. Signed-off-by: Aline Manera --- src/kimchi/model.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/kimchi/model.py b/src/kimchi/model.py index 4222f915f..6cb5ef139 100644 --- a/src/kimchi/model.py +++ b/src/kimchi/model.py @@ -106,6 +106,41 @@ def __init__(self, libvirt_uri=None, objstore_loc=None): self.statsThread.start() if 'qemu:///' in self.libvirt_uri: self._default_pool_check() + self._default_network_check() + + def _default_network_check(self): + conn = self.conn.get() + xml = """ + + default + + + + + + + + + """ + try: + net = conn.networkLookupByName("default") + except libvirt.libvirtError: + try: + net = conn.networkDefineXML(xml) + except libvirt.libvirtError, e: + cherrypy.log.error( + "Fatal: Cannot create default network because of %s, exit kimchid" % e.message, + severity=logging.ERROR) + sys.exit(1) + + if net.isActive() == 0: + try: + net.create() + except libvirt.libvirtError, e: + cherrypy.log.error( + "Fatal: Cannot activate default network because of %s, exit kimchid" % e.message, + severity=logging.ERROR) + sys.exit(1) def _default_pool_check(self): default_pool = {'name': 'default',