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