[Kimchi-devel] [PATCH] [Kimchi] Fix issue #810

Daniel Henrique Barboza dhbarboza82 at gmail.com
Fri Jan 15 12:55:53 UTC 2016


Reviewed-by: Daniel Barboza <dhbarboza82 at gmail.com>

On 01/11/2016 03:45 PM, Lucio Correia wrote:
> Add an error message asking user to disable NetworkManager.
>
> Signed-off-by: Lucio Correia <luciojhc at linux.vnet.ibm.com>
> ---
>   i18n.py           | 1 +
>   model/config.py   | 2 ++
>   model/networks.py | 8 ++++++++
>   3 files changed, 11 insertions(+)
>
> diff --git a/i18n.py b/i18n.py
> index 7a72a86..a575922 100644
> --- a/i18n.py
> +++ b/i18n.py
> @@ -273,6 +273,7 @@ messages = {
>       "KCHNET0024E": _("Unable to redefine interface %(name)s. Details: %(err)s"),
>       "KCHNET0025E": _("Unable to create bridge %(name)s. Details: %(err)s"),
>       "KCHNET0026E": _("Open VSwitch bridges can only host bridged networks."),
> +    "KCHNET0027E": _("Unable to create bridge with NetworkManager enabled. Disable it and try again."),
>   
>       "KCHSR0001E": _("Storage server %(server)s was not used by Kimchi"),
>   
> diff --git a/model/config.py b/model/config.py
> index e552edb..5a26957 100644
> --- a/model/config.py
> +++ b/model/config.py
> @@ -54,6 +54,7 @@ class CapabilitiesModel(object):
>           self.libvirt_stream_protocols = []
>           self.fc_host_support = False
>           self.kernel_vfio = False
> +        self.nm_running = False
>           self.mem_hotplug_support = False
>   
>           # Subscribe function to set host capabilities to be run when cherrypy
> @@ -90,6 +91,7 @@ class CapabilitiesModel(object):
>           self.nfs_target_probe = FeatureTests.libvirt_support_nfs_probe(conn)
>           self.fc_host_support = FeatureTests.libvirt_support_fc_host(conn)
>           self.kernel_vfio = FeatureTests.kernel_support_vfio()
> +        self.nm_running = FeatureTests.is_nm_running()
>           self.mem_hotplug_support = FeatureTests.has_mem_hotplug_support(conn)
>   
>           self.libvirt_stream_protocols = []
> diff --git a/model/networks.py b/model/networks.py
> index bfe8d2a..fba181f 100644
> --- a/model/networks.py
> +++ b/model/networks.py
> @@ -32,6 +32,7 @@ from wok.xmlutils.utils import xpath_get_text
>   
>   from wok.plugins.kimchi import netinfo
>   from wok.plugins.kimchi import network as knetwork
> +from wok.plugins.kimchi.model.config import CapabilitiesModel
>   from wok.plugins.kimchi.osinfo import defaults as tmpl_defaults
>   from wok.plugins.kimchi.xmlutils.interface import get_iface_xml
>   from wok.plugins.kimchi.xmlutils.network import create_linux_bridge_xml
> @@ -49,6 +50,8 @@ class NetworksModel(object):
>           if self.conn.isQemuURI():
>               self._check_default_networks()
>   
> +        self.caps = CapabilitiesModel(**kargs)
> +
>       def _check_default_networks(self):
>           networks = list(set(tmpl_defaults['networks']))
>           conn = self.conn.get()
> @@ -192,6 +195,11 @@ class NetworksModel(object):
>   
>           # User wants Linux bridge network, but didn't specify bridge interface
>           elif params['connection'] == "bridge":
> +
> +            # libvirt will fail to create bridge if NetworkManager is enabled
> +            if self.caps.nm_running:
> +                raise InvalidParameter('KCHNET0027E')
> +
>               # create Linux bridge interface first and use it as actual iface
>               iface = self._create_linux_bridge(iface)
>               params['bridge'] = iface




More information about the Kimchi-devel mailing list