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