Gentoo Archives: gentoo-commits

From: Matthew Thode <prometheanfire@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/neutron/
Date: Thu, 28 Jan 2021 18:19:35
Message-Id: 1611857967.89c07eb259fccea1b0bdc3ad97babf99c87748d7.prometheanfire@gentoo
1 commit: 89c07eb259fccea1b0bdc3ad97babf99c87748d7
2 Author: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jan 28 18:18:58 2021 +0000
4 Commit: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
5 CommitDate: Thu Jan 28 18:19:27 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89c07eb2
7
8 sys-cluster/neutron: 16.3.0 and 17.1.0 bump
9
10 Package-Manager: Portage-3.0.13, Repoman-3.0.2
11 Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>
12
13 sys-cluster/neutron/Manifest | 6 +
14 sys-cluster/neutron/neutron-16.3.0.ebuild | 230 ++++++++++++++++++++++++++++++
15 sys-cluster/neutron/neutron-17.1.0.ebuild | 227 +++++++++++++++++++++++++++++
16 3 files changed, 463 insertions(+)
17
18 diff --git a/sys-cluster/neutron/Manifest b/sys-cluster/neutron/Manifest
19 index 4300efd2056..d8b09bdae5e 100644
20 --- a/sys-cluster/neutron/Manifest
21 +++ b/sys-cluster/neutron/Manifest
22 @@ -1,10 +1,16 @@
23 DIST neutron-16.2.0.tar.gz 12771467 BLAKE2B d3dbfbffcf7321a195d3cadf0bd4864763f6a1c6c3022ec32d20ffeb1770d522446c78e2bad9c7dc281fdb67b445b3ecbf8908741dd7a42ebc1efde56af642bb SHA512 d5c39296c925af8b69e23a3faf75e99e6d4d2e5b1daf0da7883a75bcce1e41990392aa90499510c7dee552178cb908c1cd80add48ac894015255842d15711641
24 +DIST neutron-16.3.0.tar.gz 12866714 BLAKE2B 67436c96f52a6d1a60d8af13ce7d8d7b375def861ca83fddca0986649c7f2df6bae41763459feb2bba7e6cd16fab0c0c7ad970582be6d8798350efab11216a3d SHA512 f1901b672925248e08a239fdaf4c691cfcae90d53858ab0eed46919464a2dad8d27e89c46fb47563744e2a569995f5fbc540c8b69eef0273d6a605ea13ef5051
25 DIST neutron-17.0.0.tar.gz 12801363 BLAKE2B 7297e5832e19f6543bbfdcaed7f4240ed54bb976dc40f0bc90ffbc00e8d5b97b4f194fd9c451f08f7f6c431c66f99562f0fce63456ff66418aad73c3effb3bac SHA512 5a67896376110cdae407c4ba3b758b1b12883c1355e30e927e1c705c6ad3df5126c1555870f7e9b130b35663c5f748f33078c588b3c4b94750f47b5db58b0662
26 +DIST neutron-17.1.0.tar.gz 12910659 BLAKE2B 30634389e9caf77e7bc36b61f26c8ff24013171f1dc0cef52e2ebb55363b526bb6146a578e21c027ef6902f8881985c5a06d4d0b98992e13720a8118cd876b05 SHA512 62bd2691878c93f9c51adfecf7f7aa6fbb51485a259a419e9797738626fb2527c167ea568cd54f5fdc60a5210c53fafb2b754817123742b27150ed1cfbffca2b
27 DIST neutron-configs-16.2.0.tar.gz 24350 BLAKE2B 8f6eeae762fa297651f07667387beac6677cfa9a6c0d13d3fc90ac09753022fd284fc56c53557ab83cda99ab4fe03acc2d2049e4bb62f9496b310b1cd6f42099 SHA512 b087b23a1aa19678d4b9a76ae82243d03fe82706712e8c37b759a8521062f79e83307769b4ba639f67aa402f8b03cdf12d3274d821c3f8ecfd17ded9f4f2c881
28 +DIST neutron-configs-16.3.0.tar.gz 24350 BLAKE2B 8f6eeae762fa297651f07667387beac6677cfa9a6c0d13d3fc90ac09753022fd284fc56c53557ab83cda99ab4fe03acc2d2049e4bb62f9496b310b1cd6f42099 SHA512 b087b23a1aa19678d4b9a76ae82243d03fe82706712e8c37b759a8521062f79e83307769b4ba639f67aa402f8b03cdf12d3274d821c3f8ecfd17ded9f4f2c881
29 DIST neutron-configs-17.0.0.tar.gz 30314 BLAKE2B 885d00259fde0200f6a52d91b18e884012c04cb06e5e4ba6c72b77fbb0a8df30d50efd6db16faa009328eac9b7c5fb31854feb81595a542b4ac5d8172c8056b6 SHA512 cf85a563c417e1fb01f7d329c7021c20782fe67f64c5dfd542deed07e09d6a717e472976df8f1f4c3bb4a6a10e8d8b8300f18e1a3759358b3db12f77dad7bd5b
30 +DIST neutron-configs-17.1.0.tar.gz 30314 BLAKE2B 885d00259fde0200f6a52d91b18e884012c04cb06e5e4ba6c72b77fbb0a8df30d50efd6db16faa009328eac9b7c5fb31854feb81595a542b4ac5d8172c8056b6 SHA512 cf85a563c417e1fb01f7d329c7021c20782fe67f64c5dfd542deed07e09d6a717e472976df8f1f4c3bb4a6a10e8d8b8300f18e1a3759358b3db12f77dad7bd5b
31 DIST neutron-configs-2020.1.9999.tar.gz 24350 BLAKE2B 8f6eeae762fa297651f07667387beac6677cfa9a6c0d13d3fc90ac09753022fd284fc56c53557ab83cda99ab4fe03acc2d2049e4bb62f9496b310b1cd6f42099 SHA512 b087b23a1aa19678d4b9a76ae82243d03fe82706712e8c37b759a8521062f79e83307769b4ba639f67aa402f8b03cdf12d3274d821c3f8ecfd17ded9f4f2c881
32 DIST neutron-configs-2020.2.9999.tar.gz 30314 BLAKE2B 885d00259fde0200f6a52d91b18e884012c04cb06e5e4ba6c72b77fbb0a8df30d50efd6db16faa009328eac9b7c5fb31854feb81595a542b4ac5d8172c8056b6 SHA512 cf85a563c417e1fb01f7d329c7021c20782fe67f64c5dfd542deed07e09d6a717e472976df8f1f4c3bb4a6a10e8d8b8300f18e1a3759358b3db12f77dad7bd5b
33 DIST neutron-ml2-plugins-16.2.0.tar.gz 8887 BLAKE2B 5887027ce4585a523bb3379c002acdde1faa9ed24d0c83c931f2a387b56e8baf8352ae9f82ba46c85a6a3e5b1d68792da1e1ca1fae9b6dde525e6f6c67849ac4 SHA512 4ae70fe3e386932e0327333d29dc526b5f0f0f800ac14d17faa4c1e3fc2dd8524760b84bbb4767e73e70647984aa50702e5e47dc42deb47f66c47c5e3e965111
34 +DIST neutron-ml2-plugins-16.3.0.tar.gz 8887 BLAKE2B 5887027ce4585a523bb3379c002acdde1faa9ed24d0c83c931f2a387b56e8baf8352ae9f82ba46c85a6a3e5b1d68792da1e1ca1fae9b6dde525e6f6c67849ac4 SHA512 4ae70fe3e386932e0327333d29dc526b5f0f0f800ac14d17faa4c1e3fc2dd8524760b84bbb4767e73e70647984aa50702e5e47dc42deb47f66c47c5e3e965111
35 DIST neutron-ml2-plugins-17.0.0.tar.gz 9011 BLAKE2B d9f8cb4d26699ca44a4cf4cd422bd88b9bb5a2138a80fec469021491d87b158502801c2ce79316f52a900877f7706dc93c2a5a5a33c868918effeaa6b65a7931 SHA512 a225310f0f54991a079d515512189b3c08de22c5b13d58960ef24498401fc54b0878ed879d895e696b789e703a0bb3f4a184eccbbfb9ac9fe9447086cb952b37
36 +DIST neutron-ml2-plugins-17.1.0.tar.gz 9011 BLAKE2B d9f8cb4d26699ca44a4cf4cd422bd88b9bb5a2138a80fec469021491d87b158502801c2ce79316f52a900877f7706dc93c2a5a5a33c868918effeaa6b65a7931 SHA512 a225310f0f54991a079d515512189b3c08de22c5b13d58960ef24498401fc54b0878ed879d895e696b789e703a0bb3f4a184eccbbfb9ac9fe9447086cb952b37
37 DIST neutron-ml2-plugins-2020.1.9999.tar.gz 8887 BLAKE2B 5887027ce4585a523bb3379c002acdde1faa9ed24d0c83c931f2a387b56e8baf8352ae9f82ba46c85a6a3e5b1d68792da1e1ca1fae9b6dde525e6f6c67849ac4 SHA512 4ae70fe3e386932e0327333d29dc526b5f0f0f800ac14d17faa4c1e3fc2dd8524760b84bbb4767e73e70647984aa50702e5e47dc42deb47f66c47c5e3e965111
38 DIST neutron-ml2-plugins-2020.2.9999.tar.gz 9011 BLAKE2B d9f8cb4d26699ca44a4cf4cd422bd88b9bb5a2138a80fec469021491d87b158502801c2ce79316f52a900877f7706dc93c2a5a5a33c868918effeaa6b65a7931 SHA512 a225310f0f54991a079d515512189b3c08de22c5b13d58960ef24498401fc54b0878ed879d895e696b789e703a0bb3f4a184eccbbfb9ac9fe9447086cb952b37
39
40 diff --git a/sys-cluster/neutron/neutron-16.3.0.ebuild b/sys-cluster/neutron/neutron-16.3.0.ebuild
41 new file mode 100644
42 index 00000000000..1ec4c399736
43 --- /dev/null
44 +++ b/sys-cluster/neutron/neutron-16.3.0.ebuild
45 @@ -0,0 +1,230 @@
46 +# Copyright 1999-2021 Gentoo Authors
47 +# Distributed under the terms of the GNU General Public License v2
48 +
49 +EAPI=7
50 +PYTHON_COMPAT=( python3_7 )
51 +DISTUTILS_USE_SETUPTOOLS=rdepend
52 +
53 +inherit distutils-r1 linux-info
54 +
55 +DESCRIPTION="A virtual network service for Openstack"
56 +HOMEPAGE="https://launchpad.net/neutron"
57 +if [[ ${PV} == *9999 ]];then
58 + inherit git-r3
59 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/ussuri/configs.tar.gz -> neutron-configs-${PV}.tar.gz
60 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/ussuri/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
61 + EGIT_REPO_URI="https://github.com/openstack/neutron.git"
62 + EGIT_BRANCH="stable/ussuri"
63 +else
64 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/ussuri/configs.tar.gz -> neutron-configs-${PV}.tar.gz
65 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/ussuri/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
66 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
67 + KEYWORDS="~amd64 ~arm64 ~x86"
68 +fi
69 +
70 +LICENSE="Apache-2.0"
71 +SLOT="0"
72 +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite +mysql postgres"
73 +REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
74 + compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
75 + || ( openvswitch linuxbridge ) )"
76 +
77 +CDEPEND=">=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]"
78 +DEPEND="${CDEPEND}
79 + app-admin/sudo"
80 +
81 +RDEPEND="
82 + ${CDEPEND}
83 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
84 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
85 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
86 + >=dev-python/debtcollector-1.19.0[${PYTHON_USEDEP}]
87 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
88 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
89 + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
90 + >=dev-python/pecan-1.3.2[${PYTHON_USEDEP}]
91 + >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
92 + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
93 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
94 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
95 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
96 + >=dev-python/neutron-lib-2.2.0[${PYTHON_USEDEP}]
97 + >=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
98 + >=dev-python/tenacity-4.4.0[${PYTHON_USEDEP}]
99 + compute-only? (
100 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
101 + )
102 + sqlite? (
103 + >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
104 + )
105 + mysql? (
106 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
107 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
108 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
109 + )
110 + postgres? (
111 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
112 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
113 + )
114 + >=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
115 + >=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
116 + >=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
117 + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
118 + >=dev-python/stevedore-1.20.1[${PYTHON_USEDEP}]
119 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
120 + >=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
121 + >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
122 + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
123 + >=dev-python/oslo-db-4.37.0[${PYTHON_USEDEP}]
124 + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
125 + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
126 + >=dev-python/oslo-messaging-5.29.0[${PYTHON_USEDEP}]
127 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
128 + >=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}]
129 + >=dev-python/oslo-privsep-1.32.0[${PYTHON_USEDEP}]
130 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
131 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
132 + >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
133 + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
134 + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
135 + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
136 + >=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
137 + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
138 + >=dev-python/oslo-versionedobjects-1.35.1[${PYTHON_USEDEP}]
139 + >=dev-python/osprofiler-2.3.0[${PYTHON_USEDEP}]
140 + >=dev-python/os-ken-0.3.0[${PYTHON_USEDEP}]
141 + >=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
142 + >=dev-python/ovsdbapp-1.0.0[${PYTHON_USEDEP}]
143 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
144 + >=dev-python/pyroute2-0.5.7[${PYTHON_USEDEP}]
145 + >=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
146 + >=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
147 + >=dev-python/openstacksdk-0.31.2[${PYTHON_USEDEP}]
148 + >=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
149 + >=dev-python/os-xenapi-0.3.1[${PYTHON_USEDEP}]
150 + >=dev-python/os-vif-1.15.1[${PYTHON_USEDEP}]
151 + >=dev-python/futurist-1.2.0[${PYTHON_USEDEP}]
152 + >=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
153 + dev-python/pyudev[${PYTHON_USEDEP}]
154 + sys-apps/iproute2
155 + net-misc/iputils[arping]
156 + net-misc/bridge-utils
157 + net-firewall/ipset
158 + net-firewall/iptables
159 + net-firewall/ebtables
160 + net-firewall/conntrack-tools
161 + haproxy? ( net-proxy/haproxy )
162 + openvswitch? ( net-misc/openvswitch )
163 + ipv6? (
164 + net-misc/radvd
165 + >=net-misc/dibbler-1.0.1
166 + )
167 + dhcp? ( net-dns/dnsmasq[dhcp-tools] )
168 + acct-group/neutron
169 + acct-user/neutron"
170 +
171 +#PATCHES=(
172 +#)
173 +
174 +pkg_pretend() {
175 + linux-info_pkg_setup
176 + CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
177 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_DEFRAG_IPV4 NF_NAT NF_CONNTRACK \
178 + IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
179 + if linux_config_exists; then
180 + for module in ${CONFIG_CHECK_MODULES}; do
181 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
182 + done
183 + fi
184 +}
185 +
186 +pkg_config() {
187 + fperms 0700 /var/log/neutron
188 + fowners neutron:neutron /var/log neutron
189 +}
190 +
191 +src_prepare() {
192 + sed -i '/^hacking/d' test-requirements.txt || die
193 + # it's /bin/ip not /sbin/ip
194 + sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
195 + distutils-r1_python_prepare_all
196 +}
197 +
198 +python_install_all() {
199 + distutils-r1_python_install_all
200 + if use server; then
201 + newinitd "${FILESDIR}/neutron.initd" "neutron-server"
202 + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
203 + dosym ../../plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
204 + fi
205 + if use dhcp; then
206 + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
207 + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
208 + fi
209 + if use l3; then
210 + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
211 + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
212 + fi
213 + if use metadata; then
214 + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
215 + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
216 + fi
217 + if use openvswitch; then
218 + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
219 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
220 + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
221 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
222 + fi
223 + if use linuxbridge; then
224 + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
225 + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
226 + fi
227 + diropts -m 755 -o neutron -g neutron
228 + dodir /var/log/neutron /var/lib/neutron
229 + keepdir /etc/neutron
230 + insinto /etc/neutron
231 + insopts -m 0640 -o neutron -g neutron
232 +
233 + doins etc/*
234 + # stupid renames
235 + insinto /etc/neutron
236 + doins -r "etc/neutron/plugins"
237 + insopts -m 0640 -o root -g root
238 + doins "etc/rootwrap.conf"
239 + doins -r "etc/neutron/rootwrap.d"
240 +
241 + #add sudoers definitions for user neutron
242 + insinto /etc/sudoers.d/
243 + insopts -m 0440 -o root -g root
244 + newins "${FILESDIR}/neutron.sudoersd" neutron
245 +
246 + # add generated configs
247 + cd "${D}/etc/neutron" || die
248 + unpack "neutron-configs-${PV}.tar.gz"
249 + cd "${D}/etc/neutron/plugins/ml2" || die
250 + unpack "neutron-ml2-plugins-${PV}.tar.gz"
251 +
252 + # correcting perms
253 + fowners neutron:neutron -R "/etc/neutron"
254 + fperms o-rwx -R "/etc/neutron/"
255 +
256 + #remove superfluous stuff
257 + rm -R "${D}/usr/etc/"
258 +}
259 +
260 +python_install() {
261 + distutils-r1_python_install
262 + # copy migration conf file (not coppied on install via setup.py script)
263 + python_moduleinto neutron/db/migration/alembic_migrations
264 + python_domodule "neutron/db/migration/alembic_migrations/versions"
265 +}
266 +
267 +pkg_postinst() {
268 + elog
269 + elog "neutron-server's conf.d file may need updating to include additional ini files"
270 + elog "We currently assume the ml2 plugin will be used but do not make assumptions"
271 + elog "on if you will use openvswitch or linuxbridge (or something else)"
272 + elog
273 + elog "Other conf.d files may need updating too, but should be good for the default use case"
274 + elog
275 +}
276
277 diff --git a/sys-cluster/neutron/neutron-17.1.0.ebuild b/sys-cluster/neutron/neutron-17.1.0.ebuild
278 new file mode 100644
279 index 00000000000..7ba8c9f5087
280 --- /dev/null
281 +++ b/sys-cluster/neutron/neutron-17.1.0.ebuild
282 @@ -0,0 +1,227 @@
283 +# Copyright 1999-2021 Gentoo Authors
284 +# Distributed under the terms of the GNU General Public License v2
285 +
286 +EAPI=7
287 +PYTHON_COMPAT=( python3_7 python3_8 )
288 +DISTUTILS_USE_SETUPTOOLS=rdepend
289 +
290 +inherit distutils-r1 linux-info
291 +
292 +DESCRIPTION="A virtual network service for Openstack"
293 +HOMEPAGE="https://launchpad.net/neutron"
294 +if [[ ${PV} == *9999 ]];then
295 + inherit git-r3
296 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
297 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
298 + EGIT_REPO_URI="https://github.com/openstack/neutron.git"
299 + EGIT_BRANCH="stable/victoria"
300 +else
301 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/configs.tar.gz -> neutron-configs-${PV}.tar.gz
302 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/victoria/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
303 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
304 + KEYWORDS="~amd64 ~arm64 ~x86"
305 +fi
306 +
307 +LICENSE="Apache-2.0"
308 +SLOT="0"
309 +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite +mysql postgres"
310 +REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
311 + compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
312 + || ( openvswitch linuxbridge ) )"
313 +
314 +DEPEND="
315 + >=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]
316 + app-admin/sudo
317 +"
318 +RDEPEND="
319 + >=dev-python/pbr-4.0.0[${PYTHON_USEDEP}]
320 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
321 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
322 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
323 + >=dev-python/debtcollector-1.19.0[${PYTHON_USEDEP}]
324 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
325 + >=dev-python/eventlet-0.21.0[${PYTHON_USEDEP}]
326 + >=dev-python/pecan-1.3.2[${PYTHON_USEDEP}]
327 + >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
328 + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
329 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
330 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
331 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
332 + >=dev-python/neutron-lib-2.6.0[${PYTHON_USEDEP}]
333 + >=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
334 + >=dev-python/tenacity-6.0.0[${PYTHON_USEDEP}]
335 + compute-only? (
336 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
337 + )
338 + sqlite? (
339 + >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
340 + )
341 + mysql? (
342 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
343 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
344 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
345 + )
346 + postgres? (
347 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
348 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
349 + )
350 + >=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
351 + >=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
352 + >=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
353 + >=dev-python/stevedore-1.20.1[${PYTHON_USEDEP}]
354 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
355 + >=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
356 + >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
357 + >=dev-python/oslo-context-2.20.0[${PYTHON_USEDEP}]
358 + >=dev-python/oslo-db-4.44.0[${PYTHON_USEDEP}]
359 + >=dev-python/oslo-i18n-3.20.0[${PYTHON_USEDEP}]
360 + >=dev-python/oslo-log-4.2.1[${PYTHON_USEDEP}]
361 + >=dev-python/oslo-messaging-7.0.0[${PYTHON_USEDEP}]
362 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
363 + >=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}]
364 + >=dev-python/oslo-privsep-2.3.0[${PYTHON_USEDEP}]
365 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
366 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
367 + >=dev-python/oslo-serialization-2.25.0[${PYTHON_USEDEP}]
368 + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
369 + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
370 + >=dev-python/oslo-upgradecheck-0.1.0[${PYTHON_USEDEP}]
371 + >=dev-python/oslo-utils-4.4.0[${PYTHON_USEDEP}]
372 + >=dev-python/oslo-versionedobjects-1.35.1[${PYTHON_USEDEP}]
373 + >=dev-python/osprofiler-2.3.0[${PYTHON_USEDEP}]
374 + >=dev-python/os-ken-0.3.0[${PYTHON_USEDEP}]
375 + >=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
376 + >=dev-python/ovsdbapp-1.3.0[${PYTHON_USEDEP}]
377 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
378 + >=dev-python/pyroute2-0.5.13[${PYTHON_USEDEP}]
379 + >=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
380 + >=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
381 + >=dev-python/openstacksdk-0.31.2[${PYTHON_USEDEP}]
382 + >=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
383 + >=dev-python/os-xenapi-0.3.1[${PYTHON_USEDEP}]
384 + >=dev-python/os-vif-1.15.1[${PYTHON_USEDEP}]
385 + >=dev-python/futurist-1.2.0[${PYTHON_USEDEP}]
386 + >=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
387 + dev-python/pyudev[${PYTHON_USEDEP}]
388 + sys-apps/iproute2
389 + net-misc/iputils[arping]
390 + net-misc/bridge-utils
391 + net-firewall/ipset
392 + net-firewall/iptables
393 + net-firewall/ebtables
394 + net-firewall/conntrack-tools
395 + haproxy? ( net-proxy/haproxy )
396 + openvswitch? ( net-misc/openvswitch )
397 + ipv6? (
398 + net-misc/radvd
399 + >=net-misc/dibbler-1.0.1
400 + )
401 + dhcp? ( net-dns/dnsmasq[dhcp-tools] )
402 + acct-group/neutron
403 + acct-user/neutron"
404 +
405 +#PATCHES=(
406 +#)
407 +
408 +pkg_pretend() {
409 + linux-info_pkg_setup
410 + CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
411 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_DEFRAG_IPV4 NF_NAT NF_CONNTRACK \
412 + IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
413 + if linux_config_exists; then
414 + for module in ${CONFIG_CHECK_MODULES}; do
415 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
416 + done
417 + fi
418 +}
419 +
420 +pkg_config() {
421 + fperms 0700 /var/log/neutron
422 + fowners neutron:neutron /var/log neutron
423 +}
424 +
425 +src_prepare() {
426 + sed -i '/^hacking/d' test-requirements.txt || die
427 + # it's /bin/ip not /sbin/ip
428 + sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
429 + distutils-r1_python_prepare_all
430 +}
431 +
432 +python_install_all() {
433 + distutils-r1_python_install_all
434 + if use server; then
435 + newinitd "${FILESDIR}/neutron.initd" "neutron-server"
436 + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
437 + dosym ../../plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
438 + fi
439 + if use dhcp; then
440 + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
441 + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
442 + fi
443 + if use l3; then
444 + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
445 + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
446 + fi
447 + if use metadata; then
448 + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
449 + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
450 + fi
451 + if use openvswitch; then
452 + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
453 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
454 + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
455 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
456 + fi
457 + if use linuxbridge; then
458 + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
459 + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
460 + fi
461 + diropts -m 755 -o neutron -g neutron
462 + dodir /var/log/neutron /var/lib/neutron
463 + keepdir /etc/neutron
464 + insinto /etc/neutron
465 + insopts -m 0640 -o neutron -g neutron
466 +
467 + doins etc/*
468 + # stupid renames
469 + insinto /etc/neutron
470 + doins -r "etc/neutron/plugins"
471 + insopts -m 0640 -o root -g root
472 + doins "etc/rootwrap.conf"
473 + doins -r "etc/neutron/rootwrap.d"
474 +
475 + #add sudoers definitions for user neutron
476 + insinto /etc/sudoers.d/
477 + insopts -m 0440 -o root -g root
478 + newins "${FILESDIR}/neutron.sudoersd" neutron
479 +
480 + # add generated configs
481 + cd "${D}/etc/neutron" || die
482 + unpack "neutron-configs-${PV}.tar.gz"
483 + cd "${D}/etc/neutron/plugins/ml2" || die
484 + unpack "neutron-ml2-plugins-${PV}.tar.gz"
485 +
486 + # correcting perms
487 + fowners neutron:neutron -R "/etc/neutron"
488 + fperms o-rwx -R "/etc/neutron/"
489 +
490 + #remove superfluous stuff
491 + rm -R "${D}/usr/etc/"
492 +}
493 +
494 +python_install() {
495 + distutils-r1_python_install
496 + # copy migration conf file (not coppied on install via setup.py script)
497 + python_moduleinto neutron/db/migration/alembic_migrations
498 + python_domodule "neutron/db/migration/alembic_migrations/versions"
499 +}
500 +
501 +pkg_postinst() {
502 + elog
503 + elog "neutron-server's conf.d file may need updating to include additional ini files"
504 + elog "We currently assume the ml2 plugin will be used but do not make assumptions"
505 + elog "on if you will use openvswitch or linuxbridge (or something else)"
506 + elog
507 + elog "Other conf.d files may need updating too, but should be good for the default use case"
508 + elog
509 +}