Gentoo Archives: gentoo-commits

From: Matt Thode <prometheanfire@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/nova/
Date: Mon, 27 Feb 2017 06:43:31
Message-Id: 1488177765.387d3f380a8963705dca0e091caf7f7c99da8a0f.prometheanfire@gentoo
1 commit: 387d3f380a8963705dca0e091caf7f7c99da8a0f
2 Author: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
3 AuthorDate: Mon Feb 27 06:10:06 2017 +0000
4 Commit: Matt Thode <prometheanfire <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 27 06:42:45 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=387d3f38
7
8 sys-cluster/nova: OCATA
9
10 Package-Manager: Portage-2.3.3, Repoman-2.3.1
11
12 sys-cluster/nova/Manifest | 3 +
13 sys-cluster/nova/nova-15.0.0.ebuild | 222 ++++++++++++++++++++++++++++++
14 sys-cluster/nova/nova-2017.1.9999.ebuild | 223 +++++++++++++++++++++++++++++++
15 3 files changed, 448 insertions(+)
16
17 diff --git a/sys-cluster/nova/Manifest b/sys-cluster/nova/Manifest
18 index d9d00ae48b..72eb442dcc 100644
19 --- a/sys-cluster/nova/Manifest
20 +++ b/sys-cluster/nova/Manifest
21 @@ -2,3 +2,6 @@ DIST mitaka-nova.conf.sample 36427 SHA256 dd4c3ccab89fbe9f69df520f47d439c7ffa440
22 DIST newton-nova.conf.sample 44496 SHA256 a7d9b95e67b77d0335edac760e037ad117d8c9f18c4792939ba8bb02739eae58 SHA512 ac917f0fed24c6705cbe43b4e1af31138bb656ea06f0cbe66d5b820677a47ca854abf6ca7fdf76a9a7f3a5afff758dac294ffd778d1bda82bb9f95c48d103d6e WHIRLPOOL 3c54dc8e4721f4289a8f64e9ac215c4b2e4b6afd2904fea4080659d3c292dcd942535d998b463efa4dd96a6090afb9830dfa6b9b3f2062439a8d03ec09356adc
23 DIST nova-13.1.2.tar.gz 5419167 SHA256 8e6762e09ff3bb1ab401881657faa460c75b32b730ca55e89b3de0a921843b99 SHA512 3ea9e4a26ef10dc6175b417d66817ed5f00915197fd7184778a2ce70ef56208a5e5e6c8fe72228c90eb4999b278eb9a2f6743f5430f1e14e5b5aa2d7c53e79f7 WHIRLPOOL bd025f3a434332acf61da52f9df72d644f1cea19e38a702c39939e32a8a45b1996340b1f93f253e9844098e0cfb73dc286cfadb13181751545f4b8356342487d
24 DIST nova-14.0.3.tar.gz 5584926 SHA256 e5a93e747824cb77a0d389a3e74eaaa63954048530df942533c68bda1534e826 SHA512 9fff4b9370799f05c8d0984d19020ff794ffec3924e607eb2677e29e87990c32f9132e0f70137e8bb2142140476cc612e0dfdb1abeb3a8e6ae14b98703b1dffc WHIRLPOOL e73cfeb570722e081ee28f4ff06ef3175af93e2d82c1bced374178192296186d387c23e0b1d835253e3a33e70ee5681f70c0fc7867a6f080d16083dd4364b210
25 +DIST nova-15.0.0.tar.gz 5730683 SHA256 f3769208225ba7257273f7a97ffa2bc8cfa2372f61082fbcbae9b0fd5fcb0aa6 SHA512 999e4ca1de8fe1cee73cfb559fa6ad2f38e55937541d3ddb7f76a773d2056bfdbbbf490efe959acd09d4fb456c186b1601a47eaa4e794ec8067458904b7182af WHIRLPOOL ce7d396e7fad0dd73d40922dfc2d6fc382954daea77325b57d651295fb76c60a0baa7d3efac34a3e6938a25007d0a1ab2a749e952080e08ab032f89ddc7a0aeb
26 +DIST nova.conf.sample-15.0.0 344760 SHA256 09c086c981505a6e775a4e2073856b1d38998d97b92062f019095f98d7d26e1f SHA512 5c55c752c8752876acbd8d2348abb39d6a8449f637ad2a6515f5c9f4619dbad73c4ae7a6ac4cd164656a0c466ed000a4d68a291050a03a5641fe96b3dd7f732d WHIRLPOOL 22f174d402e6d9c3e1e18da0cdec883209013083c66eb2b5a2921546fb609c1a19de594832afa8f40ee26a999f2596c563eb16ba1a08035895b5d6c72a729125
27 +DIST nova.conf.sample-2017.1.9999 344760 SHA256 09c086c981505a6e775a4e2073856b1d38998d97b92062f019095f98d7d26e1f SHA512 5c55c752c8752876acbd8d2348abb39d6a8449f637ad2a6515f5c9f4619dbad73c4ae7a6ac4cd164656a0c466ed000a4d68a291050a03a5641fe96b3dd7f732d WHIRLPOOL 22f174d402e6d9c3e1e18da0cdec883209013083c66eb2b5a2921546fb609c1a19de594832afa8f40ee26a999f2596c563eb16ba1a08035895b5d6c72a729125
28
29 diff --git a/sys-cluster/nova/nova-15.0.0.ebuild b/sys-cluster/nova/nova-15.0.0.ebuild
30 new file mode 100644
31 index 0000000000..d15421a2f0
32 --- /dev/null
33 +++ b/sys-cluster/nova/nova-15.0.0.ebuild
34 @@ -0,0 +1,222 @@
35 +# Copyright 1999-2017 Gentoo Foundation
36 +# Distributed under the terms of the GNU General Public License v2
37 +# $Id$
38 +
39 +EAPI=6
40 +PYTHON_COMPAT=( python2_7 python3_4 )
41 +
42 +inherit distutils-r1 eutils linux-info multilib user
43 +
44 +DESCRIPTION="Cloud computing fabric controller (main part of an IaaS system) in Python"
45 +HOMEPAGE="https://launchpad.net/nova"
46 +SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/ocata/nova.conf.sample -> nova.conf.sample-${PV}
47 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
48 +
49 +LICENSE="Apache-2.0"
50 +SLOT="0"
51 +KEYWORDS="~amd64 ~arm64 ~x86"
52 +IUSE="+compute compute-only iscsi +memcached mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
53 +REQUIRED_USE="
54 + !compute-only? ( || ( mysql postgres sqlite ) )
55 + compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
56 +
57 +CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]"
58 +DEPEND="
59 + >=dev-python/setuptools-16.0[${PYTHON_USEDEP}]
60 + ${CDEPEND}
61 + app-admin/sudo"
62 +
63 +RDEPEND="
64 + ${CDEPEND}
65 + compute-only? (
66 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
67 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
68 + )
69 + sqlite? (
70 + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
71 + <dev-python/sqlalchemy-1.1.0[sqlite,${PYTHON_USEDEP}]
72 + )
73 + mysql? (
74 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
75 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
76 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
77 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
78 + )
79 + postgres? (
80 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
81 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
82 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
83 + )
84 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
85 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
86 + >=dev-python/jinja-2.8[${PYTHON_USEDEP}]
87 + !~dev-python/jinja-2.9.0[${PYTHON_USEDEP}]
88 + !~dev-python/jinja-2.9.1[${PYTHON_USEDEP}]
89 + !~dev-python/jinja-2.9.2[${PYTHON_USEDEP}]
90 + !~dev-python/jinja-2.9.3[${PYTHON_USEDEP}]
91 + !~dev-python/jinja-2.9.4[${PYTHON_USEDEP}]
92 + >=dev-python/keystonemiddleware-4.12.0[${PYTHON_USEDEP}]
93 + >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
94 + !~dev-python/lxml-3.7.0[${PYTHON_USEDEP}]
95 + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
96 + !~dev-python/routes-2.0[${PYTHON_USEDEP}]
97 + !~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')]
98 + !~dev-python/routes-2.3[${PYTHON_USEDEP}]
99 + >=dev-python/cryptography-1.0[${PYTHON_USEDEP}]
100 + !~dev-python/cryptography-1.3.0[${PYTHON_USEDEP}]
101 + >=dev-python/webob-1.6.0[${PYTHON_USEDEP}]
102 + >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
103 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
104 + dev-python/paste[${PYTHON_USEDEP}]
105 + >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
106 + <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
107 + >=dev-python/sqlalchemy-migrate-0.9.6[${PYTHON_USEDEP}]
108 + >=dev-python/netaddr-0.7.13[${PYTHON_USEDEP}]
109 + !~dev-python/netaddr-0.7.16[${PYTHON_USEDEP}]
110 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
111 + >=dev-python/paramiko-2.0[${PYTHON_USEDEP}]
112 + >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
113 + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
114 + >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
115 + !~dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}]
116 + <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
117 + >=dev-python/python-cinderclient-1.6.0[${PYTHON_USEDEP}]
118 + !~dev-python/python-cinderclient-1.7.0[${PYTHON_USEDEP}]
119 + !~dev-python/python-cinderclient-1.7.1[${PYTHON_USEDEP}]
120 + >=dev-python/keystoneauth-2.18.0[${PYTHON_USEDEP}]
121 + >=dev-python/python-neutronclient-5.1.0[${PYTHON_USEDEP}]
122 + >=dev-python/python-glanceclient-2.5.0[${PYTHON_USEDEP}]
123 + >=dev-python/requests-2.10.0[${PYTHON_USEDEP}]
124 + !~dev-python/requests-2.12.2[${PYTHON_USEDEP}]
125 + >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
126 + >=dev-python/stevedore-1.17.1[${PYTHON_USEDEP}]
127 + >=dev-python/setuptools-16.0[${PYTHON_USEDEP}]
128 + !~dev-python/setuptools-24.0.0[${PYTHON_USEDEP}]
129 + >=dev-python/websockify-0.8.0[${PYTHON_USEDEP}]
130 + >=dev-python/oslo-cache-1.5.0[${PYTHON_USEDEP}]
131 + >=dev-python/oslo-concurrency-3.8.0[${PYTHON_USEDEP}]
132 + >=dev-python/oslo-config-3.14.0[${PYTHON_USEDEP}]
133 + !~dev-python/oslo-config-3.18.0[${PYTHON_USEDEP}]
134 + >=dev-python/oslo-context-2.9.0[${PYTHON_USEDEP}]
135 + >=dev-python/oslo-log-3.11.0[${PYTHON_USEDEP}]
136 + >=dev-python/oslo-reports-0.6.0[${PYTHON_USEDEP}]
137 + >=dev-python/oslo-serialization-1.10.0[${PYTHON_USEDEP}]
138 + >=dev-python/oslo-utils-3.18.0[${PYTHON_USEDEP}]
139 + >=dev-python/oslo-db-4.15.0[${PYTHON_USEDEP}]
140 + >=dev-python/oslo-rootwrap-5.0.0[${PYTHON_USEDEP}]
141 + >=dev-python/oslo-messaging-5.14.0[${PYTHON_USEDEP}]
142 + >=dev-python/oslo-policy-1.17.0[${PYTHON_USEDEP}]
143 + >=dev-python/oslo-privsep-1.9.0[${PYTHON_USEDEP}]
144 + >=dev-python/oslo-i18n-2.1.0[${PYTHON_USEDEP}]
145 + >=dev-python/oslo-service-1.10.0[${PYTHON_USEDEP}]
146 + >=dev-python/rfc3986-0.3.1[${PYTHON_USEDEP}]
147 + >=dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}]
148 + >=dev-python/psutil-3.0.1[${PYTHON_USEDEP}]
149 + >=dev-python/oslo-versionedobjects-1.17.0[${PYTHON_USEDEP}]
150 + >=dev-python/os-brick-1.8.0[${PYTHON_USEDEP}]
151 + >=dev-python/os-vif-1.4.0[${PYTHON_USEDEP}]
152 + >=dev-python/os-win-1.4.0[${PYTHON_USEDEP}]
153 + >=dev-python/castellan-0.4.0[${PYTHON_USEDEP}]
154 + >=dev-python/microversion-parse-0.1.2[${PYTHON_USEDEP}]
155 + >=dev-python/os-xenapi-0.1.1[${PYTHON_USEDEP}]
156 + dev-python/libvirt-python[${PYTHON_USEDEP}]
157 + app-emulation/libvirt[iscsi?]
158 + novncproxy? ( www-apps/novnc )
159 + sys-apps/iproute2
160 + openvswitch? ( net-misc/openvswitch )
161 + rabbitmq? ( net-misc/rabbitmq-server )
162 + memcached? (
163 + net-misc/memcached
164 + >=dev-python/python-memcached-1.58
165 + )
166 + sys-fs/sysfsutils
167 + sys-fs/multipath-tools
168 + net-misc/bridge-utils
169 + compute? (
170 + app-cdr/cdrtools
171 + sys-fs/dosfstools
172 + app-emulation/qemu
173 + )
174 + iscsi? (
175 + sys-fs/lsscsi
176 + >=sys-block/open-iscsi-2.0.873-r1
177 + )"
178 +
179 +#PATCHES=(
180 +#)
181 +
182 +pkg_setup() {
183 + linux-info_pkg_setup
184 + CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
185 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
186 + NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
187 + ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
188 + if linux_config_exists; then
189 + for module in ${CONFIG_CHECK_MODULES}; do
190 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
191 + done
192 + fi
193 + enewgroup nova
194 + enewuser nova -1 -1 /var/lib/nova nova
195 +}
196 +
197 +python_prepare_all() {
198 + sed -i '/^hacking/d' test-requirements.txt || die
199 + distutils-r1_python_prepare_all
200 +}
201 +
202 +python_install_all() {
203 + distutils-r1_python_install_all
204 +
205 + if use !compute-only; then
206 + for svc in api cert conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
207 + newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
208 + done
209 + fi
210 + use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
211 + use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
212 +
213 + diropts -m 0750 -o nova -g qemu
214 + dodir /var/log/nova /var/lib/nova/instances
215 + diropts -m 0750 -o nova -g nova
216 +
217 + insinto /etc/nova
218 + insopts -m 0640 -o nova -g nova
219 + newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
220 + doins "${FILESDIR}/nova-compute.conf"
221 + doins "${S}/etc/nova/"*
222 + # rootwrap filters
223 + insopts -m 0644
224 + insinto /etc/nova/rootwrap.d
225 + doins "etc/nova/rootwrap.d/api-metadata.filters"
226 + doins "etc/nova/rootwrap.d/compute.filters"
227 + doins "etc/nova/rootwrap.d/network.filters"
228 +
229 + # add sudoers definitions for user nova
230 + insinto /etc/sudoers.d/
231 + insopts -m 0600 -o root -g root
232 + doins "${FILESDIR}/nova-sudoers"
233 +
234 + if use iscsi ; then
235 + # Install udev rules for handle iscsi disk with right links under /dev
236 + udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
237 +
238 + insinto /etc/nova/
239 + doins "${FILESDIR}/scsi-openscsi-link.sh"
240 + fi
241 +}
242 +
243 +python_install() {
244 + distutils-r1_python_install
245 + # copy migration conf file (not coppied on install via setup.py script)
246 + insinto "$(python_get_sitedir)/db/sqlalchemy/migrate_repo/"
247 + doins "nova/db/sqlalchemy/migrate_repo/migrate.cfg"
248 + # copy the CA cert dir (not coppied on install via setup.py script)
249 + cp -R "${S}/nova/CA" "${D}/$(python_get_sitedir)/nova/" || die "installing CA files failed"
250 +}
251 +
252 +pkg_postinst() {
253 + if use iscsi ; then
254 + elog "iscsid needs to be running if you want cinder to connect"
255 + fi
256 +}
257
258 diff --git a/sys-cluster/nova/nova-2017.1.9999.ebuild b/sys-cluster/nova/nova-2017.1.9999.ebuild
259 new file mode 100644
260 index 0000000000..4f0502b38f
261 --- /dev/null
262 +++ b/sys-cluster/nova/nova-2017.1.9999.ebuild
263 @@ -0,0 +1,223 @@
264 +# Copyright 1999-2017 Gentoo Foundation
265 +# Distributed under the terms of the GNU General Public License v2
266 +# $Id$
267 +
268 +EAPI=6
269 +PYTHON_COMPAT=( python2_7 python3_4 )
270 +
271 +inherit distutils-r1 eutils git-r3 linux-info multilib user
272 +
273 +DESCRIPTION="Cloud computing fabric controller (main part of an IaaS system) in Python"
274 +HOMEPAGE="https://launchpad.net/nova"
275 +SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/nova/ocata/nova.conf.sample -> nova.conf.sample-${PV}"
276 +EGIT_REPO_URI="https://github.com/openstack/nova.git"
277 +EGIT_BRANCH="stable/ocata"
278 +
279 +LICENSE="Apache-2.0"
280 +SLOT="0"
281 +KEYWORDS=""
282 +IUSE="+compute compute-only iscsi +memcached mysql +novncproxy openvswitch postgres +rabbitmq sqlite"
283 +REQUIRED_USE="
284 + !compute-only? ( || ( mysql postgres sqlite ) )
285 + compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )"
286 +
287 +CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]"
288 +DEPEND="
289 + >=dev-python/setuptools-16.0[${PYTHON_USEDEP}]
290 + ${CDEPEND}
291 + app-admin/sudo"
292 +
293 +RDEPEND="
294 + ${CDEPEND}
295 + compute-only? (
296 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
297 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
298 + )
299 + sqlite? (
300 + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
301 + <dev-python/sqlalchemy-1.1.0[sqlite,${PYTHON_USEDEP}]
302 + )
303 + mysql? (
304 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
305 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
306 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
307 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
308 + )
309 + postgres? (
310 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
311 + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
312 + <dev-python/sqlalchemy-1.1.0[${PYTHON_USEDEP}]
313 + )
314 + >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}]
315 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
316 + >=dev-python/jinja-2.8[${PYTHON_USEDEP}]
317 + !~dev-python/jinja-2.9.0[${PYTHON_USEDEP}]
318 + !~dev-python/jinja-2.9.1[${PYTHON_USEDEP}]
319 + !~dev-python/jinja-2.9.2[${PYTHON_USEDEP}]
320 + !~dev-python/jinja-2.9.3[${PYTHON_USEDEP}]
321 + !~dev-python/jinja-2.9.4[${PYTHON_USEDEP}]
322 + >=dev-python/keystonemiddleware-4.12.0[${PYTHON_USEDEP}]
323 + >=dev-python/lxml-2.3[${PYTHON_USEDEP}]
324 + !~dev-python/lxml-3.7.0[${PYTHON_USEDEP}]
325 + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
326 + !~dev-python/routes-2.0[${PYTHON_USEDEP}]
327 + !~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')]
328 + !~dev-python/routes-2.3[${PYTHON_USEDEP}]
329 + >=dev-python/cryptography-1.0[${PYTHON_USEDEP}]
330 + !~dev-python/cryptography-1.3.0[${PYTHON_USEDEP}]
331 + >=dev-python/webob-1.6.0[${PYTHON_USEDEP}]
332 + >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
333 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
334 + dev-python/paste[${PYTHON_USEDEP}]
335 + >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
336 + <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
337 + >=dev-python/sqlalchemy-migrate-0.9.6[${PYTHON_USEDEP}]
338 + >=dev-python/netaddr-0.7.13[${PYTHON_USEDEP}]
339 + !~dev-python/netaddr-0.7.16[${PYTHON_USEDEP}]
340 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
341 + >=dev-python/paramiko-2.0[${PYTHON_USEDEP}]
342 + >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
343 + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
344 + >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}]
345 + !~dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}]
346 + <dev-python/jsonschema-3.0.0[${PYTHON_USEDEP}]
347 + >=dev-python/python-cinderclient-1.6.0[${PYTHON_USEDEP}]
348 + !~dev-python/python-cinderclient-1.7.0[${PYTHON_USEDEP}]
349 + !~dev-python/python-cinderclient-1.7.1[${PYTHON_USEDEP}]
350 + >=dev-python/keystoneauth-2.18.0[${PYTHON_USEDEP}]
351 + >=dev-python/python-neutronclient-5.1.0[${PYTHON_USEDEP}]
352 + >=dev-python/python-glanceclient-2.5.0[${PYTHON_USEDEP}]
353 + >=dev-python/requests-2.10.0[${PYTHON_USEDEP}]
354 + !~dev-python/requests-2.12.2[${PYTHON_USEDEP}]
355 + >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
356 + >=dev-python/stevedore-1.17.1[${PYTHON_USEDEP}]
357 + >=dev-python/setuptools-16.0[${PYTHON_USEDEP}]
358 + !~dev-python/setuptools-24.0.0[${PYTHON_USEDEP}]
359 + >=dev-python/websockify-0.8.0[${PYTHON_USEDEP}]
360 + >=dev-python/oslo-cache-1.5.0[${PYTHON_USEDEP}]
361 + >=dev-python/oslo-concurrency-3.8.0[${PYTHON_USEDEP}]
362 + >=dev-python/oslo-config-3.14.0[${PYTHON_USEDEP}]
363 + !~dev-python/oslo-config-3.18.0[${PYTHON_USEDEP}]
364 + >=dev-python/oslo-context-2.9.0[${PYTHON_USEDEP}]
365 + >=dev-python/oslo-log-3.11.0[${PYTHON_USEDEP}]
366 + >=dev-python/oslo-reports-0.6.0[${PYTHON_USEDEP}]
367 + >=dev-python/oslo-serialization-1.10.0[${PYTHON_USEDEP}]
368 + >=dev-python/oslo-utils-3.18.0[${PYTHON_USEDEP}]
369 + >=dev-python/oslo-db-4.15.0[${PYTHON_USEDEP}]
370 + >=dev-python/oslo-rootwrap-5.0.0[${PYTHON_USEDEP}]
371 + >=dev-python/oslo-messaging-5.14.0[${PYTHON_USEDEP}]
372 + >=dev-python/oslo-policy-1.17.0[${PYTHON_USEDEP}]
373 + >=dev-python/oslo-privsep-1.9.0[${PYTHON_USEDEP}]
374 + >=dev-python/oslo-i18n-2.1.0[${PYTHON_USEDEP}]
375 + >=dev-python/oslo-service-1.10.0[${PYTHON_USEDEP}]
376 + >=dev-python/rfc3986-0.3.1[${PYTHON_USEDEP}]
377 + >=dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}]
378 + >=dev-python/psutil-3.0.1[${PYTHON_USEDEP}]
379 + >=dev-python/oslo-versionedobjects-1.17.0[${PYTHON_USEDEP}]
380 + >=dev-python/os-brick-1.8.0[${PYTHON_USEDEP}]
381 + >=dev-python/os-vif-1.4.0[${PYTHON_USEDEP}]
382 + >=dev-python/os-win-1.4.0[${PYTHON_USEDEP}]
383 + >=dev-python/castellan-0.4.0[${PYTHON_USEDEP}]
384 + >=dev-python/microversion-parse-0.1.2[${PYTHON_USEDEP}]
385 + >=dev-python/os-xenapi-0.1.1[${PYTHON_USEDEP}]
386 + dev-python/libvirt-python[${PYTHON_USEDEP}]
387 + app-emulation/libvirt[iscsi?]
388 + novncproxy? ( www-apps/novnc )
389 + sys-apps/iproute2
390 + openvswitch? ( net-misc/openvswitch )
391 + rabbitmq? ( net-misc/rabbitmq-server )
392 + memcached? (
393 + net-misc/memcached
394 + >=dev-python/python-memcached-1.58
395 + )
396 + sys-fs/sysfsutils
397 + sys-fs/multipath-tools
398 + net-misc/bridge-utils
399 + compute? (
400 + app-cdr/cdrtools
401 + sys-fs/dosfstools
402 + app-emulation/qemu
403 + )
404 + iscsi? (
405 + sys-fs/lsscsi
406 + >=sys-block/open-iscsi-2.0.873-r1
407 + )"
408 +
409 +#PATCHES=(
410 +#)
411 +
412 +pkg_setup() {
413 + linux-info_pkg_setup
414 + CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
415 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \
416 + NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \
417 + ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT"
418 + if linux_config_exists; then
419 + for module in ${CONFIG_CHECK_MODULES}; do
420 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
421 + done
422 + fi
423 + enewgroup nova
424 + enewuser nova -1 -1 /var/lib/nova nova
425 +}
426 +
427 +python_prepare_all() {
428 + sed -i '/^hacking/d' test-requirements.txt || die
429 + distutils-r1_python_prepare_all
430 +}
431 +
432 +python_install_all() {
433 + distutils-r1_python_install_all
434 +
435 + if use !compute-only; then
436 + for svc in api cert conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do
437 + newinitd "${FILESDIR}/nova.initd" "nova-${svc}"
438 + done
439 + fi
440 + use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute"
441 + use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy"
442 +
443 + diropts -m 0750 -o nova -g qemu
444 + dodir /var/log/nova /var/lib/nova/instances
445 + diropts -m 0750 -o nova -g nova
446 +
447 + insinto /etc/nova
448 + insopts -m 0640 -o nova -g nova
449 + newins "${DISTDIR}/nova.conf.sample-${PV}" "nova.conf.sample"
450 + doins "${FILESDIR}/nova-compute.conf"
451 + doins "${S}/etc/nova/"*
452 + # rootwrap filters
453 + insopts -m 0644
454 + insinto /etc/nova/rootwrap.d
455 + doins "etc/nova/rootwrap.d/api-metadata.filters"
456 + doins "etc/nova/rootwrap.d/compute.filters"
457 + doins "etc/nova/rootwrap.d/network.filters"
458 +
459 + # add sudoers definitions for user nova
460 + insinto /etc/sudoers.d/
461 + insopts -m 0600 -o root -g root
462 + doins "${FILESDIR}/nova-sudoers"
463 +
464 + if use iscsi ; then
465 + # Install udev rules for handle iscsi disk with right links under /dev
466 + udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules
467 +
468 + insinto /etc/nova/
469 + doins "${FILESDIR}/scsi-openscsi-link.sh"
470 + fi
471 +}
472 +
473 +python_install() {
474 + distutils-r1_python_install
475 + # copy migration conf file (not coppied on install via setup.py script)
476 + insinto "$(python_get_sitedir)/db/sqlalchemy/migrate_repo/"
477 + doins "nova/db/sqlalchemy/migrate_repo/migrate.cfg"
478 + # copy the CA cert dir (not coppied on install via setup.py script)
479 + cp -R "${S}/nova/CA" "${D}/$(python_get_sitedir)/nova/" || die "installing CA files failed"
480 +}
481 +
482 +pkg_postinst() {
483 + if use iscsi ; then
484 + elog "iscsid needs to be running if you want cinder to connect"
485 + fi
486 +}