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/nova/
Date: Wed, 14 Aug 2019 22:14:21
Message-Id: 1565820852.0a2f020aac2f1c639f8d45b037a8441e8fd8e626.prometheanfire@gentoo
1 commit: 0a2f020aac2f1c639f8d45b037a8441e8fd8e626
2 Author: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
3 AuthorDate: Wed Aug 14 22:12:25 2019 +0000
4 Commit: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
5 CommitDate: Wed Aug 14 22:14:12 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a2f020a
7
8 sys-cluster/nova: 18.2.2 19.0.2 bump
9
10 Package-Manager: Portage-2.3.69, Repoman-2.3.17
11 Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>
12
13 sys-cluster/nova/Manifest | 4 +
14 sys-cluster/nova/nova-18.2.2.ebuild | 253 +++++++++++++++++++++++++++++++++++
15 sys-cluster/nova/nova-19.0.2.ebuild | 255 ++++++++++++++++++++++++++++++++++++
16 3 files changed, 512 insertions(+)
17
18 diff --git a/sys-cluster/nova/Manifest b/sys-cluster/nova/Manifest
19 index 098b3fcef42..efbcbaa7736 100644
20 --- a/sys-cluster/nova/Manifest
21 +++ b/sys-cluster/nova/Manifest
22 @@ -1,6 +1,10 @@
23 DIST nova-18.2.1.tar.gz 11424634 BLAKE2B 8c68f8e5207df828f4c935b000021f0cea69e049165659c0730f1bf263523b30f9d1c0a9cc21fac5bd07334827de2cc91d984c551b74552136b20f76322aee94 SHA512 92e2ddf4441fa50aaec8300b2478cb67419e6c94bd6797fdc1856a5b9418e7e343bd62fbc4af842637a2bbd249aefd040d3003e83e45a69141ea875cca70d360
24 +DIST nova-18.2.2.tar.gz 11441554 BLAKE2B 7d92017bbf6370bf99358e5992aaf7f1a667d74d3893920910ae004a4e334fdb416fe8eba3ab3762b8811df495a641b6c9a604e6b690b7aa2431b71dc3ea7703 SHA512 7dbd46d44d66da041ad47dccf856dbbb09360384f452d544681610d95d568bd940f42ef8dc7c8e5ee95fd7bc3edefe0cff665d55a7d708d3315633367ea0fec4
25 DIST nova-19.0.1.tar.gz 11613042 BLAKE2B f787647bc892ddb8ef91bd1f313c5d523d83b5afcff227b515ab2f49a59bd2292d7c05725d999da416dff9b68be76b2e9598a13d84d3dbb028940eaad65b2344 SHA512 d1d1c7ae73643cc8375179d05f8ec162ecedca30411d81d8c2d5564fca115beb174684ca1162c1efab38325adad14c6fd48c6a67cc9ca59b2fd6b30c4cfb16c2
26 +DIST nova-19.0.2.tar.gz 11629406 BLAKE2B 026c123fc8ac98b6852a5fc8dfdeac7b46c913064e23723c4d322350d121dc2fb8258e24336eadab75f3da31cbac33e57ec2bb5d5e7bac0107dafb05420f21fb SHA512 a9bbdda3433a0f503029cc00a05d002088f3a8ac974c2775bfd77b0145ad2d4b76c07cacda3f21b40e5b2f1658718004b3bc5c276d2c8f9a10a52c10b8a7f9e3
27 DIST nova.conf.sample-18.2.1 387334 BLAKE2B a51b8cdc644ee60390cde3a30ba8f64a339695887b57b2640da39b5a8d34dfec51664b1249955a6cf9202ae19e8e0a8bcd805d4b87d2f6c99a5a6294cc955577 SHA512 be9fbab15ea1cac6d3cd1d186aab904454ef17801f9f4b2f1a37c6e46b4c69fed22a7724846049ebd343beff7753d8db408abae52ad3fca0693d70414c6afc61
28 +DIST nova.conf.sample-18.2.2 387334 BLAKE2B a51b8cdc644ee60390cde3a30ba8f64a339695887b57b2640da39b5a8d34dfec51664b1249955a6cf9202ae19e8e0a8bcd805d4b87d2f6c99a5a6294cc955577 SHA512 be9fbab15ea1cac6d3cd1d186aab904454ef17801f9f4b2f1a37c6e46b4c69fed22a7724846049ebd343beff7753d8db408abae52ad3fca0693d70414c6afc61
29 DIST nova.conf.sample-19.0.1 387769 BLAKE2B 2b4668e78765469c5ee518a8c340a09407a8f7e9bf3f87a6919b820db0ce2f38499827dbea58994490c8db3a648eef2c95521f7c62b3ae37606bb249492b4b12 SHA512 4facb96c111945f472654788e1ac3d52808b0c45e36c87b873cd1355d36b71922fa94b11d66ec5a8b250739072ecdec394dd4f852a8eb57dbd900c61c71ba770
30 +DIST nova.conf.sample-19.0.2 387769 BLAKE2B 2b4668e78765469c5ee518a8c340a09407a8f7e9bf3f87a6919b820db0ce2f38499827dbea58994490c8db3a648eef2c95521f7c62b3ae37606bb249492b4b12 SHA512 4facb96c111945f472654788e1ac3d52808b0c45e36c87b873cd1355d36b71922fa94b11d66ec5a8b250739072ecdec394dd4f852a8eb57dbd900c61c71ba770
31 DIST nova.conf.sample-2018.2.9999 387334 BLAKE2B a51b8cdc644ee60390cde3a30ba8f64a339695887b57b2640da39b5a8d34dfec51664b1249955a6cf9202ae19e8e0a8bcd805d4b87d2f6c99a5a6294cc955577 SHA512 be9fbab15ea1cac6d3cd1d186aab904454ef17801f9f4b2f1a37c6e46b4c69fed22a7724846049ebd343beff7753d8db408abae52ad3fca0693d70414c6afc61
32 DIST nova.conf.sample-2019.1.9999 387769 BLAKE2B 2b4668e78765469c5ee518a8c340a09407a8f7e9bf3f87a6919b820db0ce2f38499827dbea58994490c8db3a648eef2c95521f7c62b3ae37606bb249492b4b12 SHA512 4facb96c111945f472654788e1ac3d52808b0c45e36c87b873cd1355d36b71922fa94b11d66ec5a8b250739072ecdec394dd4f852a8eb57dbd900c61c71ba770
33
34 diff --git a/sys-cluster/nova/nova-18.2.2.ebuild b/sys-cluster/nova/nova-18.2.2.ebuild
35 new file mode 100644
36 index 00000000000..3b424bce2c5
37 --- /dev/null
38 +++ b/sys-cluster/nova/nova-18.2.2.ebuild
39 @@ -0,0 +1,253 @@
40 +# Copyright 1999-2019 Gentoo Authors
41 +# Distributed under the terms of the GNU General Public License v2
42 +
43 +EAPI=6
44 +PYTHON_COMPAT=( python2_7 python3_{5,6} )
45 +
46 +inherit distutils-r1 eutils linux-info multilib user
47 +
48 +DESCRIPTION="Cloud computing fabric controller (main part of an IaaS system) in Python"
49 +HOMEPAGE="https://launchpad.net/nova"
50 +
51 +if [[ ${PV} == *9999 ]];then
52 + inherit git-r3
53 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/rocky/nova.conf.sample -> nova.conf.sample-${PV}"
54 + EGIT_REPO_URI="https://github.com/openstack/nova.git"
55 + EGIT_BRANCH="stable/rocky"
56 +else
57 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/rocky/nova.conf.sample -> nova.conf.sample-${PV}
58 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
59 + KEYWORDS="~amd64 ~arm64 ~x86"
60 +fi
61 +
62 +LICENSE="Apache-2.0"
63 +SLOT="0"
64 +IUSE="+compute compute-only iscsi +memcached mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
65 +REQUIRED_USE="
66 + !compute-only? ( || ( mysql postgres sqlite ) )
67 + compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
68 +
69 +CDEPEND="
70 + >=dev-python/setuptools-21.0.0[${PYTHON_USEDEP}]
71 + !~dev-python/setuptools-24.0.0[${PYTHON_USEDEP}]
72 + !~dev-python/setuptools-34.0.0[${PYTHON_USEDEP}]
73 + !~dev-python/setuptools-34.0.1[${PYTHON_USEDEP}]
74 + !~dev-python/setuptools-34.0.2[${PYTHON_USEDEP}]
75 + !~dev-python/setuptools-34.0.3[${PYTHON_USEDEP}]
76 + !~dev-python/setuptools-34.1.0[${PYTHON_USEDEP}]
77 + !~dev-python/setuptools-34.1.1[${PYTHON_USEDEP}]
78 + !~dev-python/setuptools-34.2.0[${PYTHON_USEDEP}]
79 + !~dev-python/setuptools-34.3.0[${PYTHON_USEDEP}]
80 + !~dev-python/setuptools-34.3.1[${PYTHON_USEDEP}]
81 + !~dev-python/setuptools-34.3.2[${PYTHON_USEDEP}]
82 + !~dev-python/setuptools-36.2.0[${PYTHON_USEDEP}]
83 + >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
84 + !~dev-python/pbr-2.1.0"
85 +DEPEND="
86 + ${CDEPEND}
87 + app-admin/sudo"
88 +
89 +RDEPEND="
90 + ${CDEPEND}
91 + compute-only? (
92 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
93 + !~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}]
94 + !~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}]
95 + !~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}]
96 + !~dev-python/sqlalchemy-1.1.8[sqlite,${PYTHON_USEDEP}]
97 + )
98 + sqlite? (
99 + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
100 + !~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}]
101 + !~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}]
102 + !~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}]
103 + !~dev-python/sqlalchemy-1.1.8[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.0.10[${PYTHON_USEDEP}]
109 + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
110 + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
111 + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
112 + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
113 + )
114 + postgres? (
115 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
116 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
117 + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
118 + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
119 + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
120 + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
121 + )
122 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
123 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
124 + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
125 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
126 + >=dev-python/keystonemiddleware-4.17.0[${PYTHON_USEDEP}]
127 + >=dev-python/lxml-2.4.1[${PYTHON_USEDEP}]
128 + !~dev-python/lxml-3.7.0[${PYTHON_USEDEP}]
129 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
130 + >=dev-python/cryptography-1.2.1[${PYTHON_USEDEP}]
131 + >=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
132 + >=dev-python/greenlet-0.4.10[${PYTHON_USEDEP}]
133 + !~dev-python/greenlet-0.4.14[${PYTHON_USEDEP}]
134 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
135 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
136 + >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
137 + <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
138 + >=dev-python/sqlalchemy-migrate-0.11.0[${PYTHON_USEDEP}]
139 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
140 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
141 + >=dev-python/paramiko-2.0.0[${PYTHON_USEDEP}]
142 + >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
143 + !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
144 + virtual/python-enum34[${PYTHON_USEDEP}]
145 + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
146 + >=dev-python/jsonschema-2.6.0[${PYTHON_USEDEP}]
147 + <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
148 + >=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
149 + >=dev-python/keystoneauth-3.9.0[${PYTHON_USEDEP}]
150 + >=dev-python/python-neutronclient-6.7.0[${PYTHON_USEDEP}]
151 + >=dev-python/python-glanceclient-2.8.0[${PYTHON_USEDEP}]
152 + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
153 + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
154 + >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
155 + >=dev-python/websockify-0.8.0[${PYTHON_USEDEP}]
156 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
157 + >=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
158 + >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
159 + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
160 + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
161 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
162 + >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
163 + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
164 + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
165 + >=dev-python/oslo-db-4.27.0[${PYTHON_USEDEP}]
166 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
167 + >=dev-python/oslo-messaging-6.3.0[${PYTHON_USEDEP}]
168 + >=dev-python/oslo-policy-1.35.0[${PYTHON_USEDEP}]
169 + >=dev-python/oslo-privsep-1.23.0[${PYTHON_USEDEP}]
170 + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
171 + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
172 + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
173 + >=dev-python/rfc3986-0.3.1[${PYTHON_USEDEP}]
174 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
175 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
176 + >=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}]
177 + >=dev-python/os-brick-2.5.0[${PYTHON_USEDEP}]
178 + >=dev-python/os-traits-0.4.0[${PYTHON_USEDEP}]
179 + >=dev-python/os-vif-1.7.0[${PYTHON_USEDEP}]
180 + !~dev-python/os-vif-1.8.0[${PYTHON_USEDEP}]
181 + >=dev-python/os-win-3.0.0[${PYTHON_USEDEP}]
182 + >=dev-python/castellan-0.16.0[${PYTHON_USEDEP}]
183 + >=dev-python/microversion-parse-0.2.1[${PYTHON_USEDEP}]
184 + >=dev-python/os-xenapi-0.3.3[${PYTHON_USEDEP}]
185 + >=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
186 + >=dev-python/cursive-0.2.1[${PYTHON_USEDEP}]
187 + >=dev-python/pypowervm-1.1.15[${PYTHON_USEDEP}]
188 + >=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
189 + >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
190 + >=dev-python/taskflow-2.16.0[${PYTHON_USEDEP}]
191 + >=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}]
192 + >=dev-python/zVMCloudConnector-1.1.1[${PYTHON_USEDEP}]
193 + >=dev-python/futures-3.0.0[$(python_gen_usedep 'python2_7')]
194 + dev-python/libvirt-python[${PYTHON_USEDEP}]
195 + app-emulation/libvirt[iscsi?]
196 + novncproxy? ( www-apps/novnc )
197 + sys-apps/iproute2
198 + openvswitch? ( net-misc/openvswitch )
199 + rabbitmq? ( net-misc/rabbitmq-server )
200 + memcached? (
201 + net-misc/memcached
202 + >=dev-python/python-memcached-1.58
203 + )
204 + sys-fs/sysfsutils
205 + sys-fs/multipath-tools
206 + net-misc/bridge-utils
207 + compute? (
208 + app-cdr/cdrtools
209 + sys-fs/dosfstools
210 + app-emulation/qemu
211 + )
212 + iscsi? (
213 + sys-fs/lsscsi
214 + >=sys-block/open-iscsi-2.0.873-r1
215 + )"
216 +
217 +#PATCHES=(
218 +#)
219 +
220 +pkg_setup() {
221 + linux-info_pkg_setup
222 + CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
223 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
224 + NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
225 + ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
226 + if linux_config_exists; then
227 + for module in ${CONFIG_CHECK_MODULES}; do
228 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
229 + done
230 + fi
231 + enewgroup nova
232 + enewuser nova -1 -1 /var/lib/nova nova
233 +}
234 +
235 +python_prepare_all() {
236 + sed -i '/^hacking/d' test-requirements.txt || die
237 + distutils-r1_python_prepare_all
238 +}
239 +
240 +python_install_all() {
241 + distutils-r1_python_install_all
242 +
243 + if use !compute-only; then
244 + for svc in api conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
245 + newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
246 + done
247 + fi
248 + use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
249 + use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
250 +
251 + diropts -m 0750 -o nova -g qemu
252 + dodir /var/log/nova /var/lib/nova/instances
253 + diropts -m 0750 -o nova -g nova
254 +
255 + insinto /etc/nova
256 + insopts -m 0640 -o nova -g nova
257 + newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
258 + doins "${FILESDIR}/nova-compute.conf"
259 + doins "${S}/etc/nova/"*
260 + # rootwrap filters
261 + insopts -m 0644
262 + insinto /etc/nova/rootwrap.d
263 + doins "etc/nova/rootwrap.d/api-metadata.filters"
264 + doins "etc/nova/rootwrap.d/compute.filters"
265 + doins "etc/nova/rootwrap.d/network.filters"
266 +
267 + # add sudoers definitions for user nova
268 + insinto /etc/sudoers.d/
269 + insopts -m 0600 -o root -g root
270 + doins "${FILESDIR}/nova-sudoers"
271 +
272 + if use iscsi ; then
273 + # Install udev rules for handle iscsi disk with right links under /dev
274 + udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
275 +
276 + insinto /etc/nova/
277 + doins "${FILESDIR}/scsi-openscsi-link.sh"
278 + fi
279 +}
280 +
281 +python_install() {
282 + distutils-r1_python_install
283 + # copy migration conf file (not coppied on install via setup.py script)
284 + insinto "$(python_get_sitedir)/db/sqlalchemy/migrate_repo/"
285 + doins "nova/db/sqlalchemy/migrate_repo/migrate.cfg"
286 +}
287 +
288 +pkg_postinst() {
289 + if use iscsi ; then
290 + elog "iscsid needs to be running if you want cinder to connect"
291 + fi
292 +}
293
294 diff --git a/sys-cluster/nova/nova-19.0.2.ebuild b/sys-cluster/nova/nova-19.0.2.ebuild
295 new file mode 100644
296 index 00000000000..dc68e7e07ad
297 --- /dev/null
298 +++ b/sys-cluster/nova/nova-19.0.2.ebuild
299 @@ -0,0 +1,255 @@
300 +# Copyright 1999-2019 Gentoo Authors
301 +# Distributed under the terms of the GNU General Public License v2
302 +
303 +EAPI=7
304 +PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
305 +
306 +inherit distutils-r1 eutils linux-info multilib user
307 +
308 +DESCRIPTION="Cloud computing fabric controller (main part of an IaaS system) in Python"
309 +HOMEPAGE="https://launchpad.net/nova"
310 +
311 +if [[ ${PV} == *9999 ]];then
312 + inherit git-r3
313 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/stein/nova.conf.sample -> nova.conf.sample-${PV}"
314 + EGIT_REPO_URI="https://github.com/openstack/nova.git"
315 + EGIT_BRANCH="stable/stein"
316 +else
317 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/stein/nova.conf.sample -> nova.conf.sample-${PV}
318 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
319 + KEYWORDS="~amd64 ~arm64 ~x86"
320 +fi
321 +
322 +LICENSE="Apache-2.0"
323 +SLOT="0"
324 +IUSE="+compute compute-only iscsi +memcached mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
325 +REQUIRED_USE="
326 + !compute-only? ( || ( mysql postgres sqlite ) )
327 + compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
328 +
329 +CDEPEND="
330 + >=dev-python/setuptools-21.0.0[${PYTHON_USEDEP}]
331 + !~dev-python/setuptools-24.0.0[${PYTHON_USEDEP}]
332 + !~dev-python/setuptools-34.0.0[${PYTHON_USEDEP}]
333 + !~dev-python/setuptools-34.0.1[${PYTHON_USEDEP}]
334 + !~dev-python/setuptools-34.0.2[${PYTHON_USEDEP}]
335 + !~dev-python/setuptools-34.0.3[${PYTHON_USEDEP}]
336 + !~dev-python/setuptools-34.1.0[${PYTHON_USEDEP}]
337 + !~dev-python/setuptools-34.1.1[${PYTHON_USEDEP}]
338 + !~dev-python/setuptools-34.2.0[${PYTHON_USEDEP}]
339 + !~dev-python/setuptools-34.3.0[${PYTHON_USEDEP}]
340 + !~dev-python/setuptools-34.3.1[${PYTHON_USEDEP}]
341 + !~dev-python/setuptools-34.3.2[${PYTHON_USEDEP}]
342 + !~dev-python/setuptools-36.2.0[${PYTHON_USEDEP}]
343 + >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
344 + !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
345 +DEPEND="
346 + ${CDEPEND}
347 + app-admin/sudo"
348 +
349 +RDEPEND="
350 + ${CDEPEND}
351 + compute-only? (
352 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
353 + !~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}]
354 + !~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}]
355 + !~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}]
356 + !~dev-python/sqlalchemy-1.1.8[sqlite,${PYTHON_USEDEP}]
357 + )
358 + sqlite? (
359 + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
360 + !~dev-python/sqlalchemy-1.1.5[sqlite,${PYTHON_USEDEP}]
361 + !~dev-python/sqlalchemy-1.1.6[sqlite,${PYTHON_USEDEP}]
362 + !~dev-python/sqlalchemy-1.1.7[sqlite,${PYTHON_USEDEP}]
363 + !~dev-python/sqlalchemy-1.1.8[sqlite,${PYTHON_USEDEP}]
364 + )
365 + mysql? (
366 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
367 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
368 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
369 + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
370 + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
371 + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
372 + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
373 + )
374 + postgres? (
375 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
376 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
377 + !~dev-python/sqlalchemy-1.1.5[${PYTHON_USEDEP}]
378 + !~dev-python/sqlalchemy-1.1.6[${PYTHON_USEDEP}]
379 + !~dev-python/sqlalchemy-1.1.7[${PYTHON_USEDEP}]
380 + !~dev-python/sqlalchemy-1.1.8[${PYTHON_USEDEP}]
381 + )
382 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
383 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
384 + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
385 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
386 + >=dev-python/keystonemiddleware-4.17.0[${PYTHON_USEDEP}]
387 + >=dev-python/lxml-2.4.1[${PYTHON_USEDEP}]
388 + !~dev-python/lxml-3.7.0[${PYTHON_USEDEP}]
389 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
390 + >=dev-python/cryptography-1.2.1[${PYTHON_USEDEP}]
391 + >=dev-python/webob-1.8.2[${PYTHON_USEDEP}]
392 + >=dev-python/greenlet-0.4.10[${PYTHON_USEDEP}]
393 + !~dev-python/greenlet-0.4.14[${PYTHON_USEDEP}]
394 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
395 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
396 + >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
397 + <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
398 + >=dev-python/sqlalchemy-migrate-0.11.0[${PYTHON_USEDEP}]
399 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
400 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
401 + >=dev-python/paramiko-2.0.0[${PYTHON_USEDEP}]
402 + >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
403 + !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
404 + virtual/python-enum34[${PYTHON_USEDEP}]
405 + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
406 + >=dev-python/jsonschema-2.6.0[${PYTHON_USEDEP}]
407 + <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
408 + >=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
409 + >=dev-python/keystoneauth-3.9.0[${PYTHON_USEDEP}]
410 + >=dev-python/python-neutronclient-6.7.0[${PYTHON_USEDEP}]
411 + >=dev-python/python-glanceclient-2.8.0[${PYTHON_USEDEP}]
412 + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
413 + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
414 + >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
415 + >=dev-python/websockify-0.8.0[${PYTHON_USEDEP}]
416 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
417 + >=dev-python/oslo-concurrency-3.26.0[${PYTHON_USEDEP}]
418 + >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
419 + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
420 + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
421 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
422 + >=dev-python/oslo-serialization-1.21.0[${PYTHON_USEDEP}]
423 + >=dev-python/oslo-upgradecheck-0.1.1[${PYTHON_USEDEP}]
424 + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
425 + >=dev-python/oslo-utils-3.37.0[${PYTHON_USEDEP}]
426 + >=dev-python/oslo-db-4.44.0[${PYTHON_USEDEP}]
427 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
428 + >=dev-python/oslo-messaging-6.3.0[${PYTHON_USEDEP}]
429 + >=dev-python/oslo-policy-1.35.0[${PYTHON_USEDEP}]
430 + >=dev-python/oslo-privsep-1.32.0[${PYTHON_USEDEP}]
431 + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
432 + >=dev-python/oslo-service-1.34.0[${PYTHON_USEDEP}]
433 + >=dev-python/rfc3986-1.1.0[${PYTHON_USEDEP}]
434 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
435 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
436 + >=dev-python/oslo-versionedobjects-1.33.3[${PYTHON_USEDEP}]
437 + >=dev-python/os-brick-2.6.1[${PYTHON_USEDEP}]
438 + >=dev-python/os-resource-classes-0.1.0[${PYTHON_USEDEP}]
439 + >=dev-python/os-traits-0.8.0[${PYTHON_USEDEP}]
440 + >=dev-python/os-vif-1.14.0[${PYTHON_USEDEP}]
441 + >=dev-python/os-win-3.0.0[${PYTHON_USEDEP}]
442 + >=dev-python/castellan-0.16.0[${PYTHON_USEDEP}]
443 + >=dev-python/microversion-parse-0.2.1[${PYTHON_USEDEP}]
444 + >=dev-python/os-xenapi-0.3.3[${PYTHON_USEDEP}]
445 + >=dev-python/tooz-1.58.0[${PYTHON_USEDEP}]
446 + >=dev-python/cursive-0.2.1[${PYTHON_USEDEP}]
447 + >=dev-python/pypowervm-1.1.15[${PYTHON_USEDEP}]
448 + >=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
449 + >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
450 + >=dev-python/taskflow-2.16.0[${PYTHON_USEDEP}]
451 + >=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}]
452 + >=dev-python/zVMCloudConnector-1.1.1[${PYTHON_USEDEP}]
453 + >=dev-python/futurist-1.8.0[$(python_gen_usedep 'python2_7')]
454 + dev-python/libvirt-python[${PYTHON_USEDEP}]
455 + app-emulation/libvirt[iscsi?]
456 + app-emulation/spice-html5
457 + novncproxy? ( www-apps/novnc )
458 + sys-apps/iproute2
459 + openvswitch? ( net-misc/openvswitch )
460 + rabbitmq? ( net-misc/rabbitmq-server )
461 + memcached? (
462 + net-misc/memcached
463 + >=dev-python/python-memcached-1.58
464 + )
465 + sys-fs/sysfsutils
466 + sys-fs/multipath-tools
467 + net-misc/bridge-utils
468 + compute? (
469 + app-cdr/cdrtools
470 + sys-fs/dosfstools
471 + app-emulation/qemu
472 + )
473 + iscsi? (
474 + sys-fs/lsscsi
475 + >=sys-block/open-iscsi-2.0.873-r1
476 + )"
477 +
478 +#PATCHES=(
479 +#)
480 +
481 +pkg_setup() {
482 + linux-info_pkg_setup
483 + CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
484 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
485 + NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
486 + ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
487 + if linux_config_exists; then
488 + for module in ${CONFIG_CHECK_MODULES}; do
489 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
490 + done
491 + fi
492 + enewgroup nova
493 + enewuser nova -1 -1 /var/lib/nova nova
494 +}
495 +
496 +python_prepare_all() {
497 + sed -i '/^hacking/d' test-requirements.txt || die
498 + distutils-r1_python_prepare_all
499 +}
500 +
501 +python_install_all() {
502 + distutils-r1_python_install_all
503 +
504 + if use !compute-only; then
505 + for svc in api conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
506 + newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
507 + done
508 + fi
509 + use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
510 + use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
511 +
512 + diropts -m 0750 -o nova -g qemu
513 + dodir /var/log/nova /var/lib/nova/instances
514 + diropts -m 0750 -o nova -g nova
515 +
516 + insinto /etc/nova
517 + insopts -m 0640 -o nova -g nova
518 + newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
519 + doins "${FILESDIR}/nova-compute.conf"
520 + doins "${S}/etc/nova/"*
521 + # rootwrap filters
522 + insopts -m 0644
523 + insinto /etc/nova/rootwrap.d
524 + doins "etc/nova/rootwrap.d/api-metadata.filters"
525 + doins "etc/nova/rootwrap.d/compute.filters"
526 + doins "etc/nova/rootwrap.d/network.filters"
527 +
528 + # add sudoers definitions for user nova
529 + insinto /etc/sudoers.d/
530 + insopts -m 0600 -o root -g root
531 + doins "${FILESDIR}/nova-sudoers"
532 +
533 + if use iscsi ; then
534 + # Install udev rules for handle iscsi disk with right links under /dev
535 + udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
536 +
537 + insinto /etc/nova/
538 + doins "${FILESDIR}/scsi-openscsi-link.sh"
539 + fi
540 + rm -r "${ED}/usr/etc"
541 +}
542 +
543 +python_install() {
544 + distutils-r1_python_install
545 + # copy migration conf file (not coppied on install via setup.py script)
546 + insinto "$(python_get_sitedir)/db/sqlalchemy/migrate_repo/"
547 + doins "nova/db/sqlalchemy/migrate_repo/migrate.cfg"
548 +}
549 +
550 +pkg_postinst() {
551 + if use iscsi ; then
552 + elog "iscsid needs to be running if you want cinder to connect"
553 + fi
554 +}