From 7c2f87d5fb4057d8d06ac2bc5b631e7a61a0489c Mon Sep 17 00:00:00 2001 From: Matthew Thode Date: Fri, 23 Feb 2018 23:51:09 -0600 Subject: [PATCH] sys-cluster/neutron: QUEENS Package-Manager: Portage-2.3.19, Repoman-2.3.6 --- sys-cluster/neutron/Manifest | 2 + sys-cluster/neutron/metadata.xml | 3 +- sys-cluster/neutron/neutron-11.0.2.ebuild | 4 +- .../neutron/neutron-2017.2.9999.ebuild | 4 +- .../neutron/neutron-2018.1.9999.ebuild | 256 ++++++++++++++++++ 5 files changed, 264 insertions(+), 5 deletions(-) create mode 100644 sys-cluster/neutron/neutron-2018.1.9999.ebuild diff --git a/sys-cluster/neutron/Manifest b/sys-cluster/neutron/Manifest index 816c282aab80..a37a6ed3030c 100644 --- a/sys-cluster/neutron/Manifest +++ b/sys-cluster/neutron/Manifest @@ -1,5 +1,7 @@ DIST neutron-11.0.2.tar.gz 10481255 BLAKE2B 3e2ca3e7e24f21d92823b3d2e44d3fabe17d40cac493797a960b7c20fd906f3bd8ca946ca0729f8e03079f6615e2094f9228a01c2fc1e79ab2cf63bd2a8a5b36 SHA512 ba86e6448d0ae6e95dd4caa41888ee3d4ceeb4353b655b20912871e05cc2440f7d54bef7b119e1cec98da8fe3b9f22966ca8ad05dc3a5931b66b776bef9240cf DIST neutron-configs-11.0.2.tar.gz 25030 BLAKE2B 6ca7507571983cdf576cb943bb2981623351c3de4220ccf990ba478147bcbaea06f4d5218ba6ad65c98f2a0c60c820be03429e8a22a624cf10339b80fcf17bbd SHA512 d82abfcfe5c911dc8a0689e23aaad810bb3aacaf64bd35439220f41390a71958e7cd34e60500580c24ea9e8b55a6fb0441ce4e5612fad9aba2e48d6f14d4d87a DIST neutron-configs-2017.2.9999.tar.gz 25030 BLAKE2B 6ca7507571983cdf576cb943bb2981623351c3de4220ccf990ba478147bcbaea06f4d5218ba6ad65c98f2a0c60c820be03429e8a22a624cf10339b80fcf17bbd SHA512 d82abfcfe5c911dc8a0689e23aaad810bb3aacaf64bd35439220f41390a71958e7cd34e60500580c24ea9e8b55a6fb0441ce4e5612fad9aba2e48d6f14d4d87a +DIST neutron-configs-2018.1.9999.tar.gz 26252 BLAKE2B c1493e313dc590445e60dcf8df9fc2b89a8e96e57ce072577b3a73fe247218a9ef9805ca9c61b79d2bd4c7aa088933762389258c1184e4572975db03c1674869 SHA512 05c8774d142a59da3e294f2351f1cc89f8cd275aedf3771c11d8176305ceec472980673f0ed07b3f4219a8ff4b4bb6e79f836a1f11ddd8e003d1ccd49051e5ac DIST neutron-ml2-plugins-11.0.2.tar.gz 6885 BLAKE2B c953d7222932d09c545dcfe01923f77cbc9e76157f78e5cb85a8e3bb03c8f3b4ab2bcc7eb2fc213578f71cf70543c4182c98bc6e5947fc1a0cbffe3d845bce20 SHA512 e5acaed2fc370e99c9c8b54040cdc994cd35bfbd3d74682d3c03c381568c89b316a6a87356aa6ae538a19c2ae83b6b3c512095afcc778525c2885b9b6bef04bd DIST neutron-ml2-plugins-2017.2.9999.tar.gz 6885 BLAKE2B c953d7222932d09c545dcfe01923f77cbc9e76157f78e5cb85a8e3bb03c8f3b4ab2bcc7eb2fc213578f71cf70543c4182c98bc6e5947fc1a0cbffe3d845bce20 SHA512 e5acaed2fc370e99c9c8b54040cdc994cd35bfbd3d74682d3c03c381568c89b316a6a87356aa6ae538a19c2ae83b6b3c512095afcc778525c2885b9b6bef04bd +DIST neutron-ml2-plugins-2018.1.9999.tar.gz 7060 BLAKE2B 7690218233971ab50623900e01fe4311e2b599661838a232616cdc4b56bff1a7fd6e6c3b7fe77f79c78c024eb571525b0e21a306c18fd884bd0dfdd6b814f2b4 SHA512 259db5513c014c6dda97432834f90744dec3732292a2de71d488e537f0f660959ea09890cf3dd3d22206295b259dad83440a60ee28e84a5b125547f869e0016b diff --git a/sys-cluster/neutron/metadata.xml b/sys-cluster/neutron/metadata.xml index b0230af6ee3a..d1534a7ad347 100644 --- a/sys-cluster/neutron/metadata.xml +++ b/sys-cluster/neutron/metadata.xml @@ -19,7 +19,8 @@ Only install things needed on compute hosts - Installs the initscripts for the neutron dhcp service + Installs the initscripts for the neutron dhcp service + haproxy backend support Installs the initscripts for the neutron l3 agent service Installs the initscripts for the neutron metadata agent service Installs the initscripts for the neutron openvswitch agent service diff --git a/sys-cluster/neutron/neutron-11.0.2.ebuild b/sys-cluster/neutron/neutron-11.0.2.ebuild index cb3c6335654c..1ba919af1291 100644 --- a/sys-cluster/neutron/neutron-11.0.2.ebuild +++ b/sys-cluster/neutron/neutron-11.0.2.ebuild @@ -16,7 +16,7 @@ SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/pike/conf LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64 ~arm64 x86" -IUSE="compute-only dhcp ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres" +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres" REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) ) compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server || ( openvswitch linuxbridge ) )" @@ -134,7 +134,7 @@ RDEPEND=" net-firewall/iptables net-firewall/ebtables net-firewall/conntrack-tools - net-proxy/haproxy + haproxy? ( net-proxy/haproxy ) openvswitch? ( <=net-misc/openvswitch-2.8.9999 ) ipv6? ( net-misc/radvd diff --git a/sys-cluster/neutron/neutron-2017.2.9999.ebuild b/sys-cluster/neutron/neutron-2017.2.9999.ebuild index 61871bc47a58..1c8d9ba8c3aa 100644 --- a/sys-cluster/neutron/neutron-2017.2.9999.ebuild +++ b/sys-cluster/neutron/neutron-2017.2.9999.ebuild @@ -17,7 +17,7 @@ EGIT_BRANCH="stable/pike" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="" -IUSE="compute-only dhcp ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres" +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres" REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) ) compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server || ( openvswitch linuxbridge ) )" @@ -135,7 +135,7 @@ RDEPEND=" net-firewall/iptables net-firewall/ebtables net-firewall/conntrack-tools - net-proxy/haproxy + haproxy? ( net-proxy/haproxy ) openvswitch? ( <=net-misc/openvswitch-2.8.9999 ) ipv6? ( net-misc/radvd diff --git a/sys-cluster/neutron/neutron-2018.1.9999.ebuild b/sys-cluster/neutron/neutron-2018.1.9999.ebuild new file mode 100644 index 000000000000..ab3477efa1e6 --- /dev/null +++ b/sys-cluster/neutron/neutron-2018.1.9999.ebuild @@ -0,0 +1,256 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) +# still no 34 :( https://bugs.launchpad.net/neutron/+bug/1630439 + +inherit distutils-r1 linux-info user + +DESCRIPTION="A virtual network service for Openstack" +HOMEPAGE="https://launchpad.net/neutron" +if [[ ${PV} == *9999 ]];then + inherit git-r3 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/queens/configs.tar.gz -> neutron-configs-${PV}.tar.gz + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/queens/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz" + EGIT_REPO_URI="https://github.com/openstack/neutron.git" + EGIT_BRANCH="stable/queens" +else + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/queens/configs.tar.gz -> neutron-configs-${PV}.tar.gz + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/queens/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz + https://tarballs.openstack.org/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server 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-2.0.0[${PYTHON_USEDEP}] + !~dev-python/pbr-2.1.0" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} + app-admin/sudo" + +RDEPEND=" + ${CDEPEND} + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}] + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}] + >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}] + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}] + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}] + =dev-python/pecan-1.0.0[${PYTHON_USEDEP}] + !~dev-python/pecan-1.0.2[${PYTHON_USEDEP}] + !~dev-python/pecan-1.0.3[${PYTHON_USEDEP}] + !~dev-python/pecan-1.0.4[${PYTHON_USEDEP}] + !~dev-python/pecan-1.2.0[${PYTHON_USEDEP}] + >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}] + >=dev-python/jinja-2.8[${PYTHON_USEDEP}] + !~dev-python/jinja-2.9.0[${PYTHON_USEDEP}] + !~dev-python/jinja-2.9.1[${PYTHON_USEDEP}] + !~dev-python/jinja-2.9.2[${PYTHON_USEDEP}] + !~dev-python/jinja-2.9.3[${PYTHON_USEDEP}] + !~dev-python/jinja-2.9.4[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}] + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}] + >=dev-python/neutron-lib-1.13.0[${PYTHON_USEDEP}] + >=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}] + >=dev-python/tenacity-3.2.1[${PYTHON_USEDEP}] + >=dev-python/ryu-4.14[${PYTHON_USEDEP}] + compute-only? ( + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}] + ) + sqlite? ( + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.8[sqlite,${PYTHON_USEDEP}] + ) + mysql? ( + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}] + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}] + ) + postgres? ( + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}] + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}] + ) + >=dev-python/webob-1.7.1[${PYTHON_USEDEP}] + >=dev-python/keystoneauth-3.3.0[${PYTHON_USEDEP}] + >=dev-python/alembic-0.8.10[${PYTHON_USEDEP}] + >=dev-python/six-1.10.0[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.20.1[${PYTHON_USEDEP}] + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}] + >=dev-python/oslo-concurrency-3.25.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-5.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}] + >=dev-python/oslo-db-4.27.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}] + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}] + >=dev-python/oslo-messaging-5.29.0[${PYTHON_USEDEP}] + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}] + >=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}] + >=dev-python/oslo-privsep-1.23.0[${PYTHON_USEDEP}] + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}] + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}] + >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}] + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}] + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}] + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}] + >=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}] + >=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}] + >=dev-python/ovs-2.8.0[${PYTHON_USEDEP}] + >=dev-python/ovsdbapp-0.8.0[${PYTHON_USEDEP}] + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}] + >=dev-python/pyroute2-0.4.21[${PYTHON_USEDEP}] + >=dev-python/weakrefmethod-1.0.2[$(python_gen_usedep 'python2_7')] + >=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}] + >=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}] + >=dev-python/os-xenapi-0.3.1[${PYTHON_USEDEP}] + dev-python/pyudev[${PYTHON_USEDEP}] + sys-apps/iproute2 + net-misc/iputils[arping] + net-misc/bridge-utils + net-firewall/ipset + net-firewall/iptables + net-firewall/ebtables + net-firewall/conntrack-tools + haproxy? ( net-proxy/haproxy ) + openvswitch? ( <=net-misc/openvswitch-2.8.9999 ) + ipv6? ( + net-misc/radvd + >=net-misc/dibbler-1.0.1 + ) + dhcp? ( net-dns/dnsmasq[dhcp-tools] )" + +#PATCHES=( +#) + +pkg_pretend() { + 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 +} + +pkg_setup() { + 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_install_all() { + distutils-r1_python_install_all + 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 + 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" + + #add sudoers definitions for user neutron + insinto /etc/sudoers.d/ + insopts -m 0440 -o root -g root + newins "${FILESDIR}/neutron.sudoersd" neutron + + # add generated configs + cd "${D}/etc/neutron" || die + unpack "neutron-configs-${PV}.tar.gz" + cd "${D}/etc/neutron/plugins/ml2" || die + unpack "neutron-ml2-plugins-${PV}.tar.gz" + + # correcting perms + fowners neutron:neutron -R "/etc/neutron" + fperms o-rwx -R "/etc/neutron/" + + #remove superfluous stuff + rm -R "${D}/usr/etc/" +} + +python_install() { + distutils-r1_python_install + # copy migration conf file (not coppied on install via setup.py script) + insopts -m 0644 + insinto "/$(python_get_sitedir)/neutron/db/migration/alembic_migrations/" + doins -r "neutron/db/migration/alembic_migrations/versions" +} + +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 +} -- 2.26.2