projects/guix·blob version-0.14.0 · refs

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