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