diff options
author | 2015-02-13 00:58:41 +0000 | |
---|---|---|
committer | 2015-02-13 00:58:41 +0000 | |
commit | 41907f6ba6b7113c6707c4633efe3a88cbd71532 (patch) | |
tree | 21d6fbc12f05fc15db07f5a1946baf6f3e50bca0 /sys-cluster | |
parent | Mask multilib features of librevenge until zlib goes multilib (diff) | |
download | gentoo-2-41907f6ba6b7113c6707c4633efe3a88cbd71532.tar.gz gentoo-2-41907f6ba6b7113c6707c4633efe3a88cbd71532.tar.bz2 gentoo-2-41907f6ba6b7113c6707c4633efe3a88cbd71532.zip |
backporting patches from kilo for better usage in juno
(Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 0x33ED3FD25AFC78BA)
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/neutron/ChangeLog | 12 | ||||
-rw-r--r-- | sys-cluster/neutron/files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch | 73 | ||||
-rw-r--r-- | sys-cluster/neutron/files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch | 210 | ||||
-rw-r--r-- | sys-cluster/neutron/files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch | 29 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-2014.2.2-r1.ebuild (renamed from sys-cluster/neutron/neutron-2014.2.2.ebuild) | 5 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-2014.2.9999.ebuild | 5 |
6 files changed, 331 insertions, 3 deletions
diff --git a/sys-cluster/neutron/ChangeLog b/sys-cluster/neutron/ChangeLog index 509c7eabedd6..39d06f1225bf 100644 --- a/sys-cluster/neutron/ChangeLog +++ b/sys-cluster/neutron/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sys-cluster/neutron # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.53 2015/02/09 05:06:59 prometheanfire Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.54 2015/02/13 00:58:41 prometheanfire Exp $ + +*neutron-2014.2.2-r1 (13 Feb 2015) + + 13 Feb 2015; Matthew Thode <prometheanfire@gentoo.org> + +files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch, + +files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch, + +files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch, + +neutron-2014.2.2-r1.ebuild, -neutron-2014.2.2.ebuild, + neutron-2014.2.9999.ebuild: + backporting patches from kilo for better usage in juno 09 Feb 2015; Matthew Thode <prometheanfire@gentoo.org> neutron-2014.2.2.ebuild, neutron-2014.2.9999.ebuild: diff --git a/sys-cluster/neutron/files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch b/sys-cluster/neutron/files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch new file mode 100644 index 000000000000..23f8cc6621ff --- /dev/null +++ b/sys-cluster/neutron/files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch @@ -0,0 +1,73 @@ +From f3100ad343759ad32435766df33b0384cd15629d Mon Sep 17 00:00:00 2001 +From: Matthew Thode <mthode@mthode.org> +Date: Mon, 9 Feb 2015 11:02:58 -0600 +Subject: [PATCH 1/3] Fixes bug in interface handling of ip_lib.py + +ip_lib was parsing tunnel links incorrectly, we know what to delimit on +when we see interfaces with @NONE in their name + +@NONE is appended to the interface name by iproute2 when a tunnel is not +connected to it's remote endpoint, this patch adds allows for handling +that situation. + +Change-Id: I07d1d297f07857d216649cccf717896574aac301 +Closes-Bug: 1374663 +--- + neutron/agent/linux/ip_lib.py | 3 +++ + neutron/tests/unit/test_linux_ip_lib.py | 12 +++++++++--- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/neutron/agent/linux/ip_lib.py b/neutron/agent/linux/ip_lib.py +index 1d32a54..b2264d2 100644 +--- a/neutron/agent/linux/ip_lib.py ++++ b/neutron/agent/linux/ip_lib.py +@@ -109,6 +109,9 @@ class IPWrapper(SubProcessBase): + if len(tokens) == 3: + if any(v in tokens[2] for v in VLAN_INTERFACE_DETAIL): + delimiter = '@' ++ # tunnel interfaces can have @NONE in their name as well ++ elif '@NONE' in tokens[1]: ++ delimiter = '@' + else: + delimiter = ':' + name = tokens[1].rpartition(delimiter)[0].strip() +diff --git a/neutron/tests/unit/test_linux_ip_lib.py b/neutron/tests/unit/test_linux_ip_lib.py +index 2b9486d..41f9caa 100644 +--- a/neutron/tests/unit/test_linux_ip_lib.py ++++ b/neutron/tests/unit/test_linux_ip_lib.py +@@ -70,7 +70,11 @@ LINK_SAMPLE = [ + '14: bar@bar:bar@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ' + 'qdisc mq state UP qlen 1000' + '\ link/ether cc:dd:ee:ff:ab:cd brd ff:ff:ff:ff:ff:ff promiscuity 0' +- '\ vlan protocol 802.1Q id 14 <REORDER_HDR>'] ++ '\ vlan protocol 802.1Q id 14 <REORDER_HDR>', ++ '15: gre0@NONE: <NOARP> mtu 1476 qdisc noqueue state DOWN mode DEFAULT ' ++ 'group default ' ++ '\ link/gre 0.0.0.0 brd 0.0.0.0 promiscuity 0 ' ++ '\ gre remote any local any ttl inherit nopmtudisc'] + + ADDR_SAMPLE = (""" + 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 +@@ -221,7 +225,8 @@ class TestIpWrapper(base.BaseTestCase): + ip_lib.IPDevice('bar:bar'), + ip_lib.IPDevice('bar@bar'), + ip_lib.IPDevice('bar:bar@bar'), +- ip_lib.IPDevice('bar@bar:bar')]) ++ ip_lib.IPDevice('bar@bar:bar'), ++ ip_lib.IPDevice('gre0')]) + + self.execute.assert_called_once_with(['o', 'd'], 'link', ('list',), + 'sudo', None) +@@ -243,7 +248,8 @@ class TestIpWrapper(base.BaseTestCase): + ip_lib.IPDevice('bar:bar'), + ip_lib.IPDevice('bar@bar'), + ip_lib.IPDevice('bar:bar@bar'), +- ip_lib.IPDevice('bar@bar:bar')]) ++ ip_lib.IPDevice('bar@bar:bar'), ++ ip_lib.IPDevice('gre0')]) + + self.execute.assert_called_once_with(['o', 'd'], 'link', ('list',), + 'sudo', None) +-- +2.0.5 + diff --git a/sys-cluster/neutron/files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch b/sys-cluster/neutron/files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch new file mode 100644 index 000000000000..3b22bec2c265 --- /dev/null +++ b/sys-cluster/neutron/files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch @@ -0,0 +1,210 @@ +From d6d4b8171908ac08196e7f08395f451168ad19dc Mon Sep 17 00:00:00 2001 +From: Matthew Thode <mthode@mthode.org> +Date: Wed, 10 Dec 2014 15:12:25 -0600 +Subject: [PATCH 2/3] moving vxlan module check to sanity checks and making + practical + +Instead of checking via modinfo (which only checks if a module is +available) this checks actual usage, which is a more reliable way of +testing real world problems. + +Change-Id: Ida78652ed50e2cb16fa0ab7194d8468714b99d61 +Closes-Bug: 1339197 +--- + neutron/cmd/sanity/checks.py | 10 ++++++++- + neutron/cmd/sanity_check.py | 25 ++++++++++++++++++++-- + .../linuxbridge/agent/linuxbridge_neutron_agent.py | 11 ---------- + neutron/tests/functional/sanity/test_sanity.py | 5 ++++- + .../unit/linuxbridge/test_lb_neutron_agent.py | 24 ++------------------- + 5 files changed, 38 insertions(+), 37 deletions(-) + +diff --git a/neutron/cmd/sanity/checks.py b/neutron/cmd/sanity/checks.py +index da37663..4700668 100644 +--- a/neutron/cmd/sanity/checks.py ++++ b/neutron/cmd/sanity/checks.py +@@ -25,13 +25,21 @@ from neutron.plugins.openvswitch.common import constants as ovs_const + LOG = logging.getLogger(__name__) + + +-def vxlan_supported(root_helper, from_ip='192.0.2.1', to_ip='192.0.2.2'): ++def ovs_vxlan_supported(root_helper, from_ip='192.0.2.1', to_ip='192.0.2.2'): + name = "vxlantest-" + utils.get_random_string(6) + with ovs_lib.OVSBridge(name, root_helper) as br: + port = br.add_tunnel_port(from_ip, to_ip, const.TYPE_VXLAN) + return port != ovs_lib.INVALID_OFPORT + + ++def iproute2_vxlan_supported(root_helper): ++ ip = ip_lib.IPWrapper(root_helper) ++ name = "vxlantest-" + utils.get_random_string(4) ++ port = ip.add_vxlan(name, 3000) ++ ip.del_veth(name) ++ return name == port.name ++ ++ + def patch_supported(root_helper): + seed = utils.get_random_string(6) + name = "patchtest-" + seed +diff --git a/neutron/cmd/sanity_check.py b/neutron/cmd/sanity_check.py +index 4b1be1b..90bf792 100644 +--- a/neutron/cmd/sanity_check.py ++++ b/neutron/cmd/sanity_check.py +@@ -25,6 +25,13 @@ from oslo.config import cfg + LOG = logging.getLogger(__name__) + cfg.CONF.import_group('AGENT', 'neutron.plugins.openvswitch.common.config') + cfg.CONF.import_group('OVS', 'neutron.plugins.openvswitch.common.config') ++<<<<<<< HEAD ++======= ++cfg.CONF.import_group('VXLAN', 'neutron.plugins.linuxbridge.common.config') ++cfg.CONF.import_group('ml2', 'neutron.plugins.ml2.config') ++cfg.CONF.import_group('ml2_sriov', ++ 'neutron.plugins.ml2.drivers.mech_sriov.mech_driver') ++>>>>>>> moving vxlan module check to sanity checks and making practical + + + class BoolOptCallback(cfg.BoolOpt): +@@ -34,7 +41,7 @@ class BoolOptCallback(cfg.BoolOpt): + + + def check_ovs_vxlan(): +- result = checks.vxlan_supported(root_helper=cfg.CONF.AGENT.root_helper) ++ result = checks.ovs_vxlan_supported(root_helper=cfg.CONF.AGENT.root_helper) + if not result: + LOG.error(_('Check for Open vSwitch VXLAN support failed. ' + 'Please ensure that the version of openvswitch ' +@@ -42,6 +49,15 @@ def check_ovs_vxlan(): + return result + + ++def check_iproute2_vxlan(): ++ result = checks.iproute2_vxlan_supported( ++ root_helper=cfg.CONF.AGENT.root_helper) ++ if not result: ++ LOG.error(_LE('Check for iproute2 VXLAN support failed. Please ensure ' ++ 'that the iproute2 has VXLAN support.')) ++ return result ++ ++ + def check_ovs_patch(): + result = checks.patch_supported(root_helper=cfg.CONF.AGENT.root_helper) + if not result: +@@ -74,7 +90,9 @@ def check_arp_responder(): + # Define CLI opts to test specific features, with a calback for the test + OPTS = [ + BoolOptCallback('ovs_vxlan', check_ovs_vxlan, default=False, +- help=_('Check for vxlan support')), ++ help=_('Check for OVS vxlan support')), ++ BoolOptCallback('iproute2_vxlan', check_iproute2_vxlan, default=False, ++ help=_('Check for iproute2 vxlan support')), + BoolOptCallback('ovs_patch', check_ovs_patch, default=False, + help=_('Check for patch port support')), + BoolOptCallback('nova_notify', check_nova_notify, default=False, +@@ -92,6 +110,9 @@ def enable_tests_from_config(): + + if 'vxlan' in cfg.CONF.AGENT.tunnel_types: + cfg.CONF.set_override('ovs_vxlan', True) ++ if ('vxlan' in cfg.CONF.ml2.type_drivers or ++ cfg.CONF.VXLAN.enable_vxlan): ++ cfg.CONF.set_override('iproute2_vxlan', True) + if cfg.CONF.AGENT.tunnel_types: + cfg.CONF.set_override('ovs_patch', True) + if not cfg.CONF.OVS.use_veth_interconnection: +diff --git a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +index d9f7f68..b540269 100755 +--- a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py ++++ b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +@@ -561,19 +561,8 @@ class LinuxBridgeManager: + return False + return True + +- def vxlan_module_supported(self): +- try: +- utils.execute(cmd=['modinfo', 'vxlan'], log_fail_as_error=False) +- return True +- except RuntimeError: +- return False +- + def check_vxlan_support(self): + self.vxlan_mode = lconst.VXLAN_NONE +- if not self.vxlan_module_supported(): +- LOG.error(_('Linux kernel vxlan module and iproute2 3.8 or above ' +- 'are required to enable VXLAN.')) +- raise exceptions.VxlanNetworkUnsupported() + + if self.vxlan_ucast_supported(): + self.vxlan_mode = lconst.VXLAN_UCAST +diff --git a/neutron/tests/functional/sanity/test_sanity.py b/neutron/tests/functional/sanity/test_sanity.py +index bbe8911..b959138 100644 +--- a/neutron/tests/functional/sanity/test_sanity.py ++++ b/neutron/tests/functional/sanity/test_sanity.py +@@ -45,7 +45,10 @@ class SanityTestCaseRoot(functional_base.BaseSudoTestCase): + self.check_sudo_enabled() + + def test_ovs_vxlan_support_runs(self): +- checks.vxlan_supported(self.root_helper) ++ checks.ovs_vxlan_supported(self.root_helper) ++ ++ def test_iproute2_vxlan_support_runs(self): ++ checks.iproute2_vxlan_supported(self.root_helper) + + def test_ovs_patch_support_runs(self): + checks.patch_supported(self.root_helper) +diff --git a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py +index 1a2bbc4..09a5d78 100644 +--- a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py ++++ b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py +@@ -829,11 +829,9 @@ class TestLinuxBridgeManager(base.BaseTestCase): + self.lbm.delete_vlan("eth1.1") + self.assertTrue(exec_fn.called) + +- def _check_vxlan_support(self, expected, vxlan_module_supported, +- vxlan_ucast_supported, vxlan_mcast_supported): ++ def _check_vxlan_support(self, expected, vxlan_ucast_supported, ++ vxlan_mcast_supported): + with contextlib.nested( +- mock.patch.object(self.lbm, 'vxlan_module_supported', +- return_value=vxlan_module_supported), + mock.patch.object(self.lbm, 'vxlan_ucast_supported', + return_value=vxlan_ucast_supported), + mock.patch.object(self.lbm, 'vxlan_mcast_supported', +@@ -848,37 +846,19 @@ class TestLinuxBridgeManager(base.BaseTestCase): + + def test_check_vxlan_support(self): + self._check_vxlan_support(expected=lconst.VXLAN_UCAST, +- vxlan_module_supported=True, + vxlan_ucast_supported=True, + vxlan_mcast_supported=True) + self._check_vxlan_support(expected=lconst.VXLAN_MCAST, +- vxlan_module_supported=True, + vxlan_ucast_supported=False, + vxlan_mcast_supported=True) + + self._check_vxlan_support(expected=lconst.VXLAN_NONE, +- vxlan_module_supported=False, + vxlan_ucast_supported=False, + vxlan_mcast_supported=False) + self._check_vxlan_support(expected=lconst.VXLAN_NONE, +- vxlan_module_supported=True, + vxlan_ucast_supported=False, + vxlan_mcast_supported=False) + +- def _check_vxlan_module_supported(self, expected, execute_side_effect): +- with mock.patch.object( +- utils, 'execute', +- side_effect=execute_side_effect): +- self.assertEqual(expected, self.lbm.vxlan_module_supported()) +- +- def test_vxlan_module_supported(self): +- self._check_vxlan_module_supported( +- expected=True, +- execute_side_effect=None) +- self._check_vxlan_module_supported( +- expected=False, +- execute_side_effect=RuntimeError()) +- + def _check_vxlan_ucast_supported( + self, expected, l2_population, iproute_arg_supported, fdb_append): + cfg.CONF.set_override('l2_population', l2_population, 'VXLAN') +-- +2.0.5 + diff --git a/sys-cluster/neutron/files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch b/sys-cluster/neutron/files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch new file mode 100644 index 000000000000..59283d48a535 --- /dev/null +++ b/sys-cluster/neutron/files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch @@ -0,0 +1,29 @@ +From bda65afcedcbf44efda5f1e5fa430dd672ef5142 Mon Sep 17 00:00:00 2001 +From: Matthew Thode <mthode@mthode.org> +Date: Sun, 1 Feb 2015 00:13:59 -0600 +Subject: [PATCH 3/3] fixes error logging to use the right exception parent + class + +looks like this was missed + +Closes-Bug: #1416798 +Change-Id: If68c13b550d665dfa24b7380f53bee7f6fccdb23 +--- + neutron/plugins/ml2/plugin.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py +index a41ffc2..c7c4c4c 100644 +--- a/neutron/plugins/ml2/plugin.py ++++ b/neutron/plugins/ml2/plugin.py +@@ -1054,7 +1054,6 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, + one()) + except sa_exc.NoResultFound: + return +- except exc.MultipleResultsFound: + LOG.error(_("Multiple ports have port_id starting with %s"), + port_id) + return +-- +2.0.5 + diff --git a/sys-cluster/neutron/neutron-2014.2.2.ebuild b/sys-cluster/neutron/neutron-2014.2.2-r1.ebuild index 55e79af46c2d..bb8d5ce9562d 100644 --- a/sys-cluster/neutron/neutron-2014.2.2.ebuild +++ b/sys-cluster/neutron/neutron-2014.2.2-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.2.ebuild,v 1.2 2015/02/09 05:06:59 prometheanfire Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.2-r1.ebuild,v 1.1 2015/02/13 00:58:41 prometheanfire Exp $ EAPI=5 PYTHON_COMPAT=( python2_7 ) @@ -99,6 +99,9 @@ RDEPEND=" dhcp? ( net-dns/dnsmasq[dhcp-tools] )" PATCHES=( + "${FILESDIR}/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch" + "${FILESDIR}/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch" + "${FILESDIR}/0003-fixes-error-logging-to-use-the-right-exception-paren.patch" ) pkg_setup() { diff --git a/sys-cluster/neutron/neutron-2014.2.9999.ebuild b/sys-cluster/neutron/neutron-2014.2.9999.ebuild index 3d08afcae4e1..5b7d25e7782a 100644 --- a/sys-cluster/neutron/neutron-2014.2.9999.ebuild +++ b/sys-cluster/neutron/neutron-2014.2.9999.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.9999.ebuild,v 1.9 2015/02/09 05:06:59 prometheanfire Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.9999.ebuild,v 1.10 2015/02/13 00:58:41 prometheanfire Exp $ EAPI=5 PYTHON_COMPAT=( python2_7 ) @@ -100,6 +100,9 @@ RDEPEND=" dhcp? ( net-dns/dnsmasq[dhcp-tools] )" PATCHES=( + "${FILESDIR}/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch" + "${FILESDIR}/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch" + "${FILESDIR}/0003-fixes-error-logging-to-use-the-right-exception-paren.patch" ) pkg_setup() { |