diff --git a/sys-cluster/neutron/Manifest b/sys-cluster/neutron/Manifest new file mode 100644 index 00000000..5fc31869 --- /dev/null +++ b/sys-cluster/neutron/Manifest @@ -0,0 +1 @@ +DIST quantum-2013.1.3.tar.gz 1174471 SHA256 79e60ec1aef800da3a4e1841909cdd8b2cf645979d08f27bc481957c7944e93d SHA512 cba87ff6b6695bc6d09b60bea86e9fb42fcc9d5358dd3c06d1a6880f9654d9155d881485b49cec05aaae9428fdafa7d2d4061b15b9c02a69de49475b0cc064b8 WHIRLPOOL deaf4a9ae8df78580a7418d65a00850c57f34cedbe40e38f4832849d2e8ae8f4eadb06d37be039c1c2a16e8893f891763888d72e3e174dac96df56e733ad8bb7 diff --git a/sys-cluster/neutron/files/neutron-confd b/sys-cluster/neutron/files/neutron-confd new file mode 100644 index 00000000..dae379e5 --- /dev/null +++ b/sys-cluster/neutron/files/neutron-confd @@ -0,0 +1,2 @@ +#Don't touch this unless you know what you are doing +PID_PATH=/run/quantum diff --git a/sys-cluster/neutron/files/neutron-initd b/sys-cluster/neutron/files/neutron-initd new file mode 100644 index 00000000..6ecae404 --- /dev/null +++ b/sys-cluster/neutron/files/neutron-initd @@ -0,0 +1,60 @@ +#!/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 quantum:quantum \ + --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 quantum --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-sudoers b/sys-cluster/neutron/files/neutron-sudoers new file mode 100644 index 00000000..7d1d5a2b --- /dev/null +++ b/sys-cluster/neutron/files/neutron-sudoers @@ -0,0 +1,4 @@ +Defaults:neutron !requiretty + +neutron ALL = (root) NOPASSWD: /usr/bin/quantum-rootwrap + diff --git a/sys-cluster/neutron/neutron-2013.1.3-r1.ebuild b/sys-cluster/neutron/neutron-2013.1.3-r1.ebuild new file mode 100644 index 00000000..8a6df061 --- /dev/null +++ b/sys-cluster/neutron/neutron-2013.1.3-r1.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2013.1.3-r1.ebuild,v 1.1 2013/09/05 21:46:49 prometheanfire Exp $ + +EAPI=5 +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 + +#restricted due to packages missing and bad depends in the test ==webob-1.0.8 +RESTRICT="test" +DESCRIPTION="Quantum is a virtual network service for Openstack." +HOMEPAGE="https://launchpad.net/neutron" +SRC_URI="http://launchpad.net/${PN}/grizzly/${PV}/+download/quantum-${PV}.tar.gz" +S="${WORKDIR}/quantum-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+dhcp +l3 +metadata +openvswitch +server test" + +#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}] + app-admin/sudo + test? ( dev-python/cliff[python_targets_python2_7] + dev-python/configobj[${PYTHON_USEDEP}] ) + dev-python/coverage[${PYTHON_USEDEP}] + >=dev-python/mock-1.0[${PYTHON_USEDEP}] + ~dev-python/mox-0.5.3[${PYTHON_USEDEP}] + dev-python/nose[${PYTHON_USEDEP}] + dev-python/nosehtmloutput[${PYTHON_USEDEP}] + dev-python/nosexcover + dev-python/openstack-nose-plugin[${PYTHON_USEDEP}] + ~dev-python/pep8-1.3.3 + >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] + ~dev-python/webtest-1.3.3 + virtual/python-unittest2[${PYTHON_USEDEP}]" +RDEPEND=">=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] + >=dev-python/alembic-0.4.1[${PYTHON_USEDEP}] + dev-python/paste[${PYTHON_USEDEP}] + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] + >=dev-python/amqplib-0.6.1-r1[${PYTHON_USEDEP}] + >=dev-python/anyjson-0.2.4[${PYTHON_USEDEP}] + >=dev-python/eventlet-0.9.17[${PYTHON_USEDEP}] + >=dev-python/greenlet-0.3.1[${PYTHON_USEDEP}] + dev-python/httplib2[${PYTHON_USEDEP}] + >=dev-python/iso8601-0.1.4[${PYTHON_USEDEP}] + >=dev-python/kombu-1.0.4-r1[${PYTHON_USEDEP}] + dev-python/netaddr[${PYTHON_USEDEP}] + >=dev-python/pyparsing-1.5.7[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-0.2.0[${PYTHON_USEDEP}] + dev-python/python-novaclient[${PYTHON_USEDEP}] + >=dev-python/python-quantumclient-2.2.0[${PYTHON_USEDEP}] + <=dev-python/python-quantumclient-3.0.0[${PYTHON_USEDEP}] + dev-python/pyudev[${PYTHON_USEDEP}] + >dev-python/sqlalchemy-0.7.8 + <=dev-python/sqlalchemy-0.7.99 + >=dev-python/webob-1.2[${PYTHON_USEDEP}] + >=dev-python/oslo-config-1.1.0[${PYTHON_USEDEP}] + virtual/python-argparse[${PYTHON_USEDEP}] + net-misc/openvswitch + dhcp? ( net-dns/dnsmasq )" + +pkg_setup() { + enewgroup neutron + enewuser neutron -1 -1 /var/lib/neutron neutron +} + +python_install() { + distutils-r1_python_install + newconfd "${FILESDIR}/neutron-confd" "quantum" + newinitd "${FILESDIR}/neutron-initd" "quantum" + + use server && dosym /etc/init.d/quantum /etc/init.d/quantum-server + use dhcp && dosym /etc/init.d/quantum /etc/init.d/quantum-dhcp-agent + use l3 && dosym /etc/init.d/quantum /etc/init.d/quantum-l3-agent + use metadata && dosym /etc/init.d/quantum /etc/init.d/quantum-metadata-agent + use openvswitch && dosym /etc/init.d/quantum /etc/init.d/quantum-openvswitch-agent + + dodir /var/log/neutron + fowners neutron:neutron /var/log/neutron + keepdir /etc/quantum + insinto /etc/quantum + + doins "etc/api-paste.ini" + doins "etc/dhcp_agent.ini" + doins "etc/l3_agent.ini" + doins "etc/policy.json" + doins "etc/quantum.conf" + doins "etc/rootwrap.conf" + insinto /etc + doins -r "etc/quantum/" + + #remove the etc stuff from usr... + rm -R "${D}/usr/etc/" + + insinto "/usr/lib64/python2.7/site-packages/quantum/db/migration/alembic_migrations/" + doins -r "quantum/db/migration/alembic_migrations/versions" + + #add sudoers definitions for user neutron + insinto /etc/sudoers.d/ + doins "${FILESDIR}/neutron-sudoers" +} + +pkg_config() { + fperms 0700 /var/log/neutron + fowners neutron:neutron /var/log neutron +}