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