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