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