projects/guix·blob version-1.4.0 · refs

1089 lines · 40.2 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Cyril Roelandt <[email protected]>
3;;; Copyright © 2015, 2016 Efraim Flashner <[email protected]>
4;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <[email protected]>
5;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <[email protected]>
6;;; Copyright © 2018, 2022 Marius Bakke <[email protected]>
7;;; Copyright © 2020, 2021 Ricardo Wurmus <[email protected]>
8;;; Copyright © 2020 Maxim Cournoyer <[email protected]>
9;;; Copyright © 2022 Tanguy Le Carrour <[email protected]>
10;;; Copyright © 2022 Hartmut Goebel <[email protected]>
11;;;
12;;; This file is part of GNU Guix.
13;;;
14;;; GNU Guix is free software; you can redistribute it and/or modify it
15;;; under the terms of the GNU General Public License as published by
16;;; the Free Software Foundation; either version 3 of the License, or (at
17;;; your option) any later version.
18;;;
19;;; GNU Guix is distributed in the hope that it will be useful, but
20;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;;; GNU General Public License for more details.
23;;;
24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
27(define-module (gnu packages openstack)
28 #:use-module (gnu packages)
29 #:use-module (gnu packages check)
30 #:use-module (gnu packages databases)
31 #:use-module (gnu packages gnupg)
32 #:use-module (gnu packages monitoring)
33 #:use-module (gnu packages python)
34 #:use-module (gnu packages python-build)
35 #:use-module (gnu packages python-check)
36 #:use-module (gnu packages python-crypto)
37 #:use-module (gnu packages python-web)
38 #:use-module (gnu packages python-xyz)
39 #:use-module (gnu packages sphinx)
40 #:use-module (gnu packages ssh)
41 #:use-module (gnu packages time)
42 #:use-module (gnu packages tls)
43 #:use-module (gnu packages version-control)
44 #:use-module (gnu packages xml)
45 #:use-module (guix build-system python)
46 #:use-module (guix download)
47 #:use-module ((guix licenses)
48 #:select (asl2.0))
49 #:use-module (guix packages)
50 #:use-module (srfi srfi-1))
51
52(define-public python-bandit
53 (package
54 (name "python-bandit")
55 (version "1.7.4")
56 (source
57 (origin
58 (method url-fetch)
59 (uri (pypi-uri "bandit" version))
60 (sha256
61 (base32
62 "1lkvf5ffdqa9504mm5fd9vvq0q5wdyqbkm32i4rswys1fg2shqrd"))))
63 (build-system python-build-system)
64 (arguments
65 ;; The tests are disabled to avoid a circular dependency with
66 ;; python-stestr.
67 `(#:tests? #f))
68 (propagated-inputs
69 (list python-gitpython python-pyyaml python-six python-stevedore))
70 (native-inputs
71 (list python-pbr))
72 (home-page "https://github.com/PyCQA/bandit")
73 (synopsis "Security oriented static analyser for python code")
74 (description "Bandit is a tool designed to find common security issues in
75Python code. To do this Bandit processes each file, builds an AST from it,
76and runs appropriate plugins against the AST nodes. Once Bandit has finished
77scanning all the files it generates a report.")
78 (license asl2.0)))
79
80(define-public python-cliff
81 (package
82 (name "python-cliff")
83 (version "3.10.1")
84 (source
85 (origin
86 (method url-fetch)
87 (uri (pypi-uri "cliff" version))
88 (sha256
89 (base32
90 "180059m5ky3hlw2m9fszh4h2ykja8zl7ql5dsxjijiv47hzywnh4"))))
91 (build-system python-build-system)
92 (arguments
93 `(#:tests? #f))
94 (native-inputs
95 (list python-pbr))
96 (propagated-inputs
97 (list python-autopage
98 python-cmd2
99 python-prettytable
100 python-pyparsing
101 python-pyyaml
102 python-stevedore))
103 (home-page "https://opendev.org/openstack/cliff")
104 (synopsis "Framework for building command line programs")
105 (description "The @code{cliff} framework allows creating multi-level
106commands such as those of @command{subversion} and @command{git}, where the
107main program handles some basic argument parsing and then invokes a
108sub-command to do the work. It uses plugins to define sub-commands, output
109formatters, and other extensions.")
110 (license asl2.0)))
111
112(define-public python-debtcollector
113 (package
114 (name "python-debtcollector")
115 (version "1.19.0")
116 (source
117 (origin
118 (method url-fetch)
119 (uri (pypi-uri "debtcollector" version))
120 (sha256
121 (base32
122 "06c7vyn184y9f0lsrwaz13aq63hdz5fjrd191b8nifx6acsni42f"))))
123 (build-system python-build-system)
124 (propagated-inputs
125 (list python-pbr python-six python-wrapt))
126 (native-inputs
127 (list ;; Tests.
128 python-subunit python-testrepository python-testtools))
129 (home-page "https://www.openstack.org/")
130 (synopsis
131 "Find deprecated patterns and strategies in Python code")
132 (description
133 "This package provides a collection of Python deprecation patterns and
134strategies that help you collect your technical debt in a non-destructive
135manner.")
136 (license asl2.0)))
137
138(define-public python-hacking
139 (package
140 (name "python-hacking")
141 (version "4.1.0")
142 (source
143 (origin
144 (method url-fetch)
145 (uri (pypi-uri "hacking" version))
146 (sha256
147 (base32
148 "0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m"))))
149 (build-system python-build-system)
150 (propagated-inputs
151 (list python-flake8-3.8))
152 (native-inputs
153 (list ;; Tests
154 python-coverage
155 python-ddt
156 python-dnspython
157 python-fixtures
158 python-eventlet
159 python-mock
160 python-monotonic
161 python-subunit
162 python-stestr
163 python-testscenarios
164 python-testtools))
165 (home-page "https://github.com/openstack-dev/hacking")
166 (synopsis "OpenStack hacking guideline enforcement")
167 (description
168 "Python-hacking is a set of flake8 plugins that test and enforce the
169@uref{http://docs.openstack.org/developer/hacking/, OpenStack style
170guidelines}.")
171 (license asl2.0)))
172
173(define-public python-mox3
174 (package
175 (name "python-mox3")
176 (version "0.24.0")
177 (source
178 (origin
179 (method url-fetch)
180 (uri (pypi-uri "mox3" version))
181 (patches (search-patches "python-mox3-python3.6-compat.patch"))
182 (sha256
183 (base32
184 "0w58adwv7q9wzvmq9mlrk2asfk73myq9fpwy7mjkzsz3baa95zf5"))))
185 (build-system python-build-system)
186 (propagated-inputs
187 (list python-fixtures python-pbr))
188 (native-inputs
189 (list python-openstackdocstheme python-sphinx python-subunit
190 python-testrepository 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/,
195Google mox framework} to Python 3. It was meant to be as compatible
196with mox as possible, but small enhancements have been made.")
197 (license asl2.0)))
198
199(define-public python-openstackdocstheme
200 (package
201 (name "python-openstackdocstheme")
202 (version "1.18.1")
203 (source (origin
204 (method url-fetch)
205 (uri (pypi-uri "openstackdocstheme" version))
206 (sha256
207 (base32
208 "1ki5204rjdqjvr8xr9w2qc1z6b6d2i5jas0i70xzkf9njlzjzv2r"))))
209 (build-system python-build-system)
210 (arguments
211 ;; FIXME: Tests require an old version of python-hacking, which in
212 ;; turn depends on mox3 which depends on this package.
213 `(#:tests? #f))
214 (propagated-inputs
215 (list python-dulwich python-pbr))
216 (native-inputs
217 (list python-sphinx))
218 (home-page "https://docs.openstack.org/openstackdocstheme/latest/")
219 (synopsis "OpenStack Docs Theme")
220 (description
221 "This package provides themes and extensions for Sphinx for publishing
222to docs.openstack.org and developer.openstack.org.")
223 (license asl2.0)))
224
225(define-public python-os-client-config
226 (package
227 (name "python-os-client-config")
228 (version "1.12.0")
229 (source
230 (origin
231 (method url-fetch)
232 (uri (pypi-uri "os-client-config" version))
233 (sha256
234 (base32
235 "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf"))))
236 (build-system python-build-system)
237 (arguments
238 `(#:tests? #f)) ;; Circular dependency with python-oslotest
239 (propagated-inputs
240 (list python-appdirs python-pyyaml))
241 (native-inputs
242 (list python-pbr
243 python-fixtures
244 python-mimeparse
245 python-testrepository
246 python-testscenarios
247 python-testtools))
248 (home-page "https://www.openstack.org/")
249 (synopsis
250 "OpenStack Client Configuration Library")
251 (description
252 "The OpenStack Client Configuration Library is a library for collecting
253 client configuration for using an OpenStack cloud in a consistent and
254 comprehensive manner.")
255 (license asl2.0)))
256
257(define-public python-os-service-types
258 (package
259 (name "python-os-service-types")
260 (version "1.7.0")
261 (source (origin
262 (method url-fetch)
263 (uri (pypi-uri "os-service-types" version))
264 (sha256
265 (base32
266 "0v4chwr5jykkvkv4w7iaaic7gb06j6ziw7xrjlwkcf92m2ch501i"))))
267 (build-system python-build-system)
268 (arguments
269 ;; The tests are disabled to avoid a circular dependency with
270 ;; python-keystoneauth1.
271 `(#:tests? #f))
272 (native-inputs (list python-pbr))
273 (home-page "https://docs.openstack.org/os-service-types/latest/")
274 (synopsis "Library for consuming OpenStack Service Types Authority data")
275 (description "The @emph{OpenStack Service Types Authority} contains
276information about officiag OpenStack services and their historical
277service-type aliases. The data is in JSON and the latest data should always
278be used. This simple library exists to allow for easy consumption of the
279data, along with a built-in version of the data to use in case network access
280is for some reason not possible and local caching of the fetched data.")
281 (license asl2.0)))
282
283(define-public python-os-testr
284 (package
285 (name "python-os-testr")
286 (version "2.0.1")
287 (source
288 (origin
289 (method url-fetch)
290 (uri (pypi-uri "os-testr" version))
291 (sha256
292 (base32
293 "10xaqg3wxly13652hdvh9c69y4s12ird0ircffya3kvpl5pky0pz"))))
294 (build-system python-build-system)
295 (arguments
296 ;; os-testr uses itself to run the tests. It seems like pbr writes the
297 ;; exectuable in the virtualenv when using tox. Not sure how to do this
298 ;; when building the package. Skip the tests for now.
299 `(#:tests? #f))
300 (propagated-inputs
301 (list python-stestr))
302 (native-inputs
303 (list python-babel python-pbr python-testrepository python-testtools))
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 python-stevedore
312 (package
313 (name "python-stevedore")
314 (version "3.2.2")
315 (source
316 (origin
317 (method url-fetch)
318 (uri (pypi-uri "stevedore" version))
319 (sha256
320 (base32
321 "1w11lm293afzb73iq0ba9wnmr2rjwymnhr92km4a4xrs7a5qcigq"))))
322 (build-system python-build-system)
323 (arguments
324 ;; The tests are disabled to avoid a circular dependency with
325 ;; python-stestr.
326 `(#:tests? #f
327 #:phases
328 (modify-phases %standard-phases
329 (add-after 'unpack 'use-pbr-3
330 (lambda _
331 (substitute* '("setup.py"
332 "requirements.txt")
333 (("pbr!=2.1.0,>=2.0.0") "pbr>=3.0.0")))))))
334 (propagated-inputs
335 (list python-pbr))
336 (home-page "https://github.com/dreamhost/stevedore")
337 (synopsis "Manage dynamic plugins for Python applications")
338 (description
339 "Python makes loading code dynamically easy, allowing you to configure
340and extend your application by discovering and loading extensions (\"plugins\")
341at runtime. Many applications implement their own library for doing this,
342using __import__ or importlib. Stevedore avoids creating yet another extension
343mechanism by building on top of setuptools entry points. The code for managing
344entry points tends to be repetitive, though, so stevedore provides manager
345classes for implementing common patterns for using dynamically loaded
346extensions.")
347 (license asl2.0)))
348
349(define-public python-tempest
350 (package
351 (name "python-tempest")
352 (version "31.1.0")
353 (source (origin
354 (method url-fetch)
355 (uri (pypi-uri "tempest" version))
356 (sha256
357 (base32
358 "1bh250n0cf68jm68jd7pcrgf7zbsv74cq590ar1n002sijfcb80i"))))
359 (build-system python-build-system)
360 (arguments
361 `(#:phases
362 (modify-phases %standard-phases
363 (add-after 'unpack 'relax-requirements
364 (lambda _
365 (substitute* "test-requirements.txt"
366 ;; unused, code-quality checks only
367 (("hacking[<>!=]" line) (string-append "# " line))
368 (("flake8-.*[<>!=]" line) (string-append "# " line))
369 (("pycodestyle[<>!=]" line) (string-append "# " line))
370 (("coverage[<>!=]" line) (string-append "# " line)))))
371 (add-before 'check 'setup-check
372 (lambda _
373 (substitute* "tempest/tests/lib/cli/test_execute.py"
374 (("cli_base.execute\\(\"env\",")
375 (string-append "cli_base.execute('" (which "env") "',")))))
376 (replace 'check
377 (lambda* (#:key tests? #:allow-other-keys)
378 (when tests?
379 (invoke "stestr" "--test-path" "./tempest/tests" "run")))))))
380 (propagated-inputs (list python-cliff
381 python-cryptography
382 python-debtcollector
383 python-fixtures
384 python-jsonschema
385 python-netaddr
386 python-oslo.concurrency
387 python-oslo.config
388 python-oslo.log
389 python-oslo.serialization
390 python-oslo.utils
391 python-paramiko
392 python-prettytable
393 python-pyyaml
394 python-stevedore
395 python-subunit
396 python-testtools
397 python-urllib3))
398 (native-inputs (list python-oslotest python-pbr python-stestr python-hacking))
399 (home-page "https://docs.openstack.org/tempest/latest/")
400 (synopsis "OpenStack Integration Testing")
401 (description "This is a set of integration tests to be run against a live
402OpenStack cluster. Tempest has batteries of tests for OpenStack API
403validation, scenarios, and other specific tests useful in validating an
404OpenStack deployment.")
405 (license asl2.0)))
406
407(define-public python-tempest-lib
408 (package
409 (name "python-tempest-lib")
410 (version "1.0.0")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (pypi-uri "tempest-lib" version))
415 (sha256
416 (base32
417 "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5"))))
418 (build-system python-build-system)
419 (arguments
420 `(#:tests? #f ; FIXME: Requires oslo.log >= 1.14.0.
421 #:phases
422 (modify-phases %standard-phases
423 (add-after 'unpack 'relax-requirements
424 (lambda _
425 (substitute* "requirements.txt"
426 (("jsonschema[<>!=].*") "jsonschema\n"))))
427 (add-before
428 'check 'pre-check
429 (lambda _
430 (substitute* "tempest_lib/tests/cli/test_execute.py"
431 (("/bin/ls") (which "ls"))))))))
432 (propagated-inputs
433 (list python-fixtures
434 python-httplib2
435 python-iso8601
436 python-jsonschema
437 python-oslo.log
438 python-paramiko
439 python-six))
440 (native-inputs
441 (list python-babel python-mock python-os-testr python-oslotest
442 python-pbr))
443 (home-page "https://www.openstack.org/")
444 (synopsis "OpenStack functional testing library")
445 (description
446 "Tempest-lib is a functional testing library for OpenStack. It provides
447common features used in Tempest.")
448 (license asl2.0)))
449
450
451;;;
452;;; Packages from the Oslo library
453;;;
454
455(define-public python-oslo.concurrency
456 (package
457 (name "python-oslo.concurrency")
458 (version "5.0.0")
459 (source (origin
460 (method url-fetch)
461 (uri (pypi-uri "oslo.concurrency" version))
462 (sha256
463 (base32
464 "0zl9wyxvs69i78wja5c3cacd6gadk8cc8ggy2ips0wlakxp98ilz"))))
465 (build-system python-build-system)
466 (arguments
467 `(#:phases
468 (modify-phases %standard-phases
469 (add-after 'unpack 'relax-requirements
470 (lambda _
471 (substitute* "test-requirements.txt"
472 (("hacking[<>!=]" line) (string-append "# " line))
473 (("coverage[<>!=]" line) (string-append "# " line))
474 (("bandit[<>!=]" line) (string-append "# " line))
475 (("pre-commit[<>!=]" line) (string-append "# " line)))))
476 (add-before 'check 'fix-tests
477 (lambda _
478 (substitute* "oslo_concurrency/tests/unit/test_processutils.py"
479 (("#!/bin/bash") (string-append "#!" (which "bash")))
480 (("#!/bin/sh") (string-append "#!" (which "sh")))
481 (("'/usr/bin/env'") (string-append "'" (which "env") "'"))
482 (("'/usr/bin/env ") (string-append "'" (which "env") " "))
483 (("'/bin/true'") (string-append "'" (which "true") "'"))))))))
484 (native-inputs (list python-pbr
485 ;; for tests:
486 python-oslotest
487 python-fixtures
488 python-stestr
489 python-eventlet))
490 (propagated-inputs (list python-fasteners python-oslo.config
491 python-oslo.i18n python-oslo.utils))
492 (home-page "https://docs.openstack.org/oslo.concurrency/latest/")
493 (synopsis "Oslo Concurrency library")
494 (description "The Oslo Concurrency Library provides utilities for safely
495running multi-thread, multi-process applications using locking mechanisms and
496for running external processes.")
497 (license asl2.0)))
498
499(define-public python-oslo.config
500 (package
501 (name "python-oslo.config")
502 (version "8.7.1")
503 (source
504 (origin
505 (method url-fetch)
506 (uri (pypi-uri "oslo.config" version))
507 (sha256
508 (base32
509 "0q3v4yicqls9zsfxkmh5mrgz9dailaz3ir25p458gj6dg3bldhx0"))))
510 (build-system python-build-system)
511 (arguments '(#:tests? #f)) ;XXX circular dependency on oslo.log
512 (propagated-inputs
513 (list python-debtcollector
514 python-netaddr
515 python-oslo.i18n
516 python-rfc3986
517 python-requests
518 python-stevedore
519 python-pyyaml))
520 (home-page "https://launchpad.net/oslo")
521 (synopsis "Oslo Configuration API")
522 (description
523 "The Oslo configuration API supports parsing command line arguments and
524.ini style configuration files.")
525 (license asl2.0)))
526
527(define-public python-oslo.context
528 (package
529 (name "python-oslo.context")
530 (version "5.0.0")
531 (source
532 (origin
533 (method url-fetch)
534 (uri (pypi-uri "oslo.context" version))
535 (sha256
536 (base32
537 "091j2cjh1b60nx6s0a4amb2idh9awijnbmppc3an0738fv8cdh48"))))
538 (build-system python-build-system)
539 (arguments
540 `(#:phases (modify-phases %standard-phases
541 (add-after 'unpack 'relax-requirements
542 (lambda _
543 (substitute* "test-requirements.txt"
544 (("hacking[<>!=].*") "hacking\n")
545 ;; unused, code-quality checks only
546 (("bandit[<>!=]" line) (string-append "# " line))
547 (("pre-commit[<>!=]" line) (string-append "# " line))))))))
548 (propagated-inputs
549 (list python-debtcollector))
550 (native-inputs
551 (list python-coverage
552 python-fixtures
553 python-hacking
554 python-mypy
555 python-oslotest
556 python-pbr
557 python-stestr))
558 (home-page "https://launchpad.net/oslo")
559 (synopsis "Oslo context library")
560 (description
561 "The Oslo context library has helpers to maintain useful information
562about a request context. The request context is usually populated in the WSGI
563pipeline and used by various modules such as logging.")
564 (license asl2.0)))
565
566(define-public python-oslo.i18n
567 (package
568 (name "python-oslo.i18n")
569 (version "3.20.0")
570 (source
571 (origin
572 (method url-fetch)
573 (uri (pypi-uri "oslo.i18n" version))
574 (sha256
575 (base32
576 "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
577 (build-system python-build-system)
578 (arguments
579 '(#:tests? #f)) ;avoid circular dependency on oslo.config
580 (propagated-inputs
581 (list python-babel python-six))
582 (native-inputs
583 (list python-pbr))
584 (home-page "https://launchpad.net/oslo")
585 (synopsis "Oslo internationalization (i18n) library")
586 (description
587 "The oslo.i18n library contain utilities for working with
588internationalization (i18n) features, especially translation for text strings
589in an application or library.")
590 (license asl2.0)))
591
592(define-public python-oslo.log
593 (package
594 (name "python-oslo.log")
595 (version "5.0.0")
596 (source
597 (origin
598 (method url-fetch)
599 (uri (pypi-uri "oslo.log" version))
600 (sha256
601 (base32
602 "00adkm465xcaxg15pncsmwxhicdj3kx4v1vcabghpmd2m0s75avk"))))
603 (build-system python-build-system)
604 (arguments
605 '(#:phases (modify-phases %standard-phases
606 (replace 'check
607 (lambda* (#:key tests? #:allow-other-keys)
608 (when tests? (invoke "stestr" "run")))))))
609 (propagated-inputs
610 (list python-dateutil
611 python-debtcollector
612 python-oslo.config
613 python-oslo.context
614 python-oslo.i18n
615 python-oslo.utils
616 python-oslo.serialization
617 python-pyinotify))
618 (native-inputs
619 (list python-fixtures python-oslotest python-stestr python-testtools
620 python-pbr))
621 (home-page "https://launchpad.net/oslo")
622 (synopsis "Python logging library of the Oslo project")
623 (description
624 "The oslo.log (logging) configuration library provides standardized
625configuration for all OpenStack projects. It also provides custom formatters,
626handlers and support for context specific logging (like resource id’s etc).")
627 (license asl2.0)))
628
629(define-public python-oslo.serialization
630 (package
631 (name "python-oslo.serialization")
632 (version "4.2.0")
633 (source
634 (origin
635 (method url-fetch)
636 (uri (pypi-uri "oslo.serialization" version))
637 (sha256
638 (base32
639 "10sdgvyb0d3lcmb8b4l5gs40bkfbai08kvsdwp658dxd2yqf21rh"))))
640 (build-system python-build-system)
641 (arguments
642 '(#:phases (modify-phases %standard-phases
643 (replace 'check
644 (lambda* (#:key tests? #:allow-other-keys)
645 (when tests? (invoke "stestr" "run")))))))
646 (propagated-inputs
647 (list python-msgpack python-oslo.utils python-pbr python-pytz))
648 (native-inputs
649 ;; For tests.
650 (list python-netaddr python-oslo.i18n python-oslotest python-stestr))
651 (home-page "https://launchpad.net/oslo")
652 (synopsis "Oslo serialization library")
653 (description
654 "The oslo.serialization library provides support for representing objects
655in transmittable and storable formats, such as JSON and MessagePack.")
656 (license asl2.0)))
657
658(define-public python-reno
659 (package
660 (name "python-reno")
661 (version "2.7.0")
662 (source
663 (origin
664 (method url-fetch)
665 (uri (pypi-uri "reno" version))
666 (sha256
667 (base32 "0gwzi5dvacqx43smxl3rd1z33npn7gfhm50bvgmq90fib2q431wc"))))
668 (build-system python-build-system)
669 (arguments
670 `(#:phases
671 (modify-phases %standard-phases
672 (add-before 'check 'init-git
673 (lambda _
674 ;; reno expects a git repo
675 (invoke "git" "init"))))))
676 (propagated-inputs
677 (list python-dulwich python-pbr python-pyyaml python-six))
678 (native-inputs
679 `(("python-testtools" ,python-testtools)
680 ("python-testscenarios" ,python-testscenarios)
681 ("python-testrepository" ,python-testrepository)
682 ("python-mock" ,python-mock)
683 ("python-docutils" ,python-docutils)
684 ("python-sphinx" ,python-sphinx)
685 ("gnupg" ,gnupg)
686 ("git" ,git-minimal)))
687 (home-page "https://docs.openstack.org/reno/latest/")
688 (synopsis "Release notes manager")
689 (description "Reno is a tool for storing release notes in a git repository
690and building documentation from them.")
691 (license asl2.0)))
692
693(define-public python-oslosphinx
694 (package
695 (name "python-oslosphinx")
696 (version "4.18.0")
697 (source
698 (origin
699 (method url-fetch)
700 (uri (pypi-uri "oslosphinx" version))
701 (sha256
702 (base32
703 "1xm41857vzrzjmnyi6bqirg4i5qa61v7wxcsdc4q1nzgr3ndgz5k"))))
704 (build-system python-build-system)
705 (arguments
706 `(#:phases
707 (modify-phases %standard-phases
708 (add-after 'unpack 'relax-requirements
709 (lambda _
710 (substitute* "test-requirements.txt"
711 (("hacking!=0.13.0,<0.14,>=0.12.0")
712 "hacking!=0.13.0,>=0.12.0"))
713 #t)))))
714 (propagated-inputs
715 (list python-requests))
716 (native-inputs
717 (list python-hacking python-openstackdocstheme python-pbr
718 python-reno python-sphinx))
719 (home-page "https://www.openstack.org/")
720 (synopsis "OpenStack sphinx extensions and theme")
721 (description "This package provides themes and extensions for Sphinx
722documentation from the OpenStack project.")
723 (license asl2.0)))
724
725(define-public python-oslotest
726 (package
727 (name "python-oslotest")
728 (version "4.4.1")
729 (source
730 (origin
731 (method url-fetch)
732 (uri (pypi-uri "oslotest" version))
733 (sha256
734 (base32
735 "0r50sz55m8ljv2vk1k7sp88iz1iqq4p9w6kb8hn8g8c50r9zdi5i"))))
736 (build-system python-build-system)
737 (arguments
738 ;; The tests are disabled to avoid a circular dependency with oslo.config.
739 `(#:tests? #f))
740 (propagated-inputs
741 (list python-fixtures python-six python-subunit python-testtools))
742 (home-page "https://launchpad.net/oslo")
743 (synopsis "Oslo test framework")
744 (description "The Oslo Test framework provides common fixtures, support
745for debugging, and better support for mocking results.")
746 (license asl2.0)))
747
748(define-public python-oslo.utils
749 (package
750 (name "python-oslo.utils")
751 (version "4.12.0")
752 (source
753 (origin
754 (method url-fetch)
755 (uri (pypi-uri "oslo.utils" version))
756 (sha256
757 (base32
758 "0kfgr6lr3r34nzmkvnyywr0x3lkwpwy35m1dj4rkk3ydqvi1xaip"))))
759 (build-system python-build-system)
760 (arguments
761 '(#:phases (modify-phases %standard-phases
762 (replace 'check
763 (lambda* (#:key tests? #:allow-other-keys)
764 (when tests? (invoke "stestr" "run")))))))
765 (propagated-inputs
766 (list python-debtcollector
767 python-oslo.i18n
768 python-iso8601
769 python-netaddr
770 python-netifaces
771 python-pbr
772 python-packaging
773 python-pyparsing
774 python-pytz))
775 (native-inputs
776 ;; For tests.
777 (list python-ddt
778 python-eventlet
779 python-fixtures
780 python-oslotest
781 python-stestr
782 python-testscenarios
783 python-testtools))
784 (home-page "https://launchpad.net/oslo")
785 (synopsis "Oslo utility library")
786 (description
787 "The @code{oslo.utils} library provides support for common utility type
788functions, such as encoding, exception handling, string manipulation, and time
789handling.")
790 (license asl2.0)))
791
792(define-public python-keystoneauth1
793 (package
794 (name "python-keystoneauth1")
795 (version "5.0.0")
796 (source (origin
797 (method url-fetch)
798 (uri (pypi-uri "keystoneauth1" version))
799 (sha256
800 (base32
801 "08s36dqxrxqx37sdl28cr7fx2iwr8wfxaa53hwq2dzcx9h25zfvf"))))
802 (build-system python-build-system)
803 (arguments
804 `(#:phases
805 (modify-phases %standard-phases
806 (add-after 'unpack 'relax-requirements
807 (lambda _
808 (substitute* "test-requirements.txt"
809 (("hacking[<>!=].*") "hacking\n")
810 ;; unused, code-quality checks only
811 (("flake8-.*[<>!=]" line) (string-append "# " line))
812 (("pycodestyle[<>!=]" line) (string-append "# " line))
813 (("bandit[<>!=]" line) (string-append "# " line))
814 (("coverage[<>!=]" line) (string-append "# " line))
815 (("reno[<>!=]" line) (string-append "# " line)))))
816 (add-before 'check 'check-setup
817 (lambda _
818 ;; remove code-quality checks
819 (delete-file "keystoneauth1/tests/unit/test_hacking_checks.py")))
820 (replace 'check
821 (lambda* (#:key tests? #:allow-other-keys)
822 (when tests?
823 (invoke "stestr" "run")))))))
824 (propagated-inputs (list python-iso8601
825 python-os-service-types
826 python-requests
827 python-six
828 python-stevedore))
829 (native-inputs (list python-betamax
830 python-fixtures
831 python-hacking
832 python-lxml
833 python-oauthlib
834 python-oslo.config
835 python-oslo.utils
836 python-oslotest
837 python-pbr
838 python-pyyaml
839 python-requests-kerberos
840 python-requests-mock
841 python-stestr
842 python-testresources
843 python-testtools))
844 (home-page "https://docs.openstack.org/keystoneauth/latest/")
845 (synopsis "Authentication Library for OpenStack Identity")
846 (description "Keystoneauth provides a standard way to do authentication
847and service requests within the OpenStack ecosystem. It is designed for use
848in conjunction with the existing OpenStack clients and for simplifying the
849process of writing new clients.")
850 (license asl2.0)))
851
852(define-public python-keystoneclient
853 (package
854 (name "python-keystoneclient")
855 (version "5.0.0")
856 (source
857 (origin
858 (method url-fetch)
859 (uri (pypi-uri "python-keystoneclient" version))
860 (sha256
861 (base32
862 "0gza5fx3xl3l6vrc6pnhbzhipz1fz9h98kwxqp7mmd90pwrxll0g"))))
863 (build-system python-build-system)
864 (arguments
865 '(#:tests? #f ; FIXME: Many tests are failing.
866 #:phases (modify-phases %standard-phases
867 (add-after 'unpack 'relax-requirements
868 (lambda _
869 (substitute* "test-requirements.txt"
870 ;; unused, code-quality checks only
871 (("hacking[<>!=]" line) (string-append "# " line))
872 (("flake8-.*[<>!=]" line) (string-append "# " line))
873 (("pycodestyle[<>!=]" line) (string-append "# " line))
874 (("bandit[<>!=]" line) (string-append "# " line))
875 (("coverage[<>!=]" line) (string-append "# " line))
876 (("reno[<>!=]" line) (string-append "# " line))))))))
877 (native-inputs
878 (list openssl
879 python-fixtures
880 python-keyring
881 python-lxml
882 python-mock
883 python-oauthlib
884 python-oslotest
885 python-pbr
886 python-requests-mock
887 python-stestr
888 python-tempest-lib
889 python-testresources
890 python-testscenarios
891 python-testtools))
892 (propagated-inputs
893 (list python-babel
894 python-debtcollector
895 python-iso8601
896 python-keystoneauth1
897 python-netaddr
898 python-oslo.config
899 python-oslo.i18n
900 python-oslo.serialization
901 python-oslo.utils
902 python-prettytable
903 python-requests
904 python-six
905 python-stevedore))
906 (home-page "https://www.openstack.org/")
907 (synopsis "Client Library for OpenStack Identity")
908 (description
909 "Python-keystoneclient is the identity service used by OpenStack for
910authentication (authN) and high-level authorization (authZ). It currently
911supports token-based authN with user/service authZ, and is scalable to support
912OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses
913SQLite for its identity store database, with the option to connect to external
914LDAP.")
915 (license asl2.0)))
916
917(define-public python-swiftclient
918 (package
919 (name "python-swiftclient")
920 (version "4.0.1")
921 (source
922 (origin
923 (method url-fetch)
924 (uri (pypi-uri "python-swiftclient" version))
925 (sha256
926 (base32
927 "1zwb4zcln454fzcnbwqhyzxb68wrsr1i2vvvrn5c7yy5k4vcfs1v"))))
928 (build-system python-build-system)
929 (arguments
930 '(#:phases (modify-phases %standard-phases
931 (add-before 'check 'relax-requirements
932 (lambda _
933 (delete-file "test-requirements.txt")))
934 (replace 'check
935 (lambda* (#:key tests? #:allow-other-keys)
936 (when tests?
937 (invoke "stestr" "run")))))))
938 (native-inputs
939 (list python-keystoneclient
940 python-keystoneauth1
941 python-openstacksdk
942 python-stestr))
943 (propagated-inputs
944 (list python-requests))
945 (home-page "https://www.openstack.org/")
946 (synopsis "OpenStack Object Storage API Client Library")
947 (description
948 "OpenStack Object Storage (code-named Swift) creates redundant, scalable
949object storage using clusters of standardized servers to store petabytes of
950accessible data. It is not a file system or real-time data storage system, but
951rather a long-term storage system for a more permanent type of static data that
952can be retrieved, leveraged, and then updated if necessary. Primary examples of
953data that best fit this type of storage model are virtual machine images, photo
954storage, email storage and backup archiving. Having no central \"brain\" or
955master point of control provides greater scalability, redundancy and
956permanence.")
957 (license asl2.0)))
958
959(define-public python-git-review
960 (package
961 (name "python-git-review")
962 (version "2.1.0")
963 (source
964 (origin
965 (method url-fetch)
966 (uri (pypi-uri "git-review" version))
967 (sha256
968 (base32 "1mhywsbisyv028lsj2ksg4g5l8kyimpwxgwzqi08rymi8mb7fv1s"))))
969 (build-system python-build-system)
970 (arguments
971 '(#:tests? #f ; tests require a running Gerrit server
972 #:phases
973 (modify-phases %standard-phases
974 (add-after 'install 'wrap-program
975 (lambda* (#:key inputs outputs #:allow-other-keys)
976 (let* ((out (assoc-ref outputs "out"))
977 (git (assoc-ref inputs "git"))
978 (openssh (assoc-ref inputs "openssh")))
979 (wrap-program (string-append out "/bin/git-review")
980 `("PATH" ":" prefix
981 ,(map (lambda (dir)
982 (string-append dir "/bin"))
983 (list git openssh)))))
984 #t)))))
985 (native-inputs
986 (list python-pbr))
987 (propagated-inputs
988 (list python-requests))
989 (inputs
990 (list git openssh))
991 (home-page "https://docs.openstack.org/infra/git-review/")
992 (synopsis "Command-line tool for Gerrit")
993 (description
994 "Git-review is a command-line tool that helps submitting Git branches to
995Gerrit for review, or fetching existing ones.")
996 (license asl2.0)))
997
998(define-public python-requestsexceptions
999 (package
1000 (name "python-requestsexceptions")
1001 (version "1.4.0")
1002 (source (origin
1003 (method url-fetch)
1004 (uri (pypi-uri "requestsexceptions" version))
1005 (sha256
1006 (base32
1007 "0r9hp9yzgj8r81q5gc6r8sgxldqc09xi6ax0b7a6dw0qfv3wp5dh"))))
1008 (build-system python-build-system)
1009 (arguments
1010 '(#:tests? #f)) ; no tests
1011 (native-inputs (list python-pbr))
1012 (home-page "https://www.openstack.org/")
1013 (synopsis "Import exceptions from potentially bundled packages in requests")
1014 (description "The Python requests library bundles the urllib3 library,
1015however, some software distributions modify requests to remove the bundled
1016library. This makes some operations difficult, such as suppressing the
1017“insecure platform warning” messages that urllib emits. This package is a
1018simple library to find the correct path to exceptions in the requests library
1019regardless of whether they are bundled or not.")
1020 (license asl2.0)))
1021
1022(define-public python-openstacksdk
1023 (package
1024 (name "python-openstacksdk")
1025 (version "0.100.0")
1026 (source (origin
1027 (method url-fetch)
1028 (uri (pypi-uri "openstacksdk" version))
1029 (sha256
1030 (base32
1031 "0iq7rxw59ibl6xsqh3jw56yg3zfbz3cqgx1239n6xd9iv86mcgq1"))))
1032 (build-system python-build-system)
1033 (arguments
1034 '(#:phases (modify-phases %standard-phases
1035 (replace 'check
1036 (lambda* (#:key tests? #:allow-other-keys)
1037 (when tests?
1038 (with-output-to-file "exclusion-list.txt"
1039 (lambda _
1040 (display
1041 (string-append
1042 ;; tests timing out
1043 "test_create_dynamic_large_object$\n"
1044 "test_create_object_index_rax$\n"
1045 "test_create_object_skip_checksum$\n"
1046 "test_inspect_machine_inspect_failed$\n"
1047 "test_inspect_machine_wait$\n"
1048 "test_status_fails_different_attribute$\n"
1049 "test_status_match$\n"
1050 "test_status_match_different_attribute$\n"
1051 "test_status_match_with_none$\n"
1052 "test_wait_for_baremetal_node_lock_locked$\n"
1053 "test_wait_for_task_error_396$\n"
1054 "test_wait_for_task_wait$\n"))))
1055 (invoke "stestr" "run"
1056 "--exclude-list" "exclusion-list.txt")))))))
1057 (native-inputs (list python-ddt
1058 python-hacking
1059 python-jsonschema
1060 python-pbr
1061 python-prometheus-client
1062 python-requests-mock
1063 python-statsd
1064 python-stestr
1065 python-testscenarios
1066 python-oslo.config
1067 python-oslotest))
1068 (propagated-inputs (list python-appdirs
1069 python-cryptography
1070 python-decorator
1071 python-dogpile.cache
1072 python-importlib-metadata
1073 python-iso8601
1074 python-jmespath
1075 python-jsonpatch
1076 python-keystoneauth1
1077 python-munch
1078 python-netifaces
1079 python-os-service-types
1080 python-pbr ; run-time dependency actually
1081 python-pyyaml
1082 python-requestsexceptions))
1083 (home-page "https://docs.openstack.org/openstacksdk/latest/")
1084 (synopsis "SDK for building applications to work with OpenStack")
1085 (description "This package provides a client library for building
1086applications to work with OpenStack clouds. The SDK aims to provide a
1087consistent and complete set of interactions with OpenStack’s many services,
1088along with complete documentation, examples, and tools.")
1089 (license asl2.0)))