summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Thode <prometheanfire@gentoo.org>2015-02-13 00:58:41 +0000
committerMatthew Thode <prometheanfire@gentoo.org>2015-02-13 00:58:41 +0000
commit41907f6ba6b7113c6707c4633efe3a88cbd71532 (patch)
tree21d6fbc12f05fc15db07f5a1946baf6f3e50bca0 /sys-cluster
parentMask multilib features of librevenge until zlib goes multilib (diff)
downloadgentoo-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/ChangeLog12
-rw-r--r--sys-cluster/neutron/files/0001-Fixes-bug-in-interface-handling-of-ip_lib.py.patch73
-rw-r--r--sys-cluster/neutron/files/0002-moving-vxlan-module-check-to-sanity-checks-and-makin.patch210
-rw-r--r--sys-cluster/neutron/files/0003-fixes-error-logging-to-use-the-right-exception-paren.patch29
-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.ebuild5
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() {