Skip to content

Commit

Permalink
sys-cluster/neutron: bup
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.26
  • Loading branch information
prometheanfire committed Feb 10, 2016
1 parent 7db28d5 commit 50659ec
Show file tree
Hide file tree
Showing 2 changed files with 305 additions and 0 deletions.
1 change: 1 addition & 0 deletions sys-cluster/neutron/Manifest
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
DIST neutron-7.0.1.tar.gz 2500003 SHA256 99d9f2d05b225777f521a88849bd42691408e7986af76a6d76a18eeac736c19e SHA512 a072e7c44c55c00d4bcf1d17e0de8801b729849d354003c2eac2a14033fa9c81a5d7f83411bc235bdce070c55c1b76bbb86a836336eb17c3c04f00c2358ac953 WHIRLPOOL ce8ef78b8f0df852b561b336812b9101708cc8a036c28ccf8c7f7eee16d52ba0a61179f519f9ec469935e4920dacb7e9cdc6c3f37a8d71997885d29b7df58ba9
DIST neutron-7.0.2.tar.gz 2512153 SHA256 6e6988b301b87f21cc470c2ca7dd6fb91586860b477f958aba1be77c79afe51a SHA512 841e2e7aad0585a0f906aef90f67168ba9d95b4afdc94be0ac415fc1b975141c3488d31ae3096fc6d3eb47ef67d93d5e1e7980d9b95ea53e720aa0e08091d476 WHIRLPOOL 5a690ddbb0030df2d97e42c559c614b0d0eb003b814f8d0fd43cb62ac684109cd4b0b010a5cd827508fe83a14b0d580be32ab0ff775328b5666aa41b1515160e
DIST neutron-7.0.3.tar.gz 2522096 SHA256 07bc7ae4ef28937d371426c9dafb7a11e1233b1b4d1c7b2ce13c5751b76bb2f7 SHA512 a32623a65eba761ca4d10e5db817dd3253310d5b00babd6f2a54ff671296fde25802d35adbb9dc6c221752b1ad41bc5b210d40ec6f6f3dfac2835b58bda1160d WHIRLPOOL c7b633774af24ca143d7f991e55ce4f262274ca4912073db9e6d9b48be2f0420d3f621063018fa81f27daacf8ae8407dd8224b899b244a24c011da84b4539d74
304 changes: 304 additions & 0 deletions sys-cluster/neutron/neutron-7.0.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,304 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

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="https://tarballs.openstack.org/${PN}/${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="compute-only dhcp doc ipv6 l3 metadata openvswitch linuxbridge server test sqlite mysql postgres"
REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
|| ( openvswitch linuxbridge ) )"

CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]"
DEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
${CDEPEND}
app-admin/sudo
test? (
${RDEPEND}
>=dev-python/cliff-1.14.0[${PYTHON_USEDEP}]
<=dev-python/cliff-1.15.0[${PYTHON_USEDEP}]
>=dev-python/cliff-1.14.0[${PYTHON_USEDEP}]
>=dev-python/coverage-3.6[${PYTHON_USEDEP}]
<=dev-python/coverage-4.0.3[${PYTHON_USEDEP}]
>=dev-python/fixtures-1.3.1[${PYTHON_USEDEP}]
<=dev-python/fixtures-1.4.0-r9999[${PYTHON_USEDEP}]
>=dev-python/mock-1.2[${PYTHON_USEDEP}]
<=dev-python/mock-1.3.0[${PYTHON_USEDEP}]
>=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
<=dev-python/subunit-1.2.0[${PYTHON_USEDEP}]
>=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}]
<=dev-python/requests-mock-0.7.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.5.0[${PYTHON_USEDEP}]
<=dev-python/oslo-sphinx-4.1.0[${PYTHON_USEDEP}]
>=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
<=dev-python/testrepository-0.0.20[${PYTHON_USEDEP}]
>=dev-python/testtools-1.4.0[${PYTHON_USEDEP}]
<=dev-python/testtools-1.8.1[${PYTHON_USEDEP}]
>=dev-python/testresources-0.2.4[${PYTHON_USEDEP}]
<=dev-python/testresources-1.0.0-r9999[${PYTHON_USEDEP}]
>=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
<=dev-python/testscenarios-0.5[${PYTHON_USEDEP}]
>=dev-python/webtest-2.0[${PYTHON_USEDEP}]
<=dev-python/webtest-2.0.20[${PYTHON_USEDEP}]
>=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}]
<=dev-python/oslotest-2.0.0[${PYTHON_USEDEP}]
>=dev-python/os-testr-0.1.0[${PYTHON_USEDEP}]
<=dev-python/os-testr-0.6.0[${PYTHON_USEDEP}]
>=dev-python/tempest-lib-0.8.0[${PYTHON_USEDEP}]
<=dev-python/tempest-lib-0.11.0[${PYTHON_USEDEP}]
>=dev-python/ddt-0.7.0[${PYTHON_USEDEP}]
<=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
~dev-python/pylint-1.4.4[${PYTHON_USEDEP}]
>=dev-python/reno-0.1.1[${PYTHON_USEDEP}]
)"

RDEPEND="
<=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
>=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
<=dev-python/pastedeploy-1.5.2[${PYTHON_USEDEP}]
>=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
!~dev-python/routes-2.0[${PYTHON_USEDEP}]
!~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')]
<=dev-python/routes-2.2[${PYTHON_USEDEP}]
>=dev-python/debtcollector-0.3.0[${PYTHON_USEDEP}]
<=dev-python/debtcollector-1.1.0[${PYTHON_USEDEP}]
~dev-python/eventlet-0.17.4[${PYTHON_USEDEP}]
>=dev-python/pecan-1.0.0[${PYTHON_USEDEP}]
<=dev-python/pecan-1.0.3[${PYTHON_USEDEP}]
>=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
<=dev-python/greenlet-0.4.9[${PYTHON_USEDEP}]
>=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
<=dev-python/httplib2-0.9.2[${PYTHON_USEDEP}]
>=dev-python/requests-2.5.2[${PYTHON_USEDEP}]
!~dev-python/requests-2.8.0[${PYTHON_USEDEP}]
!~dev-python/requests-2.9.0[${PYTHON_USEDEP}]
<=dev-python/requests-2.8.1[${PYTHON_USEDEP}]
>=dev-python/jinja-2.6[${PYTHON_USEDEP}]
<=dev-python/jinja-2.8[${PYTHON_USEDEP}]
>=dev-python/keystonemiddleware-2.0.0[${PYTHON_USEDEP}]
!=dev-python/keystonemiddleware-2.4.0[${PYTHON_USEDEP}]
<=dev-python/keystonemiddleware-4.0.0[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
!~dev-python/netaddr-0.7.16[${PYTHON_USEDEP}]
<=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/python-neutronclient-2.6.0[${PYTHON_USEDEP}]
<=dev-python/python-neutronclient-3.1.0[${PYTHON_USEDEP}]
>=dev-python/retrying-1.2.3[${PYTHON_USEDEP}]
!~dev-python/retrying-1.3.0[${PYTHON_USEDEP}]
<=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
>=dev-python/ryu-3.23.2[${PYTHON_USEDEP}]
<=dev-python/ryu-3.26[${PYTHON_USEDEP}]
compute-only? (
>=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}]
<dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
)
sqlite? (
>=dev-python/sqlalchemy-0.9.9[sqlite,${PYTHON_USEDEP}]
<dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
)
mysql? (
dev-python/mysql-python
>=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}]
<dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
)
postgres? (
dev-python/psycopg:2
>=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}]
<dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
)
>=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
<=dev-python/webob-1.5.1[${PYTHON_USEDEP}]
>=dev-python/python-keystoneclient-1.6.0[${PYTHON_USEDEP}]
!~dev-python/python-keystoneclient-1.8.0[${PYTHON_USEDEP}]
<=dev-python/python-keystoneclient-2.0.0-r9999[${PYTHON_USEDEP}]
>=dev-python/alembic-0.8.0[${PYTHON_USEDEP}]
<=dev-python/alembic-0.8.3[${PYTHON_USEDEP}]
>=dev-python/six-1.9.0[${PYTHON_USEDEP}]
<=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.5.0[${PYTHON_USEDEP}]
<=dev-python/stevedore-1.10.0[${PYTHON_USEDEP}]
>=dev-python/oslo-concurrency-2.3.0[${PYTHON_USEDEP}]
<=dev-python/oslo-concurrency-3.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-config-2.3.0[${PYTHON_USEDEP}]
<=dev-python/oslo-config-3.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}]
<=dev-python/oslo-context-1.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-db-2.4.1[${PYTHON_USEDEP}]
<=dev-python/oslo-db-4.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}]
<=dev-python/oslo-i18n-3.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-log-1.8.0[${PYTHON_USEDEP}]
<=dev-python/oslo-log-2.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-messaging-1.16.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-1.17.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-1.17.1[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.6.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.6.1[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.7.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.8.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.8.1[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-2.9.0[${PYTHON_USEDEP}]
!~dev-python/oslo-messaging-3.1.0[${PYTHON_USEDEP}]
<=dev-python/oslo-messaging-3.0.0[${PYTHON_USEDEP}]
>=dev-python/oslo-middleware-2.8.0[${PYTHON_USEDEP}]
!~dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}]
!~dev-python/oslo-middleware-3.1.0[${PYTHON_USEDEP}]
!~dev-python/oslo-middleware-3.2.0[${PYTHON_USEDEP}]
<=dev-python/oslo-middleware-3.3.0[${PYTHON_USEDEP}]
>=dev-python/oslo-policy-0.5.0[${PYTHON_USEDEP}]
<=dev-python/oslo-policy-1.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-rootwrap-2.0.0[${PYTHON_USEDEP}]
<=dev-python/oslo-rootwrap-3.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}]
<=dev-python/oslo-serialization-2.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-service-0.7.0[${PYTHON_USEDEP}]
<=dev-python/oslo-service-1.1.0[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-2.0.0[${PYTHON_USEDEP}]
!~dev-python/oslo-utils-2.6.0[${PYTHON_USEDEP}]
<=dev-python/oslo-utils-3.2.0[${PYTHON_USEDEP}]
>=dev-python/oslo-versionedobjects-0.9.0[${PYTHON_USEDEP}]
<=dev-python/oslo-versionedobjects-1.1.0[${PYTHON_USEDEP}]
>=dev-python/python-novaclient-2.28.1[${PYTHON_USEDEP}]
!~dev-python/python-novaclient-2.33.0[${PYTHON_USEDEP}]
<=dev-python/python-novaclient-2.35.0[${PYTHON_USEDEP}]
<=dev-python/pyudev-0.18[${PYTHON_USEDEP}]
sys-apps/iproute2
net-misc/bridge-utils
net-firewall/ipset
net-firewall/iptables
net-firewall/ebtables
openvswitch? ( <=net-misc/openvswitch-2.4.0 )
ipv6? ( net-misc/radvd )
dhcp? ( net-dns/dnsmasq[dhcp-tools] )"

PATCHES=(
)

pkg_setup() {
linux-info_pkg_setup
CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \
NF_NAT_IPV4 NF_NAT NF_CONNTRACK IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
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
}

pkg_config() {
fperms 0700 /var/log/neutron
fowners neutron:neutron /var/log neutron
}

src_prepare() {
sed -i '/^hacking/d' test-requirements.txt || die
# it's /bin/ip not /sbin/ip
sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
distutils-r1_python_prepare_all
}

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
# 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.liberty" "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"

insopts -m 0644
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
}

pkg_postinst() {
elog
elog "neutron-server's conf.d file may need updating to include additional ini files"
elog "We currently assume the ml2 plugin will be used but do not make assumptions"
elog "on if you will use openvswitch or linuxbridge (or something else)"
elog
elog "Other conf.d files may need updating too, but should be good for the default use case"
elog
}

0 comments on commit 50659ec

Please sign in to comment.