cve: Use 'http-fetch/cached' instead of having custom caching.
[jackhill/guix/guix.git] / gnu / packages / openstack.scm
CommitLineData
7c4810a1
CR
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
264ae686 3;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
d4431993 4;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
7c4810a1
CR
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages openstack)
c8d7e063 22 #:use-module (gnu packages gnupg)
7c4810a1 23 #:use-module (gnu packages python)
1b2f753d 24 #:use-module (gnu packages python-web)
381000d7 25 #:use-module (gnu packages ssh)
c9e330d0 26 #:use-module (gnu packages tls)
d4431993 27 #:use-module (gnu packages version-control)
7c4810a1
CR
28 #:use-module (guix build-system python)
29 #:use-module (guix download)
30 #:use-module ((guix licenses)
31 #:select (asl2.0))
c9e330d0
EF
32 #:use-module (guix packages)
33 #:use-module (srfi srfi-1))
7c4810a1 34
f5a21dc4
CR
35(define-public python-bandit
36 (package
37 (name "python-bandit")
38 (version "0.13.2")
39 (source
40 (origin
41 (method url-fetch)
42 (uri (string-append
43 "https://pypi.python.org/packages/source/b/bandit/bandit-"
44 version ".tar.gz"))
45 (sha256
46 (base32
47 "03g3cflvrc99ncjd611iy5nnnscsc2vgnrx4mjaqyx8glbfw8y7g"))))
48 (build-system python-build-system)
49 (propagated-inputs
50 `(("python-appdirs" ,python-appdirs)
51 ("python-pyyaml" ,python-pyyaml)
52 ("python-six" ,python-six)
53 ("python-stevedore" ,python-stevedore)))
e7881f3d 54 (native-inputs
f5a21dc4 55 `(("python-pbr" ,python-pbr)
f5a21dc4
CR
56 ;; Tests
57 ("python-fixtures" ,python-fixtures)
58 ("python-mock" ,python-mock)
59 ("python-testrepository" ,python-testrepository)
60 ("python-testscenarios" ,python-testscenarios)
61 ("python-testtools" ,python-testtools)))
62 (home-page "https://wiki.openstack.org/wiki/Security/Projects/Bandit")
66e07664 63 (synopsis "Security oriented static analyser for python code")
f5a21dc4
CR
64 (description
65 "Bandit is a tool designed to find common security issues in Python code.
66To do this Bandit processes each file, builds an AST from it, and runs
67appropriate plugins against the AST nodes. Once Bandit has finished scanning
68all the files it generates a report.")
041b5932 69 (properties `((python2-variant . ,(delay python2-bandit))))
f5a21dc4
CR
70 (license asl2.0)))
71
72(define-public python2-bandit
041b5932
MB
73 (package (inherit (package-with-python2
74 (strip-python2-variant python-bandit)))
75 (arguments
76 `(#:python ,python-2
77 ;; FIXME: 'subunit.run discover: error: no such option: --list'
78 #:tests? #f))))
f5a21dc4 79
2713527e
CR
80(define-public python-debtcollector
81 (package
82 (name "python-debtcollector")
56c7ead2 83 (version "1.0.0")
2713527e
CR
84 (source
85 (origin
86 (method url-fetch)
56c7ead2 87 (uri (pypi-uri "debtcollector" version))
2713527e
CR
88 (sha256
89 (base32
56c7ead2 90 "0g4dfskaiy47rhsh4gh66l5vmdsrgq0qk68pl3ix1cj3ffvfndzv"))))
2713527e 91 (build-system python-build-system)
767c7e0e
MB
92 (arguments
93 '(#:tests? #f)) ;FIXME: Requires packaging python-doc8.
2713527e
CR
94 (propagated-inputs
95 `(("python-six" ,python-six)
96 ("python-wrapt" ,python-wrapt)))
e7881f3d 97 (native-inputs
2713527e
CR
98 `(("python-babel" ,python-babel)
99 ("python-pbr" ,python-pbr)
2713527e
CR
100 ;; Tests.
101 ("python-oslotest" ,python-oslotest)))
102 (home-page "http://www.openstack.org/")
103 (synopsis
104 "Find deprecated patterns and strategies in Python code")
105 (description
106 "This package provides a collection of Python deprecation patterns and
107strategies that help you collect your technical debt in a non-destructive
108manner.")
109 (license asl2.0)))
110
111(define-public python2-debtcollector
112 (package-with-python2 python-debtcollector))
113
2ac9ba6a
CR
114(define-public python-hacking
115 (package
116 (name "python-hacking")
3b664389 117 (version "0.13.0")
2ac9ba6a
CR
118 (source
119 (origin
120 (method url-fetch)
121 (uri (pypi-uri "hacking" version))
122 (sha256
123 (base32
3b664389 124 "1s1wq2sds6fjp8rwz31vkp33kjl9nyk5y2g2pri8shic75dr00h4"))))
2ac9ba6a
CR
125 (build-system python-build-system)
126 (propagated-inputs
3b664389
TGR
127 `(("python-flake8" ,python-flake8)
128 ("python-mccabe-0.2.1" ,python-mccabe-0.2.1)
129 ("python-pbr" ,python-pbr)
130 ("python-pep8-1.5.7" ,python-pep8-1.5.7)
131 ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
132 ("python-six" ,python-six)))
e7881f3d 133 (native-inputs
3b664389
TGR
134 `( ;; Tests
135 ("python-eventlet" ,python-eventlet)
136 ("python-mock" ,python-mock)
137 ("python-reno" ,python-reno)
138 ("python-testrepository" ,python-testrepository)
139 ("python-testscenarios" ,python-testscenarios)))
7bf837fd 140 (home-page "https://github.com/openstack-dev/hacking")
2ac9ba6a
CR
141 (synopsis "OpenStack hacking guideline enforcement")
142 (description
3b664389 143 "Python-hacking is a set of flake8 plugins that test and enforce the
2ac9ba6a
CR
144@uref{http://docs.openstack.org/developer/hacking/, OpenStack style
145guidelines}.")
146 (license asl2.0)))
147
148(define-public python2-hacking
149 (package-with-python2 python-hacking))
150
35f1ebeb
CR
151(define-public python-mox3
152 (package
153 (name "python-mox3")
f8f83e9d 154 (version "0.14.0")
35f1ebeb
CR
155 (source
156 (origin
157 (method url-fetch)
d4e817b1 158 (uri (pypi-uri "mox3" version))
35f1ebeb
CR
159 (sha256
160 (base32
f8f83e9d 161 "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx"))))
35f1ebeb 162 (build-system python-build-system)
ea8907c5 163 (arguments
376c4619 164 ;; TODO: Resolve dependency cycle and re-enable.
ea8907c5 165 '(#:tests? #f))
f8f83e9d 166 (native-inputs
35f1ebeb 167 `(("python-fixtures" ,python-fixtures)
376c4619 168 ; TODO re-add ("python-oslosphinx" ,python-oslosphinx)
35f1ebeb 169 ("python-pbr" ,python-pbr)
ea8907c5 170 ("python-sphinx" ,python-sphinx)
35f1ebeb
CR
171 ("python-testtools" ,python-testtools)))
172 (home-page "http://www.openstack.org/")
173 (synopsis "Mock object framework for Python")
174 (description
175 "Mox3 is an unofficial port of the Google mox framework
f8f83e9d
EF
176(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible
177with mox as possible, but small enhancements have been made. The library was
35f1ebeb
CR
178tested on Python version 3.2, 2.7 and 2.6.")
179 (license asl2.0)))
180
f8f83e9d
EF
181(define-public python2-mox3
182 (package-with-python2 python-mox3))
183
1edd421b
CR
184(define-public python-os-client-config
185 (package
186 (name "python-os-client-config")
a5ff52f8 187 (version "1.12.0")
1edd421b
CR
188 (source
189 (origin
190 (method url-fetch)
a5ff52f8 191 (uri (pypi-uri "os-client-config" version))
1edd421b
CR
192 (sha256
193 (base32
a5ff52f8 194 "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf"))))
1edd421b
CR
195 (build-system python-build-system)
196 (arguments
197 `(#:tests? #f)) ;; Circular dependency with python-oslotest
482d9591 198 (propagated-inputs
1edd421b 199 `(("python-appdirs" ,python-appdirs)
482d9591
HG
200 ("python-pyyaml" ,python-pyyaml)))
201 (native-inputs
202 `(("python-pbr" ,python-pbr)
1edd421b
CR
203 ("python-fixtures" ,python-fixtures)
204 ("python-mimeparse" ,python-mimeparse)
1edd421b 205 ("python-testrepository" ,python-testrepository)
1edd421b
CR
206 ("python-testscenarios" ,python-testscenarios)
207 ("python-testtools" ,python-testtools)))
208 (home-page "http://www.openstack.org/")
209 (synopsis
210 "OpenStack Client Configuration Library")
211 (description
212 "The OpenStack Client Configuration Library is a library for collecting
213 client configuration for using an OpenStack cloud in a consistent and
214 comprehensive manner.")
215 (license asl2.0)))
216
217(define-public python2-os-client-config
218 (package-with-python2 python-os-client-config))
219
2931f464
CR
220(define-public python-os-testr
221 (package
222 (name "python-os-testr")
43b53bbb 223 (version "0.8.0")
2931f464
CR
224 (source
225 (origin
226 (method url-fetch)
227 (uri (pypi-uri "os-testr" version))
228 (sha256
229 (base32
43b53bbb 230 "0mknd9hlmxmihr755gjkxyjp180380jajq5i3zm34q7y7bi62lss"))))
2931f464
CR
231 (build-system python-build-system)
232 (arguments
233 ;; os-testr uses itself to run the tests. It seems like pbr writes the
234 ;; exectuable in the virtualenv when using tox. Not sure how to do this
235 ;; when building the package. Skip the tests for now.
236 `(#:tests? #f))
237 (propagated-inputs
e116d100
HG
238 `(("python-subunit" ,python-subunit)))
239 (native-inputs
2931f464 240 `(("python-pbr" ,python-pbr)
e116d100
HG
241 ("python-testtools" ,python-testtools)
242 ("python-babel" ,python-babel)))
43b53bbb 243 (home-page "https://www.openstack.org/")
2931f464
CR
244 (synopsis "Testr wrapper to provide functionality for OpenStack projects")
245 (description
246 "Os-testr provides developers with a testr wrapper and an output filter
247 for subunit.")
248 (license asl2.0)))
249
250(define-public python2-os-testr
251 (package-with-python2 python-os-testr))
252
673d1a9d
CR
253(define-public python-stevedore
254 (package
255 (name "python-stevedore")
4b42bd94 256 (version "1.12.0")
673d1a9d
CR
257 (source
258 (origin
259 (method url-fetch)
2d531d4e 260 (uri (pypi-uri "stevedore" version))
673d1a9d
CR
261 (sha256
262 (base32
4b42bd94 263 "0999zvawaapzg6givjhn7vjscdwblcs73wf28wq1wb4g5mbb5phv"))))
673d1a9d
CR
264 (build-system python-build-system)
265 (propagated-inputs
266 `(("python-six" ,python-six)))
4b42bd94 267 (native-inputs
e116d100
HG
268 `(("python-pbr" ,python-pbr)
269 ;; Tests
130f68ec 270 ("python-discover" ,python-discover)
673d1a9d
CR
271 ("python-docutils" ,python-docutils)
272 ("python-mock" ,python-mock)
130f68ec 273 ("python-oslosphinx" ,python-oslosphinx)
673d1a9d 274 ("python-oslotest" ,python-oslotest)
130f68ec
MB
275 ("python-sphinx" ,python-sphinx)
276 ("python-testrepository" ,python-testrepository)))
673d1a9d
CR
277 (home-page "https://github.com/dreamhost/stevedore")
278 (synopsis "Manage dynamic plugins for Python applications")
279 (description
280 "Python makes loading code dynamically easy, allowing you to configure
4b42bd94 281and extend your application by discovering and loading extensions (\"plugins\")
673d1a9d 282at runtime. Many applications implement their own library for doing this,
4b42bd94 283using __import__ or importlib. Stevedore avoids creating yet another extension
673d1a9d
CR
284mechanism by building on top of setuptools entry points. The code for managing
285entry points tends to be repetitive, though, so stevedore provides manager
286classes for implementing common patterns for using dynamically loaded
287extensions.")
11a8767b 288 (properties `((python2-variant . ,(delay python2-stevedore))))
673d1a9d
CR
289 (license asl2.0)))
290
291(define-public python2-stevedore
11a8767b
MB
292 (package (inherit (package-with-python2
293 (strip-python2-variant python-stevedore)))
294 (arguments
295 `(#:python ,python-2
296 ;; FIXME: 'subunit.run discover: error: no such option: --list'
297 #:tests? #f))))
673d1a9d 298
465b61fc
CR
299(define-public python-tempest-lib
300 (package
301 (name "python-tempest-lib")
f0ad50af 302 (version "1.0.0")
465b61fc
CR
303 (source
304 (origin
305 (method url-fetch)
306 (uri (pypi-uri "tempest-lib" version))
307 (sha256
308 (base32
f0ad50af 309 "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5"))))
465b61fc
CR
310 (build-system python-build-system)
311 (arguments
f959495b
MB
312 `(#:tests? #f ; FIXME: Requires oslo.log >= 1.14.0.
313 #:phases
465b61fc
CR
314 (modify-phases %standard-phases
315 (add-before
316 'check 'pre-check
317 (lambda _
318 (substitute* "tempest_lib/tests/cli/test_execute.py"
319 (("/bin/ls") (which "ls"))))))))
320 (propagated-inputs
321 `(("python-fixtures" ,python-fixtures)
322 ("python-httplib2" ,python-httplib2)
323 ("python-iso8601" ,python-iso8601)
324 ("python-jsonschema" ,python-jsonschema)
325 ("python-oslo.log" ,python-oslo.log)
326 ("python-paramiko" ,python-paramiko)
327 ("python-pbr" ,python-pbr)
328 ("python-six" ,python-six)))
e7881f3d 329 (native-inputs
465b61fc
CR
330 `(("python-babel" ,python-babel)
331 ("python-mock" ,python-mock)
332 ("python-os-testr" ,python-os-testr)
f3b98f4f 333 ("python-oslotest" ,python-oslotest)))
f0ad50af 334 (home-page "https://www.openstack.org/")
465b61fc
CR
335 (synopsis "OpenStack functional testing library")
336 (description
337 "Tempest-lib is a functional testing library for OpenStack. It provides
338common features used in Tempest.")
339 (license asl2.0)))
340
341(define-public python2-tempest-lib
a14600ec 342 (package-with-python2 python-tempest-lib))
465b61fc 343
2053949a 344;; Packages from the Oslo library
ed56af06
CR
345(define-public python-oslo.config
346 (package
347 (name "python-oslo.config")
348 (version "2.4.0")
349 (source
350 (origin
351 (method url-fetch)
352 (uri (string-append
353 "https://pypi.python.org/packages/source/o/oslo.config/oslo.config-"
354 version
355 ".tar.gz"))
356 (sha256
357 (base32
358 "13r778jfb0fhna37c2pd1f2xipnsbd7zli7qhn96acrzymrwj5k1"))))
359 (build-system python-build-system)
d9184f4f
MB
360 (arguments
361 '(#:tests? #f)) ; FIXME: Requires packaging python-argparse.
ed56af06
CR
362 (propagated-inputs
363 `(("python-netaddr" ,python-netaddr)
364 ("python-six" ,python-six)
365 ("python-stevedore" ,python-stevedore)))
e7881f3d 366 (native-inputs
ed56af06 367 `(("python-pbr" ,python-pbr)
ed56af06
CR
368 ;; Tests
369 ("python-oslo.i18n" ,python-oslo.i18n)
370 ("python-mock" ,python-mock)
371 ("python-oslotest" ,python-oslotest)
372 ("python-testscenarios" ,python-testscenarios)))
373 (home-page "https://launchpad.net/oslo")
374 (synopsis "Oslo Configuration API")
375 (description
376 "The Oslo configuration API supports parsing command line arguments and
377.ini style configuration files.")
378 (license asl2.0)))
379
380(define-public python2-oslo.config
381 (package-with-python2 python-oslo.config))
382
c7c7a936
CR
383(define-public python-oslo.context
384 (package
385 (name "python-oslo.context")
e9af5adf 386 (version "1.0.0")
c7c7a936
CR
387 (source
388 (origin
389 (method url-fetch)
e9af5adf 390 (uri (pypi-uri "oslo.context" version))
c7c7a936
CR
391 (sha256
392 (base32
e9af5adf 393 "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3"))))
c7c7a936 394 (build-system python-build-system)
f30e5336
MB
395 (arguments
396 '(#:tests? #f)) ; FIXME: Requires python-mock >= 1.2.
e7881f3d 397 (native-inputs
c7c7a936
CR
398 `(("python-babel" ,python-babel)
399 ("python-pbr" ,python-pbr)
c7c7a936 400 ;; Tests.
f30e5336
MB
401 ("python-coverage" ,python-coverage)
402 ("python-hacking" ,python-hacking)
403 ("python-mock" ,python-mock)
404 ("python-os-client-config" ,python-os-client-config)
405 ("python-oslotest" ,python-oslotest)
406 ("python-oslosphinx" ,python-oslosphinx)
407 ("python-sphinx" ,python-sphinx)))
c7c7a936
CR
408 (home-page "http://launchpad.net/oslo")
409 (synopsis "Oslo context library")
410 (description
411 "The Oslo context library has helpers to maintain useful information
412about a request context. The request context is usually populated in the WSGI
413pipeline and used by various modules such as logging.")
414 (license asl2.0)))
415
416(define-public python2-oslo.context
417 (package-with-python2 python-oslo.context))
418
8531b326
CR
419(define-public python-oslo.i18n
420 (package
421 (name "python-oslo.i18n")
5788b4b6 422 (version "3.0.0")
8531b326
CR
423 (source
424 (origin
425 (method url-fetch)
5788b4b6 426 (uri (pypi-uri "oslo.i18n" version))
8531b326
CR
427 (sha256
428 (base32
5788b4b6 429 "0bpb1c20sm8my650gl824nzaip83bfn8hr91s65k5ncmyh8hb6pl"))))
8531b326 430 (build-system python-build-system)
bb56d9a1
MB
431 (arguments
432 '(#:tests? #f)) ; FIXME: Circular dependency on python-oslo.config.
8531b326
CR
433 (propagated-inputs
434 `(("python-babel" ,python-babel)
435 ("python-six" ,python-six)))
e7881f3d 436 (native-inputs
8531b326 437 `(("python-pbr" ,python-pbr)
8531b326
CR
438 ;; Tests
439 ("python-mock" ,python-mock)
440 ("python-mox3" ,python-mox3)
441 ("python-oslotest" ,python-oslotest)
442 ("python-testscenarios" ,python-testscenarios)))
443 (home-page "http://launchpad.net/oslo")
444 (synopsis "Oslo internationalization (i18n) library")
445 (description
446 "The oslo.i18n library contain utilities for working with
447internationalization (i18n) features, especially translation for text strings
448in an application or library.")
449 (license asl2.0)))
450
451(define-public python2-oslo.i18n
452 (package-with-python2 python-oslo.i18n))
453
aee6412a
CR
454(define-public python-oslo.log
455 (package
456 (name "python-oslo.log")
457 (version "1.6.0")
458 (source
459 (origin
460 (method url-fetch)
461 (uri (string-append
462 "https://pypi.python.org/packages/source/o/oslo.log/oslo.log-"
463 version
464 ".tar.gz"))
465 (sha256
466 (base32
467 "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z"))))
468 (build-system python-build-system)
73b494a1
MB
469 (arguments
470 '(#:tests? #f)) ; FIXME: Requires oslo.utils >= 3.2.0.
aee6412a
CR
471 (propagated-inputs
472 `(("python-debtcollector" ,python-debtcollector)
473 ("python-oslo.config" ,python-oslo.config)
474 ("python-oslo.context" ,python-oslo.context)
475 ("python-oslo.i18n" ,python-oslo.i18n)
476 ("python-oslo.utils" ,python-oslo.utils)
477 ("python-oslo.serialization" ,python-oslo.serialization)
478 ("python-six" ,python-six)))
e7881f3d 479 (native-inputs
aee6412a
CR
480 `(("python-babel" ,python-babel)
481 ("python-iso8601" ,python-iso8601)
482 ("python-mock" ,python-mock)
483 ("python-oslotest" ,python-oslotest)
f3b98f4f 484 ("python-pbr" ,python-pbr)))
aee6412a
CR
485 (home-page "http://launchpad.net/oslo")
486 (synopsis "Python logging library of the Oslo project")
487 (description
488 "The oslo.log (logging) configuration library provides standardized
489configuration for all OpenStack projects. It also provides custom formatters,
490handlers and support for context specific logging (like resource id’s etc).")
491 (license asl2.0)))
492
493(define-public python2-oslo.log
494 (package-with-python2 python-oslo.log))
495
5702efe3
CR
496(define-public python-oslo.serialization
497 (package
498 (name "python-oslo.serialization")
f66bb273 499 (version "2.2.0")
5702efe3
CR
500 (source
501 (origin
502 (method url-fetch)
278c0efd 503 (uri (pypi-uri "oslo.serialization" version))
5702efe3
CR
504 (sha256
505 (base32
f66bb273 506 "00s03krhf833gs76aw5ns32w9m1i4hx6x6d9g82m0j5wyqk0sci4"))))
5702efe3 507 (build-system python-build-system)
5ae31b54
MB
508 (arguments
509 '(#:tests? #f)) ; FIXME: Requires python-oslo.utils >= 3.2.0.
5702efe3
CR
510 (propagated-inputs
511 `(("python-iso8601" ,python-iso8601)
512 ("python-netaddr" ,python-netaddr)
513 ("python-oslo.utils" ,python-oslo.utils)
514 ("python-simplejson" ,python-simplejson)
515 ("python-six" ,python-six)
516 ("python-pytz" ,python-pytz)))
e7881f3d 517 (native-inputs
5702efe3
CR
518 `(("python-babel" ,python-babel)
519 ("python-pbr" ,python-pbr)
5702efe3
CR
520 ;; Tests.
521 ("python-mock" ,python-mock)
522 ("python-oslo.i18n" ,python-oslo.i18n)
523 ("python-oslotest" ,python-oslotest)))
524 (home-page "http://launchpad.net/oslo")
525 (synopsis "Oslo serialization library")
526 (description
527 "The oslo.serialization library provides support for representing objects
528in transmittable and storable formats, such as JSON and MessagePack.")
529 (license asl2.0)))
530
531(define-public python2-oslo.serialization
532 (package-with-python2 python-oslo.serialization))
533
c8d7e063
DM
534(define-public python-reno
535 (package
536 (name "python-reno")
537 (version "2.0.3")
538 (source
539 (origin
540 (method url-fetch)
541 (uri (pypi-uri "reno" version))
542 (sha256
543 (base32 "1i2wnn5fnm3jm5774pahg000q0lma5i913hml91bbbm2mybphndd"))))
544 (build-system python-build-system)
545 (arguments
546 `(#:phases
547 (modify-phases %standard-phases
548 (add-before 'check 'init-git
549 (lambda _
550 ;; reno expects a git repo
551 (zero? (system* "git" "init")))))))
552 (propagated-inputs
553 `(("python-babel" ,python-babel)
554 ("python-dulwich" ,python-dulwich)
555 ("python-pyyaml" ,python-pyyaml)
556 ("python-six" ,python-six)))
557 (native-inputs
558 `(("python-testtools" ,python-testtools)
559 ("python-pbr" ,python-pbr)
560 ("python-testscenarios" ,python-testscenarios)
561 ("python-testrepository" ,python-testrepository)
562 ("python-mock" ,python-mock)
563 ("python-oslotest" ,python-oslotest)
564 ("gnupg" ,gnupg)
565 ("git" ,git)))
566 (home-page "http://docs.openstack.org/developer/reno/")
567 (synopsis "Release notes manager")
568 (description "Reno is a tool for storing release notes in a git repository
569and building documentation from them.")
d6caebc4 570 (properties `((python2-variant . ,(delay python2-reno))))
c8d7e063
DM
571 (license asl2.0)))
572
573(define-public python2-reno
d6caebc4
MB
574 (package (inherit (package-with-python2
575 (strip-python2-variant python-reno)))
576 (arguments
577 `(#:python ,python-2
578 ;; FIXME: 'subunit.run discover: error: no such option: --list'
579 #:tests? #f))))
c8d7e063 580
f4c7dc55
CR
581(define-public python-oslosphinx
582 (package
583 (name "python-oslosphinx")
9c4810b4 584 (version "4.10.0")
f4c7dc55
CR
585 (source
586 (origin
587 (method url-fetch)
588 (uri (pypi-uri "oslosphinx" version))
589 (sha256
590 (base32
9c4810b4 591 "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl"))))
f4c7dc55 592 (build-system python-build-system)
23015b4f 593 (arguments
27693b1e
DM
594 `(#:phases
595 (modify-phases %standard-phases
596 (replace 'check
597 (lambda _
598 ;; Note: Upstream tests would have also built the release notes.
599 ;; That only would work if we were in a git checkout.
600 ;; Therefore, we don't do it here.
601 (zero? (system* "python" "setup.py" "build_sphinx")))))))
f4c7dc55
CR
602 (propagated-inputs
603 `(("python-requests" ,python-requests)))
e7881f3d 604 (native-inputs
f4c7dc55
CR
605 `(("python-pbr" ,python-pbr)
606 ("python-docutils" ,python-docutils)
607 ("python-hacking" ,python-hacking)
f4c7dc55
CR
608 ("python-sphinx" ,python-sphinx)))
609 (home-page "http://www.openstack.org/")
610 (synopsis "OpenStack sphinx extensions and theme")
611 (description
612 "This package provides themes and extensions for Sphinx documentation
613from the OpenStack project.")
614 (license asl2.0)))
615
616(define-public python2-oslosphinx
8ad4ae20 617 (package-with-python2 python-oslosphinx))
f4c7dc55 618
2053949a
CR
619(define-public python-oslotest
620 (package
621 (name "python-oslotest")
5a4849e1 622 (version "1.10.0")
2053949a
CR
623 (source
624 (origin
625 (method url-fetch)
626 (uri (string-append
627 "https://pypi.python.org/packages/source/o/oslotest/oslotest-"
628 version
629 ".tar.gz"))
630 (sha256
631 (base32
5a4849e1 632 "0l3ny48ddz5xbf0v4r0jv1yhbdzinc2vy0lybhdkmx3xy0b886fs"))))
2053949a
CR
633 (build-system python-build-system)
634 (propagated-inputs
635 `(("python-fixtures" ,python-fixtures)
636 ("python-mock" ,python-mock)
39d3f2ed 637 ("python-mox3" ,python-mox3)
2053949a 638 ("python-six" ,python-six)))
e7881f3d 639 (native-inputs
2053949a 640 `(("python-pbr" ,python-pbr)
2053949a 641 ("python-os-client-config" ,python-os-client-config)
2053949a
CR
642 ("python-subunit" ,python-subunit)
643 ("python-testrepository" ,python-testrepository)
644 ("python-testscenarios" ,python-testscenarios)
645 ("python-testtools" ,python-testtools)))
646 (home-page "http://launchpad.net/oslo")
647 (synopsis "Oslo test framework")
648 (description
649 "The Oslo Test framework provides common fixtures, support for debugging,
650and better support for mocking results.")
ec867b86 651 (properties `((python2-variant . ,(delay python2-oslotest))))
2053949a
CR
652 (license asl2.0)))
653
654(define-public python2-oslotest
ec867b86
MB
655 (package (inherit (package-with-python2
656 (strip-python2-variant python-oslotest)))
657 (arguments
658 `(#:python ,python-2
659 ;; FIXME: 'subunit.run discover: error: no such option: --list'
660 #:tests? #f))))
27cc9f25
CR
661
662(define-public python-oslo.utils
663 (package
664 (name "python-oslo.utils")
94ce6b49 665 (version "3.0.0")
27cc9f25
CR
666 (source
667 (origin
668 (method url-fetch)
94ce6b49 669 (uri (pypi-uri "oslo.utils" version))
27cc9f25
CR
670 (sha256
671 (base32
94ce6b49 672 "1c4jrbvfs4hs37fics8frqlyhmsv7v92ncv2cpbm0av9x0ic6pnj"))
27cc9f25
CR
673 (snippet
674 '(begin
675 ;; FIXME: setuptools fails to import this file during the test
676 ;; phase.
677 (delete-file "oslo_utils/tests/test_netutils.py")))))
678 (build-system python-build-system)
ad59ebda
MB
679 (arguments
680 '(#:tests? #f)) ; FIXME: Requires oslo.config >= 2.7.0.
27cc9f25
CR
681 (propagated-inputs
682 `(("python-debtcollector" ,python-debtcollector)
683 ("python-oslo.i18n" ,python-oslo.i18n)
684 ("python-iso8601" ,python-iso8601)
685 ("python-monotonic" ,python-monotonic)
686 ("python-netaddr" ,python-netaddr)
687 ("python-netifaces" ,python-netifaces)
688 ("python-pytz" ,python-pytz)
689 ("python-six" ,python-six)))
e7881f3d 690 (native-inputs
27cc9f25
CR
691 `(("python-babel" ,python-babel)
692 ("python-pbr" ,python-pbr)
27cc9f25 693 ;; Tests.
ad59ebda
MB
694 ("python-bandit" ,python-bandit)
695 ("python-oslo.config" ,python-oslo.config)
27cc9f25
CR
696 ("python-oslotest" ,python-oslotest)
697 ("python-mock" ,python-mock)
698 ("python-mox3" ,python-mox3)
699 ("python-testscenarios" ,python-testscenarios)))
700 (home-page "http://launchpad.net/oslo")
701 (synopsis "Oslo utility library")
702 (description
703 "The @code{oslo.utils} library provides support for common utility type
704functions, such as encoding, exception handling, string manipulation, and time
705handling.")
706 (license asl2.0)))
707
708(define-public python2-oslo.utils
709 (package-with-python2 python-oslo.utils))
c9e330d0
EF
710
711(define-public python-keystoneclient
712 (package
713 (name "python-keystoneclient")
714 (version "1.8.1")
715 (source
716 (origin
717 (method url-fetch)
718 (uri (pypi-uri "python-keystoneclient" version))
719 (sha256
720 (base32
721 "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
722 (build-system python-build-system)
bfba0836
MB
723 (arguments
724 '(#:tests? #f)) ; FIXME: Many tests are failing.
c9e330d0 725 (native-inputs
f3b98f4f 726 `(("python-sphinx" ,python-sphinx)
c9e330d0
EF
727 ;; and some packages for the tests
728 ("openssl" ,openssl)
729 ("python-coverage" ,python-coverage)
730 ("python-discover" ,python-discover)
731 ("python-fixtures" ,python-fixtures)
732 ("python-hacking" ,python-hacking)
733 ("python-keyring" ,python-keyring)
734 ("python-lxml" ,python-lxml)
735 ("python-mock" ,python-mock)
736 ("python-mox3" ,python-mox3)
737 ("python-oauthlib" ,python-oauthlib)
738 ("python-oslosphinx" ,python-oslosphinx)
739 ("python-oslotest" ,python-oslotest)
740 ("python-pycrypto" ,python-pycrypto)
741 ("python-requests-mock" ,python-requests-mock)
742 ("python-temptest-lib" ,python-tempest-lib)
743 ("python-testrepository" ,python-testrepository)
744 ("python-testresources" ,python-testresources)
745 ("python-testtools" ,python-testtools)
746 ("python-webob" ,python-webob)))
747 (propagated-inputs
748 `(("python-babel" ,python-babel)
749 ("python-debtcollector" ,python-debtcollector)
750 ("python-iso8601" ,python-iso8601)
751 ("python-netaddr" ,python-netaddr)
752 ("python-oslo.config" ,python-oslo.config)
753 ("python-oslo.i18n" ,python-oslo.i18n)
754 ("python-oslo.serialization" ,python-oslo.serialization)
755 ("python-oslo.utils" ,python-oslo.utils)
756 ("python-pbr" ,python-pbr)
757 ("python-prettytable" ,python-prettytable)
758 ("python-requests" ,python-requests)
759 ("python-six" ,python-six)
760 ("python-stevedore" ,python-stevedore)))
761 (home-page "http://www.openstack.org/")
762 (synopsis "Client Library for OpenStack Identity")
763 (description
764 "Python-keystoneclient is the identity service used by OpenStack for
765authentication (authN) and high-level authorization (authZ). It currently
766supports token-based authN with user/service authZ, and is scalable to support
767OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses
768SQLite for its identity store database, with the option to connect to external
769LDAP.")
770 (license asl2.0)))
771
772(define-public python2-keystoneclient
773 (let ((keystoneclient (package-with-python2 python-keystoneclient)))
774 (package (inherit keystoneclient)
264ae686
EF
775 (propagated-inputs
776 `(("python2-requests" ,python2-requests)
777 ,@(alist-delete "python-requests"
778 (package-propagated-inputs keystoneclient))))
c9e330d0
EF
779 (native-inputs
780 `(("python2-oauthlib" ,python2-oauthlib)
264ae686
EF
781 ("python2-oslosphinx" ,python2-oslosphinx)
782 ("python2-requests-mock" ,python2-requests-mock)
783 ("python2-tempest-lib" ,python2-tempest-lib)
784 ,@(fold alist-delete (package-native-inputs keystoneclient)
785 '("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib")))))))
8f0cc2ff
EF
786
787(define-public python-swiftclient
788 (package
789 (name "python-swiftclient")
790 (version "2.6.0")
791 (source
792 (origin
793 (method url-fetch)
794 (uri (pypi-uri "python-swiftclient" version))
795 (sha256
796 (base32
797 "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p"))))
798 (build-system python-build-system)
799 (native-inputs
b3546174 800 `(("python-pbr" ,python-pbr)
8f0cc2ff
EF
801 ("python-sphinx" ,python-sphinx)
802 ;; The folloing packages are needed for the tests.
803 ("python-coverage" ,python-coverage)
804 ("python-discover" ,python-discover)
805 ("python-hacking" ,python-hacking)
806 ("python-mock" ,python-mock)
807 ("python-oslosphinx" ,python-oslosphinx)
808 ("python-keystoneclient" ,python-keystoneclient)
809 ("python-testrepository" ,python-testrepository)
810 ("python-testtools" ,python-testtools)))
811 (propagated-inputs
812 `(("python-requests" ,python-requests)
813 ("python-six" ,python-six)))
814 (home-page "http://www.openstack.org/")
815 (synopsis "OpenStack Object Storage API Client Library")
816 (description
817 "OpenStack Object Storage (code-named Swift) creates redundant, scalable
818object storage using clusters of standardized servers to store petabytes of
819accessible data. It is not a file system or real-time data storage system, but
820rather a long-term storage system for a more permanent type of static data that
821can be retrieved, leveraged, and then updated if necessary. Primary examples of
822data that best fit this type of storage model are virtual machine images, photo
823storage, email storage and backup archiving. Having no central \"brain\" or
824master point of control provides greater scalability, redundancy and
825permanence.")
826 (license asl2.0)))
827
828(define-public python2-swiftclient
829 (let ((swiftclient (package-with-python2 python-swiftclient)))
830 (package (inherit swiftclient)
e1f2e190
MB
831 (arguments
832 `(#:python ,python-2
833 ;; FIXME: subunit.run discover: error: no such option: --list
834 #:tests? #f))
8f0cc2ff
EF
835 (propagated-inputs
836 `(("python2-futures" ,python2-futures)
264ae686
EF
837 ("python2-requests" ,python2-requests)
838 ,@(alist-delete "python-requests"
839 (package-propagated-inputs swiftclient))))
8f0cc2ff
EF
840 (native-inputs
841 `(("python2-keystoneclient" ,python2-keystoneclient)
264ae686
EF
842 ("python2-oslosphinx" ,python2-oslosphinx)
843 ,@(fold alist-delete (package-native-inputs swiftclient)
844 '("python-keystoneclient" "python-oslosphinx")))))))
d4431993
CL
845
846(define-public python-git-review
847 (package
848 (name "python-git-review")
849 (version "1.25.0")
850 (source
851 (origin
852 (method url-fetch)
853 (uri (pypi-uri "git-review" version))
854 (sha256
855 (base32
856 "07d1jn9ryff5j5ic6qj5pbk10m1ccmpllj0wyalrcms1q9yhlzh8"))))
857 (build-system python-build-system)
381000d7
CL
858 (arguments
859 '(#:tests? #f ; tests require a running Gerrit server
860 #:phases
861 (modify-phases %standard-phases
862 (add-after 'install 'wrap-program
863 (lambda* (#:key inputs outputs #:allow-other-keys)
864 (let* ((out (assoc-ref outputs "out"))
865 (git (assoc-ref inputs "git"))
866 (openssh (assoc-ref inputs "openssh")))
867 (wrap-program (string-append out "/bin/git-review")
868 `("PATH" ":" prefix
869 ,(map (lambda (dir)
870 (string-append dir "/bin"))
871 (list git openssh))))))))))
d4431993
CL
872 (native-inputs
873 `(("python-pbr" ,python-pbr)))
482d9591
HG
874 (propagated-inputs
875 `(("python-requests" ,python-requests)))
d4431993 876 (inputs
482d9591 877 `(("git" ,git)
381000d7 878 ("openssh" ,openssh)))
d4431993
CL
879 (home-page "http://docs.openstack.org/infra/git-review/")
880 (synopsis "Command-line tool for Gerrit")
881 (description
882 "Git-review is a command-line tool that helps submitting Git branches to
883Gerrit for review, or fetching existing ones.")
884 (license asl2.0)))
885
886(define-public python2-git-review
5c31f4aa 887 (package-with-python2 python-git-review))