diff options
author | Matthew Thode <prometheanfire@gentoo.org> | 2015-01-13 03:59:07 +0000 |
---|---|---|
committer | Matthew Thode <prometheanfire@gentoo.org> | 2015-01-13 03:59:07 +0000 |
commit | 7657092d70bdffe3665cfd52f216bf282ce47eae (patch) | |
tree | f0cf7088961036ba01b4e301a592493809c8b921 /sys-cluster | |
parent | removing old versions (icehosue) (diff) | |
download | gentoo-2-7657092d70bdffe3665cfd52f216bf282ce47eae.tar.gz gentoo-2-7657092d70bdffe3665cfd52f216bf282ce47eae.tar.bz2 gentoo-2-7657092d70bdffe3665cfd52f216bf282ce47eae.zip |
bunch o fixes
removing old for old reasons
removing badness for CVE-2014-7821
patching goodness for CVE-2014-8153
(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 | 15 | ||||
-rw-r--r-- | sys-cluster/neutron/files/CVE-2014-8153-juno.patch | 120 | ||||
-rw-r--r-- | sys-cluster/neutron/files/neutron-confd | 2 | ||||
-rw-r--r-- | sys-cluster/neutron/files/neutron-confd-2 | 2 | ||||
-rw-r--r-- | sys-cluster/neutron/files/neutron-initd | 60 | ||||
-rw-r--r-- | sys-cluster/neutron/files/neutron-initd-2 | 60 | ||||
-rw-r--r-- | sys-cluster/neutron/files/neutron-sudoers | 4 | ||||
-rw-r--r-- | sys-cluster/neutron/files/nicira.patch | 164 | ||||
-rw-r--r-- | sys-cluster/neutron/files/sphinx_mapping.patch | 16 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-2014.2.1-r1.ebuild (renamed from sys-cluster/neutron/neutron-2014.2.1.ebuild) | 7 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-2014.2.9999.ebuild | 6 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-2014.2.ebuild | 222 | ||||
-rw-r--r-- | sys-cluster/neutron/neutron-9999.ebuild | 216 |
13 files changed, 279 insertions, 615 deletions
diff --git a/sys-cluster/neutron/ChangeLog b/sys-cluster/neutron/ChangeLog index 57e09db55bad..cf66286a9eeb 100644 --- a/sys-cluster/neutron/ChangeLog +++ b/sys-cluster/neutron/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for sys-cluster/neutron -# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.49 2014/12/09 01:38:10 prometheanfire Exp $ +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.50 2015/01/13 03:59:07 prometheanfire Exp $ + +*neutron-2014.2.1-r1 (13 Jan 2015) + + 13 Jan 2015; Matthew Thode <prometheanfire@gentoo.org> + +files/CVE-2014-8153-juno.patch, +neutron-2014.2.1-r1.ebuild, + -files/neutron-confd, -files/neutron-confd-2, -files/neutron-initd, + -files/neutron-initd-2, -files/neutron-sudoers, -files/nicira.patch, + -files/sphinx_mapping.patch, -neutron-2014.2.1.ebuild, -neutron-2014.2.ebuild, + neutron-2014.2.9999.ebuild, neutron-9999.ebuild: + bunch o fixes removing old for old reasons removing badness for CVE-2014-7821 + patching goodness for CVE-2014-8153 *neutron-2014.2.1 (09 Dec 2014) diff --git a/sys-cluster/neutron/files/CVE-2014-8153-juno.patch b/sys-cluster/neutron/files/CVE-2014-8153-juno.patch new file mode 100644 index 000000000000..687eb3febca0 --- /dev/null +++ b/sys-cluster/neutron/files/CVE-2014-8153-juno.patch @@ -0,0 +1,120 @@ +From 6c490a984af690e732f8b96a18493ac1afef892f Mon Sep 17 00:00:00 2001 +From: Ihar Hrachyshka <ihrachys@redhat.com> +Date: Wed, 3 Dec 2014 12:44:57 +0100 +Subject: [PATCH] radvd: pass -m syslog to avoid thread lock for radvd 2.0+ + +Since radvd 2.0, the daemon does not use daemon_fork() function from +libdaemon, but instead calls Linux daemon() function directly. It also +passes (1, 1) arguments when logging method (-m) is either stderr (the +default) or stderr_syslog. The second argument's value = 1 means that +stderr is not closed and left there for (some) log messages. + +For neutron, it means that corresponding execute() call that spawns +radvd and expects the invoked process to close stderr does not ever get +completed. The current thread that spawned radvd is locked waiting for +radvd to exit, which does not ever occur unless the process crashes or +receives a signal. + +Since L3 agent gives exclusive access to updates queue for each router +to one of processing threads only, it means that the thread that got to +serve a radvd-powered subnet will not proceed and not update any new +ports or other changes to the router anymore. + +Passing -m syslog makes radvd 2.0+ close stderr and return to execute() +caller, proceeding with router update processing. The same arguments +should work for old (pre 2.0) versions of radvd too, so passing them +unconditionally. + +We could instead use -m logfile and pass appropriate -l <logfile> +argument to radvd to make it log to a log file located in router's +namespace storage path. Though that would be not in line with what +dnsmasq processes currently do for dhcp agent, where we log all messages +to syslog, so sticking to syslog for radvd for consistency. + +Juno changes: +- tests: we need to construct RouterInfo to get router namespace name. + +Change-Id: I131db0639bc46d332ed48faa2bbe68a214264062 +Closes-Bug: #1398779 +(cherry picked from commit 72d41174765540bb7672b545c336fb7aaad075e8) +--- + neutron/agent/linux/ra.py | 8 +++++++- + neutron/tests/unit/test_l3_agent.py | 34 ++++++++++++++++++++++++++++++++++ + 2 files changed, 41 insertions(+), 1 deletion(-) + +diff --git a/neutron/agent/linux/ra.py b/neutron/agent/linux/ra.py +index 66fa012..6bdfea5 100644 +--- a/neutron/agent/linux/ra.py ++++ b/neutron/agent/linux/ra.py +@@ -82,9 +82,15 @@ def _generate_radvd_conf(router_id, router_ports, dev_name_helper): + + def _spawn_radvd(router_id, radvd_conf, router_ns, root_helper): + def callback(pid_file): ++ # we need to use -m syslog and f.e. not -m stderr (the default) ++ # or -m stderr_syslog so that radvd 2.0+ will close stderr and ++ # exit after daemonization; otherwise, the current thread will ++ # be locked waiting for result from radvd that won't ever come ++ # until the process dies + radvd_cmd = ['radvd', + '-C', '%s' % radvd_conf, +- '-p', '%s' % pid_file] ++ '-p', '%s' % pid_file, ++ '-m', 'syslog'] + return radvd_cmd + + radvd = external_process.ProcessManager(cfg.CONF, +diff --git a/neutron/tests/unit/test_l3_agent.py b/neutron/tests/unit/test_l3_agent.py +index 6fda182..f5b2ca4 100644 +--- a/neutron/tests/unit/test_l3_agent.py ++++ b/neutron/tests/unit/test_l3_agent.py +@@ -27,6 +27,7 @@ from neutron.agent.common import config as agent_config + from neutron.agent import l3_agent + from neutron.agent import l3_ha_agent + from neutron.agent.linux import interface ++from neutron.agent.linux import ra + from neutron.common import config as base_config + from neutron.common import constants as l3_constants + from neutron.common import exceptions as n_exc +@@ -2350,6 +2351,39 @@ vrrp_instance VR_1 { + self.assertFalse(nat.add_rule.called) + nat.clear_rules_by_tag.assert_called_once_with('floating_ip') + ++ def test_spawn_radvd(self): ++ router = prepare_router_data() ++ ri = l3_agent.RouterInfo(router['id'], self.conf.root_helper, ++ self.conf.use_namespaces, router=router) ++ ++ conffile = '/fake/radvd.conf' ++ pidfile = '/fake/radvd.pid' ++ ++ # we don't want the whole process manager to be mocked to be ++ # able to catch execute() calls ++ self.external_process_p.stop() ++ self.ip_cls_p.stop() ++ ++ get_pid_file_name = ('neutron.agent.linux.external_process.' ++ 'ProcessManager.get_pid_file_name') ++ with mock.patch('neutron.agent.linux.utils.execute') as execute: ++ with mock.patch(get_pid_file_name) as get_pid: ++ get_pid.return_value = pidfile ++ ra._spawn_radvd(router['id'], ++ conffile, ++ ri.ns_name, ++ self.conf.root_helper) ++ cmd = execute.call_args[0][0] ++ ++ self.assertIn('radvd', cmd) ++ ++ _join = lambda *args: ' '.join(args) ++ ++ cmd = _join(*cmd) ++ self.assertIn(_join('-C', conffile), cmd) ++ self.assertIn(_join('-p', pidfile), cmd) ++ self.assertIn(_join('-m', 'syslog'), cmd) ++ + + class TestL3AgentEventHandler(base.BaseTestCase): + +-- +2.0.5 + diff --git a/sys-cluster/neutron/files/neutron-confd b/sys-cluster/neutron/files/neutron-confd deleted file mode 100644 index dae379e557c7..000000000000 --- a/sys-cluster/neutron/files/neutron-confd +++ /dev/null @@ -1,2 +0,0 @@ -#Don't touch this unless you know what you are doing -PID_PATH=/run/quantum diff --git a/sys-cluster/neutron/files/neutron-confd-2 b/sys-cluster/neutron/files/neutron-confd-2 deleted file mode 100644 index d7a9c043d327..000000000000 --- a/sys-cluster/neutron/files/neutron-confd-2 +++ /dev/null @@ -1,2 +0,0 @@ -#Don't touch this unless you know what you are doing -PID_PATH=/run/neutron diff --git a/sys-cluster/neutron/files/neutron-initd b/sys-cluster/neutron/files/neutron-initd deleted file mode 100644 index 348e62766c6d..000000000000 --- a/sys-cluster/neutron/files/neutron-initd +++ /dev/null @@ -1,60 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -depend() { - need net -} - -BASENAME=$(echo $SVCNAME | cut -d '-' -f 1) -SERVERNAME=$(echo $SVCNAME | cut -d '-' -f 2) - -checkconfig() { - if [ ! -r /etc/conf.d/$BASENAME ]; then - eerror "No quantum conf.d file found: /etc/conf.d/$BASENAME)" - return 1 - fi - return 0 -} - -start() { - checkconfig || return $? - . /etc/conf.d/$BASENAME - - ebegin "Starting ${SVCNAME}" - - if [ ! -d ${PID_PATH} ]; then - mkdir ${PID_PATH} - fi - - start-stop-daemon --start \ - --user neutron:neutron \ - --quiet \ - --pidfile "${PID_PATH}/${SVCNAME}.pid" \ - --make-pidfile \ - --background \ - --exec /usr/bin/${SVCNAME} -- \ - --config-file /etc/quantum/quantum.conf \ - --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini \ - --log-file /var/log/quantum/server.log - - eend $? "Failed to start ${SVCNAME}" -} - -stop() { - checkconfig || return $? - . /etc/conf.d/$BASENAME - - ebegin "Stopping ${SVCNAME}" - - start-stop-daemon --stop --user neutron --quiet --pidfile "${PID_PATH}/${SVCNAME}.pid" \ - --exec /usr/bin/${SVCNAME} -- \ - --config-file /etc/quantum/quantum.conf \ - --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini \ - --log-file /var/log/quantum/server.log - eend $? "Failed to stop ${SVCNAME}" -} - -#restart() { -# -#} diff --git a/sys-cluster/neutron/files/neutron-initd-2 b/sys-cluster/neutron/files/neutron-initd-2 deleted file mode 100644 index 192d153ccd52..000000000000 --- a/sys-cluster/neutron/files/neutron-initd-2 +++ /dev/null @@ -1,60 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -depend() { - need net -} - -BASENAME=$(echo $SVCNAME | cut -d '-' -f 1) -SERVERNAME=$(echo $SVCNAME | cut -d '-' -f 2) - -checkconfig() { - if [ ! -r /etc/conf.d/$BASENAME ]; then - eerror "No neutron conf.d file found: /etc/conf.d/$BASENAME)" - return 1 - fi - return 0 -} - -start() { - checkconfig || return $? - . /etc/conf.d/$BASENAME - - ebegin "Starting ${SVCNAME}" - - if [ ! -d ${PID_PATH} ]; then - mkdir ${PID_PATH} - fi - - start-stop-daemon --start \ - --user neutron:neutron \ - --quiet \ - --pidfile "${PID_PATH}/${SVCNAME}.pid" \ - --make-pidfile \ - --background \ - --exec /usr/bin/${SVCNAME} -- \ - --config-file /etc/neutron/neutron.conf \ - --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \ - --log-file /var/log/neutron/server.log - - eend $? "Failed to start ${SVCNAME}" -} - -stop() { - checkconfig || return $? - . /etc/conf.d/$BASENAME - - ebegin "Stopping ${SVCNAME}" - - start-stop-daemon --stop --user neutron --quiet --pidfile "${PID_PATH}/${SVCNAME}.pid" \ - --exec /usr/bin/${SVCNAME} -- \ - --config-file /etc/neutron/neutron.conf \ - --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \ - --log-file /var/log/neutron/server.log - eend $? "Failed to stop ${SVCNAME}" -} - -#restart() { -# -#} diff --git a/sys-cluster/neutron/files/neutron-sudoers b/sys-cluster/neutron/files/neutron-sudoers deleted file mode 100644 index 7d1d5a2be487..000000000000 --- a/sys-cluster/neutron/files/neutron-sudoers +++ /dev/null @@ -1,4 +0,0 @@ -Defaults:neutron !requiretty - -neutron ALL = (root) NOPASSWD: /usr/bin/quantum-rootwrap - diff --git a/sys-cluster/neutron/files/nicira.patch b/sys-cluster/neutron/files/nicira.patch deleted file mode 100644 index 58461f91df87..000000000000 --- a/sys-cluster/neutron/files/nicira.patch +++ /dev/null @@ -1,164 +0,0 @@ -https://review.openstack.org/gitweb?p=openstack%2Fneutron.git;a=commitdiff;h=a52ef6ecf19b8b015465ddda2a3ca087f0e12122 -index 04dbfef..77f233a 100755 (executable) - - ---- a/neutron/plugins/nicira/vshield/tasks/tasks.py -+++ b/neutron/plugins/nicira/vshield/tasks/tasks.py -@@ -15,8 +15,6 @@ - # License for the specific language governing permissions and limitations - # under the License. - --from __future__ import print_function -- - import collections - import uuid - -@@ -167,6 +165,9 @@ class TaskManager(): - # A dict to store resource -> resource's tasks - self._tasks = {} - -+ # Current task being executed in main thread -+ self._main_thread_exec_task = None -+ - # New request event - self._req = event.Event() - -@@ -311,8 +312,10 @@ class TaskManager(): - continue - - try: -+ self._main_thread_exec_task = task - self._execute(task) - finally: -+ self._main_thread_exec_task = None - if task.status is None: - # The thread is killed during _execute(). To guarantee - # the task been aborted correctly, put it to the queue. -@@ -348,20 +351,19 @@ class TaskManager(): - self._thread = None - - def has_pending_task(self): -- if self._tasks_queue: -- return True -- -- if self._tasks: -+ if self._tasks_queue or self._tasks or self._main_thread_exec_task: - return True -- -- return False -+ else: -+ return False - - def show_pending_tasks(self): - for task in self._tasks_queue: -- print(str(task)) -+ LOG.info(str(task)) - for resource, tasks in self._tasks.iteritems(): - for task in tasks: -- print(str(task)) -+ LOG.info(str(task)) -+ if self._main_thread_exec_task: -+ LOG.info(str(self._main_thread_exec_task)) - - def count(self): - count = 0 - - -diff --git a/neutron/tests/unit/nicira/test_edge_router.py b/neutron/tests/unit/nicira/test_edge_router.py - -index 41efeed..a360b71 100644 (file) - - ---- a/neutron/tests/unit/nicira/test_edge_router.py -+++ b/neutron/tests/unit/nicira/test_edge_router.py -@@ -135,7 +135,8 @@ class ServiceRouterTest(test_nicira_plugin.NiciraL3NatTest, - def tearDown(self): - plugin = NeutronManager.get_plugin() - manager = plugin.vcns_driver.task_manager -- for i in range(20): -+ # wait max ~10 seconds for all tasks to be finished -+ for i in range(100): - if not manager.has_pending_task(): - break - greenthread.sleep(0.1) -@@ -183,8 +184,8 @@ class ServiceRouterTestCase(ServiceRouterTest, NvpRouterTestCase): - for k, v in expected_value_1: - self.assertEqual(router['router'][k], v) - -- # wait ~1 seconds for router status update -- for i in range(2): -+ # wait max ~10 seconds for router status update -+ for i in range(20): - greenthread.sleep(0.5) - res = self._show('routers', router['router']['id']) - if res['router']['status'] == 'ACTIVE': - - -diff --git a/neutron/tests/unit/nicira/test_vcns_driver.py b/neutron/tests/unit/nicira/test_vcns_driver.py - -index b0d69a4..ddc0c33 100644 (file) - - ---- a/neutron/tests/unit/nicira/test_vcns_driver.py -+++ b/neutron/tests/unit/nicira/test_vcns_driver.py -@@ -253,6 +253,31 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): - def test_task_manager_stop_4(self): - self._test_task_manager_stop(False, False, 1) - -+ def test_task_pending_task(self): -+ def _exec(task): -+ task.userdata['executing'] = True -+ while not task.userdata['tested']: -+ greenthread.sleep(0) -+ task.userdata['executing'] = False -+ return TaskStatus.COMPLETED -+ -+ userdata = { -+ 'executing': False, -+ 'tested': False -+ } -+ manager = ts.TaskManager().start(100) -+ task = ts.Task('name', 'res', _exec, userdata=userdata) -+ manager.add(task) -+ -+ while not userdata['executing']: -+ greenthread.sleep(0) -+ self.assertTrue(manager.has_pending_task()) -+ -+ userdata['tested'] = True -+ while userdata['executing']: -+ greenthread.sleep(0) -+ self.assertFalse(manager.has_pending_task()) -+ - - class VcnsDriverTestCase(base.BaseTestCase): - -@@ -298,6 +323,10 @@ class VcnsDriverTestCase(base.BaseTestCase): - self.edge_id = None - self.result = None - -+ def tearDown(self): -+ self.vcns_driver.task_manager.stop() -+ super(VcnsDriverTestCase, self).tearDown() -+ - def _deploy_edge(self): - task = self.vcns_driver.deploy_edge( - 'router-id', 'myedge', 'internal-network', {}, wait_for_exec=True) -@@ -355,12 +384,13 @@ class VcnsDriverTestCase(base.BaseTestCase): - self.assertTrue(jobdata.get('edge_deploy_result')) - - def test_deploy_edge_fail(self): -- self.vcns_driver.deploy_edge( -+ task1 = self.vcns_driver.deploy_edge( - 'router-1', 'myedge', 'internal-network', {}, wait_for_exec=True) -- task = self.vcns_driver.deploy_edge( -+ task2 = self.vcns_driver.deploy_edge( - 'router-2', 'myedge', 'internal-network', {}, wait_for_exec=True) -- task.wait(TaskState.RESULT) -- self.assertEqual(task.status, TaskStatus.ERROR) -+ task1.wait(TaskState.RESULT) -+ task2.wait(TaskState.RESULT) -+ self.assertEqual(task2.status, TaskStatus.ERROR) - - def test_get_edge_status(self): - self._deploy_edge() diff --git a/sys-cluster/neutron/files/sphinx_mapping.patch b/sys-cluster/neutron/files/sphinx_mapping.patch deleted file mode 100644 index d7367d6a6e52..000000000000 --- a/sys-cluster/neutron/files/sphinx_mapping.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ur neutron-2013.2.orig/doc/source/conf.py neutron-2013.2/doc/source/conf.py ---- doc/source/conf.py 2013-10-17 22:01:20.000000000 +0800 -+++ doc/source/conf.py 2013-11-15 19:42:42.701213324 +0800 -@@ -238,12 +238,3 @@ - - # If false, no module index is generated. - #latex_use_modindex = True -- --# Example configuration for intersphinx: refer to the Python standard library. --intersphinx_mapping = {'python': ('http://docs.python.org/', None), -- 'nova': ('http://nova.openstack.org', None), -- 'swift': ('http://swift.openstack.org', None), -- 'glance': ('http://glance.openstack.org', None), -- 'horizon': ('http://horizon.openstack.org', None), -- 'keystone': ('http://keystone.openstack.org', None), -- } diff --git a/sys-cluster/neutron/neutron-2014.2.1.ebuild b/sys-cluster/neutron/neutron-2014.2.1-r1.ebuild index f404e5bdcb95..c54efd98b2da 100644 --- a/sys-cluster/neutron/neutron-2014.2.1.ebuild +++ b/sys-cluster/neutron/neutron-2014.2.1-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# 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.1.ebuild,v 1.1 2014/12/09 01:38:10 prometheanfire Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.1-r1.ebuild,v 1.1 2015/01/13 03:59:07 prometheanfire Exp $ EAPI=5 PYTHON_COMPAT=( python2_7 ) @@ -116,6 +116,7 @@ RDEPEND=" dhcp? ( net-dns/dnsmasq[dhcp-tools] )" PATCHES=( + "${FILESDIR}/CVE-2014-8153-juno.patch" ) pkg_setup() { @@ -125,7 +126,7 @@ pkg_setup() { NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES" if linux_config_exists; then for module in ${CONFIG_CHECK_MODULES}; do - linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)" + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel" done fi enewgroup neutron diff --git a/sys-cluster/neutron/neutron-2014.2.9999.ebuild b/sys-cluster/neutron/neutron-2014.2.9999.ebuild index 517c68bba7f5..341c9b817b54 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-2014 Gentoo Foundation +# 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.5 2014/12/09 01:38:10 prometheanfire Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.9999.ebuild,v 1.6 2015/01/13 03:59:07 prometheanfire Exp $ EAPI=5 PYTHON_COMPAT=( python2_7 ) @@ -126,7 +126,7 @@ pkg_setup() { NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES" if linux_config_exists; then for module in ${CONFIG_CHECK_MODULES}; do - linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)" + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel" done fi enewgroup neutron diff --git a/sys-cluster/neutron/neutron-2014.2.ebuild b/sys-cluster/neutron/neutron-2014.2.ebuild deleted file mode 100644 index 9314328cd979..000000000000 --- a/sys-cluster/neutron/neutron-2014.2.ebuild +++ /dev/null @@ -1,222 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.ebuild,v 1.4 2014/11/22 00:00:53 prometheanfire Exp $ - -EAPI=5 -PYTHON_COMPAT=( python2_7 ) - -inherit distutils-r1 linux-info user - -DESCRIPTION="A virtual network service for Openstack" -HOMEPAGE="https://launchpad.net/neutron" -SRC_URI="http://launchpad.net/${PN}/juno/${PV}/+download/${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="dhcp doc l3 metadata openvswitch linuxbridge server test sqlite mysql postgres" -REQUIRED_USE="|| ( mysql postgres sqlite )" - -#the cliff dep is as below because it depends on pyparsing, which only has 2.7 OR 3.2, not both -DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/pbr-0.8[${PYTHON_USEDEP}] - <dev-python/pbr-1.0[${PYTHON_USEDEP}] - app-admin/sudo - test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}] - <dev-python/hacking-0.10[${PYTHON_USEDEP}] - >=dev-python/cliff-1.7.0[${PYTHON_USEDEP}] - >=dev-python/coverage-3.6[${PYTHON_USEDEP}] - >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}] - >=dev-python/mock-1.0[${PYTHON_USEDEP}] - >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}] - dev-python/ordereddict[${PYTHON_USEDEP}] - >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}] - >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] - !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] - <dev-python/sphinx-1.3[${PYTHON_USEDEP}] - >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}] - >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] - >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] - >=dev-python/webtest-2.0[${PYTHON_USEDEP}] - dev-python/configobj[${PYTHON_USEDEP}] )" - -RDEPEND=" - dev-python/paste[${PYTHON_USEDEP}] - >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] - >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] - !~dev-python/routes-2.0[${PYTHON_USEDEP}] - >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}] - >=dev-python/Babel-1.3[${PYTHON_USEDEP}] - >=dev-python/eventlet-0.15.1[${PYTHON_USEDEP}] - >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}] - >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] - >=dev-python/requests-1.2.1[${PYTHON_USEDEP}] - !~dev-python/requests-2.4.0[${PYTHON_USEDEP}] - >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}] - dev-python/jsonrpclib[${PYTHON_USEDEP}] - dev-python/jinja[${PYTHON_USEDEP}] - >=dev-python/keystonemiddleware-1.0.0[${PYTHON_USEDEP}] - >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}] - >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] - <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}] - sqlite? ( - || ( - ( - >=dev-python/sqlalchemy-0.8.4[sqlite,${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.8.99[sqlite,${PYTHON_USEDEP}] - ) - ( - >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}] - ) - ) - ) - mysql? ( - dev-python/mysql-python - || ( - ( - >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}] - ) - ( - >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] - ) - ) - ) - postgres? ( - dev-python/psycopg:2 - || ( - ( - >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}] - ) - ( - >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] - ) - ) - ) - >=dev-python/webob-1.2.3[${PYTHON_USEDEP}] - >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}] - >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}] - >=dev-python/six-1.7.0[${PYTHON_USEDEP}] - >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}] - >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}] - >=dev-python/oslo-db-1.0.0[${PYTHON_USEDEP}] - >=dev-python/oslo-messaging-1.4.0[${PYTHON_USEDEP}] - >=dev-python/oslo-rootwrap-1.3.0[${PYTHON_USEDEP}] - >=dev-python/python-novaclient-2.18.0[${PYTHON_USEDEP}] - dev-python/pyudev[${PYTHON_USEDEP}] - sys-apps/iproute2 - net-firewall/ipset - openvswitch? ( net-misc/openvswitch ) - dhcp? ( net-dns/dnsmasq[dhcp-tools] )" - -PATCHES=( -) - -pkg_setup() { - linux-info_pkg_setup - CONFIG_CHECK_MODULES="8021Q IP6TABLE_FILTER IP6_TABLES IPT_REJECT \ - IPTABLE_MANGLE IPT_MASQUERADE IPTABLE_NAT NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \ - NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES" - if linux_config_exists; then - for module in ${CONFIG_CHECK_MODULES}; do - linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)" - done - fi - enewgroup neutron - enewuser neutron -1 -1 /var/lib/neutron neutron -} - -pkg_config() { - fperms 0700 /var/log/neutron - fowners neutron:neutron /var/log neutron -} - -src_prepare() { - #it's /bin/ip not /sbin/ip - sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* - distutils-r1_src_prepare -} - -python_compile_all() { - use doc && make -C doc html -} - -python_test() { - # https://bugs.launchpad.net/neutron/+bug/1234857 - # https://bugs.launchpad.net/swift/+bug/1249727 - # https://bugs.launchpad.net/neutron/+bug/1251657 - # turn multiprocessing off, testr will use it --parallel - local DISTUTILS_NO_PARALLEL_BUILD=1 - # Move tests out that attempt net connection, have failures - mv $(find . -name test_ovs_tunnel.py) . || die - sed -e 's:test_app_using_ipv6_and_ssl:_&:' \ - -e 's:test_start_random_port_with_ipv6:_&:' \ - -i neutron/tests/unit/test_wsgi.py || die - testr init - testr run --parallel || die "failed testsuite under python2.7" -} - -python_install() { - distutils-r1_python_install - if use server; then - newinitd "${FILESDIR}/neutron.initd" "neutron-server" - newconfd "${FILESDIR}/neutron-server.confd" "neutron-server" - dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini - fi - if use dhcp; then - newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent" - newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent" - fi - if use l3; then - newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent" - newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent" - fi - if use metadata; then - newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent" - newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent" - fi - if use openvswitch; then - newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent" - newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent" - newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup" - newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup" - fi - if use linuxbridge; then - newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent" - newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent" - fi - diropts -m 755 -o neutron -g neutron - dodir /var/log/neutron /var/lib/neutron - keepdir /etc/neutron - insinto /etc/neutron - insopts -m 0640 -o neutron -g neutron - - doins etc/* - # stupid renames - rm "${D}etc/neutron/quantum" - insinto /etc/neutron - doins -r "etc/neutron/plugins" - insopts -m 0640 -o root -g root - doins "etc/rootwrap.conf" - doins -r "etc/neutron/rootwrap.d" - - insinto "/usr/lib64/python2.7/site-packages/neutron/db/migration/alembic_migrations/" - doins -r "neutron/db/migration/alembic_migrations/versions" - - #add sudoers definitions for user neutron - insinto /etc/sudoers.d/ - insopts -m 0440 -o root -g root - newins "${FILESDIR}/neutron.sudoersd" neutron - - #remove superfluous stuff - rm -R "${D}/usr/etc/" -} - -python_install_all() { - use doc && local HTML_DOCS=( doc/build/html/. ) - distutils-r1_python_install_all -} diff --git a/sys-cluster/neutron/neutron-9999.ebuild b/sys-cluster/neutron/neutron-9999.ebuild index 5380f992caac..34c855963982 100644 --- a/sys-cluster/neutron/neutron-9999.ebuild +++ b/sys-cluster/neutron/neutron-9999.ebuild @@ -1,91 +1,134 @@ -# Copyright 1999-2014 Gentoo Foundation +# 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-9999.ebuild,v 1.14 2014/08/10 20:20:58 slyfox Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-9999.ebuild,v 1.15 2015/01/13 03:59:07 prometheanfire Exp $ EAPI=5 PYTHON_COMPAT=( python2_7 ) -inherit distutils-r1 git-2 user +inherit distutils-r1 git-2 linux-info user DESCRIPTION="A virtual network service for Openstack" HOMEPAGE="https://launchpad.net/neutron" EGIT_REPO_URI="https://github.com/openstack/neutron.git" +EGIT_BRANCH="master" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="" -IUSE="+dhcp doc +l3 +metadata +openvswitch +server test sqlite mysql postgres" +IUSE="dhcp doc l3 metadata openvswitch linuxbridge server test sqlite mysql postgres" REQUIRED_USE="|| ( mysql postgres sqlite )" #the cliff dep is as below because it depends on pyparsing, which only has 2.7 OR 3.2, not both DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/pbr-0.6[${PYTHON_USEDEP}] + >=dev-python/pbr-0.8[${PYTHON_USEDEP}] <dev-python/pbr-1.0[${PYTHON_USEDEP}] app-admin/sudo - test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}] - <dev-python/hacking-0.9[${PYTHON_USEDEP}] - >=dev-python/cliff-1.4.3[${PYTHON_USEDEP}] + test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}] + <dev-python/hacking-0.10[${PYTHON_USEDEP}] + >=dev-python/cliff-1.7.0[${PYTHON_USEDEP}] >=dev-python/coverage-3.6[${PYTHON_USEDEP}] >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}] >=dev-python/mock-1.0[${PYTHON_USEDEP}] >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}] + dev-python/ordereddict[${PYTHON_USEDEP}] + >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}] >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] - <dev-python/sphinx-1.2[${PYTHON_USEDEP}] + !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] + <dev-python/sphinx-1.3[${PYTHON_USEDEP}] + >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}] >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}] + !~dev-python/testtools-1.4.0[${PYTHON_USEDEP}] >=dev-python/webtest-2.0[${PYTHON_USEDEP}] dev-python/configobj[${PYTHON_USEDEP}] )" -RDEPEND="dev-python/paste[${PYTHON_USEDEP}] - >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] - >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] - >=dev-python/amqplib-0.6.1-r1[${PYTHON_USEDEP}] - >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}] - >=dev-python/Babel-1.3[${PYTHON_USEDEP}] - >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}] - >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}] - >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] - >=dev-python/requests-1.1[${PYTHON_USEDEP}] - >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}] - dev-python/jsonrpclib[${PYTHON_USEDEP}] - dev-python/jinja[${PYTHON_USEDEP}] - >=dev-python/kombu-2.4.8[${PYTHON_USEDEP}] - >=dev-python/netaddr-0.7.6[${PYTHON_USEDEP}] - >=dev-python/python-neutronclient-2.3.4[${PYTHON_USEDEP}] - <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}] - sqlite? ( - >=dev-python/sqlalchemy-0.8.0[sqlite,${PYTHON_USEDEP}] - !~dev-python/sqlalchemy-0.9.5[sqlite,${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}] +RDEPEND=" + dev-python/paste[${PYTHON_USEDEP}] + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] + !~dev-python/routes-2.0[${PYTHON_USEDEP}] + >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}] + >=dev-python/Babel-1.3[${PYTHON_USEDEP}] + >=dev-python/eventlet-0.15.1[${PYTHON_USEDEP}] + >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}] + >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] + >=dev-python/requests-1.2.1[${PYTHON_USEDEP}] + !~dev-python/requests-2.4.0[${PYTHON_USEDEP}] + >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}] + dev-python/jsonrpclib[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + >=dev-python/keystonemiddleware-1.0.0[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}] + >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] + <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}] + sqlite? ( + || ( + ( + >=dev-python/sqlalchemy-0.8.4[sqlite,${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.8.99[sqlite,${PYTHON_USEDEP}] + ) + ( + >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}] + ) ) - mysql? ( - dev-python/mysql-python - >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}] - !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] + ) + mysql? ( + dev-python/mysql-python + || ( + ( + >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}] + ) + ( + >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] + ) ) - postgres? ( - dev-python/psycopg:2 - >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}] - !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] + ) + postgres? ( + dev-python/psycopg:2 + || ( + ( + >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}] + ) + ( + >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}] + <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}] + ) ) - >=dev-python/webob-1.2.3[${PYTHON_USEDEP}] - >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}] - >=dev-python/alembic-0.4.1[${PYTHON_USEDEP}] - >=dev-python/six-1.5.2[${PYTHON_USEDEP}] - >=dev-python/stevedore-0.14[${PYTHON_USEDEP}] - >=dev-python/oslo-config-1.2.0[${PYTHON_USEDEP}] - dev-python/oslo-rootwrap[${PYTHON_USEDEP}] - >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] - dev-python/pyudev[${PYTHON_USEDEP}] - sys-apps/iproute2 - openvswitch? ( net-misc/openvswitch ) - dhcp? ( net-dns/dnsmasq[dhcp-tools] )" - -PATCHES=( "${FILESDIR}/sphinx_mapping.patch" ) + ) + >=dev-python/webob-1.2.3[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}] + >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}] + >=dev-python/six-1.7.0[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}] + >=dev-python/oslo-db-1.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-messaging-1.4.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-1.5.0[${PYTHON_USEDEP}] + >=dev-python/oslo-rootwrap-1.3.0[${PYTHON_USEDEP}] + >=dev-python/python-novaclient-2.18.0[${PYTHON_USEDEP}] + dev-python/pyudev[${PYTHON_USEDEP}] + sys-apps/iproute2 + net-firewall/ipset + openvswitch? ( net-misc/openvswitch ) + dhcp? ( net-dns/dnsmasq[dhcp-tools] )" + +PATCHES=( +) pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK_MODULES="8021Q IP6TABLE_FILTER IP6_TABLES IPT_REJECT \ + IPTABLE_MANGLE IPT_MASQUERADE IPTABLE_NAT NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \ + NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES" + if linux_config_exists; then + for module in ${CONFIG_CHECK_MODULES}; do + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel" + done + fi enewgroup neutron enewuser neutron -1 -1 /var/lib/neutron neutron } @@ -122,39 +165,58 @@ python_test() { python_install() { distutils-r1_python_install - newconfd "${FILESDIR}/neutron-confd" "neutron" - newinitd "${FILESDIR}/neutron-initd" "neutron" - - use server && dosym /etc/init.d/neutron /etc/init.d/neutron-server - use dhcp && dosym /etc/init.d/neutron /etc/init.d/neutron-dhcp-agent - use l3 && dosym /etc/init.d/neutron /etc/init.d/neutron-l3-agent - use metadata && dosym /etc/init.d/neutron /etc/init.d/neutron-metadata-agent - use openvswitch && dosym /etc/init.d/neutron /etc/init.d/neutron-openvswitch-agent - - diropts -m 750 - dodir /var/log/neutron /var/log/neutron - fowners neutron:neutron /var/log/neutron + if use server; then + newinitd "${FILESDIR}/neutron.initd" "neutron-server" + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server" + dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini + fi + if use dhcp; then + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent" + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent" + fi + if use l3; then + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent" + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent" + fi + if use metadata; then + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent" + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent" + fi + if use openvswitch; then + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent" + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent" + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup" + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup" + fi + if use linuxbridge; then + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent" + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent" + fi + diropts -m 755 -o neutron -g neutron + dodir /var/log/neutron /var/lib/neutron keepdir /etc/neutron insinto /etc/neutron + insopts -m 0640 -o neutron -g neutron - doins "etc/api-paste.ini" - doins "etc/dhcp_agent.ini" - doins "etc/l3_agent.ini" - doins "etc/policy.json" - doins "etc/neutron.conf" + doins etc/* + # stupid renames + rm "${D}etc/neutron/quantum" + insinto /etc/neutron + doins -r "etc/neutron/plugins" + insopts -m 0640 -o root -g root doins "etc/rootwrap.conf" - insinto /etc - doins -r "etc/neutron/" - - #remove the etc stuff from usr... - rm -R "${D}/usr/etc/" + doins -r "etc/neutron/rootwrap.d" insinto "/usr/lib64/python2.7/site-packages/neutron/db/migration/alembic_migrations/" doins -r "neutron/db/migration/alembic_migrations/versions" #add sudoers definitions for user neutron insinto /etc/sudoers.d/ - doins "${FILESDIR}/neutron-sudoers" + insopts -m 0440 -o root -g root + newins "${FILESDIR}/neutron.sudoersd" neutron + + #remove superfluous stuff + rm -R "${D}/usr/etc/" } python_install_all() { |