;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
(define-module (gnu packages openstack)
#:use-module (gnu packages python)
- #:use-module (gnu packages version-control)
+ #:use-module (gnu packages tls)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module ((guix licenses)
#:select (asl2.0))
- #:use-module (guix packages))
+ #:use-module (guix packages)
+ #:use-module (srfi srfi-1))
+
+(define-public python-bandit
+ (package
+ (name "python-bandit")
+ (version "0.13.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/b/bandit/bandit-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "03g3cflvrc99ncjd611iy5nnnscsc2vgnrx4mjaqyx8glbfw8y7g"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-appdirs" ,python-appdirs)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-six" ,python-six)
+ ("python-stevedore" ,python-stevedore)))
+ (inputs
+ `(("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests
+ ("python-fixtures" ,python-fixtures)
+ ("python-mock" ,python-mock)
+ ("python-testrepository" ,python-testrepository)
+ ("python-testscenarios" ,python-testscenarios)
+ ("python-testtools" ,python-testtools)))
+ (home-page "https://wiki.openstack.org/wiki/Security/Projects/Bandit")
+ (synopsis "Security oriented static analyser for python code")
+ (description
+ "Bandit is a tool designed to find common security issues in Python code.
+To do this Bandit processes each file, builds an AST from it, and runs
+appropriate plugins against the AST nodes. Once Bandit has finished scanning
+all the files it generates a report.")
+ (license asl2.0)))
+
+(define-public python2-bandit
+ (package-with-python2 python-bandit))
+
+(define-public python-debtcollector
+ (package
+ (name "python-debtcollector")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "debtcollector" version))
+ (sha256
+ (base32
+ "0g4dfskaiy47rhsh4gh66l5vmdsrgq0qk68pl3ix1cj3ffvfndzv"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ("python-wrapt" ,python-wrapt)))
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests.
+ ("python-oslotest" ,python-oslotest)))
+ (home-page "http://www.openstack.org/")
+ (synopsis
+ "Find deprecated patterns and strategies in Python code")
+ (description
+ "This package provides a collection of Python deprecation patterns and
+strategies that help you collect your technical debt in a non-destructive
+manner.")
+ (license asl2.0)))
+
+(define-public python2-debtcollector
+ (package-with-python2 python-debtcollector))
+
+(define-public python-hacking
+ (package
+ (name "python-hacking")
+ (version "0.10.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hacking" version))
+ (sha256
+ (base32
+ "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flake8-2.2.4" ,python-flake8-2.2.4)
+ ("python-mccabe-0.2.1" ,python-mccabe-0.2.1)
+ ("python-pbr" ,python-pbr)
+ ("python-pep8-1.5.7" ,python-pep8-1.5.7)
+ ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("python-setuptools" ,python-setuptools)
+ ;; Tests
+ ("python-testscenarios" ,python-testscenarios)))
+ (home-page "http://github.com/openstack-dev/hacking")
+ (synopsis "OpenStack hacking guideline enforcement")
+ (description
+ "Python-hacking is a set of flake8 plugins that test and enforce the
+@uref{http://docs.openstack.org/developer/hacking/, OpenStack style
+guidelines}.")
+ (license asl2.0)))
+
+(define-public python2-hacking
+ (package-with-python2 python-hacking))
(define-public python-mox3
(package
(name "python-mox3")
- (version "0.8.0")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/m/mox3/mox3-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "mox3" version))
(sha256
(base32
- "1dwj9lkifdqvrcympqa47bj55l0n0j9jhzv2gj03h0dpzg6mgfkj"))))
+ "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx"))))
(build-system python-build-system)
- (inputs
+ (native-inputs
`(("python-fixtures" ,python-fixtures)
("python-pbr" ,python-pbr)
("python-setuptools" ,python-setuptools)
(synopsis "Mock object framework for Python")
(description
"Mox3 is an unofficial port of the Google mox framework
-(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible
-with mox as possible, but small enhancements have been made. The library was
+(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible
+with mox as possible, but small enhancements have been made. The library was
tested on Python version 3.2, 2.7 and 2.6.")
(license asl2.0)))
+(define-public python2-mox3
+ (package-with-python2 python-mox3))
+
(define-public python-os-client-config
(package
(name "python-os-client-config")
- (version "1.4.0")
+ (version "1.12.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/o/os-client-config/os-client-config-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "os-client-config" version))
(sha256
(base32
- "14png6ml3zbbilh8bihav24f8vig9lyijwynnjcvazdxxrzvwq9j"))))
+ "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;; Circular dependency with python-oslotest
(define-public python2-os-client-config
(package-with-python2 python-os-client-config))
-(define-public python2-mox3
- (package-with-python2 python-mox3))
-
-(define-public python-pbr
+(define-public python-os-testr
(package
- (name "python-pbr")
- (version "1.6.0")
+ (name "python-os-testr")
+ (version "0.5.0")
(source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pbr/pbr-"
- version
- ".tar.gz"))
- (sha256
- (base32
- "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "os-testr" version))
+ (sha256
+ (base32
+ "0bv03wnmvxhyi8y08hjh9clxrwqc2251529v4kh5khvca0fsbqdp"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f)) ;; Most tests seem to use the Internet.
+ ;; os-testr uses itself to run the tests. It seems like pbr writes the
+ ;; exectuable in the virtualenv when using tox. Not sure how to do this
+ ;; when building the package. Skip the tests for now.
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-pbr" ,python-pbr)
+ ("python-subunit" ,python-subunit)
+ ("python-testtools" ,python-testtools)))
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "http://www.openstack.org/")
+ (synopsis "Testr wrapper to provide functionality for OpenStack projects")
+ (description
+ "Os-testr provides developers with a testr wrapper and an output filter
+ for subunit.")
+ (license asl2.0)))
+
+(define-public python2-os-testr
+ (package-with-python2 python-os-testr))
+
+(define-public python-requests-mock
+ (package
+ (name "python-requests-mock")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "requests-mock" version))
+ (sha256
+ (base32
+ "0s6mrpiv2w0km39qvl1pq2d56xblnm57p369qdp5j1a55ncica7f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("python-mock" ,python-mock)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "https://requests-mock.readthedocs.org/")
+ (synopsis "Mock out responses from the requests package")
+ (description
+ "This module provides a building block to stub out the HTTP requests
+portions of your testing code.")
+ (license asl2.0)))
+
+(define-public python2-requests-mock
+ (package-with-python2 python-requests-mock))
+
+(define-public python-stevedore
+ (package
+ (name "python-stevedore")
+ (version "1.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "stevedore" version))
+ (sha256
+ (base32
+ "0999zvawaapzg6givjhn7vjscdwblcs73wf28wq1wb4g5mbb5phv"))))
+ (build-system python-build-system)
(propagated-inputs
- `(("python-testrepository" ,python-testrepository)
- ("git" ,git))) ;; pbr actually uses the "git" binary.
+ `(("python-six" ,python-six)))
(inputs
+ `(("python-pbr" ,python-pbr)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ;; Tests
+ ("python-docutils" ,python-docutils)
+ ("python-mock" ,python-mock)
+ ("python-oslotest" ,python-oslotest)
+ ("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/dreamhost/stevedore")
+ (synopsis "Manage dynamic plugins for Python applications")
+ (description
+ "Python makes loading code dynamically easy, allowing you to configure
+and extend your application by discovering and loading extensions (\"plugins\")
+at runtime. Many applications implement their own library for doing this,
+using __import__ or importlib. Stevedore avoids creating yet another extension
+mechanism by building on top of setuptools entry points. The code for managing
+entry points tends to be repetitive, though, so stevedore provides manager
+classes for implementing common patterns for using dynamically loaded
+extensions.")
+ (license asl2.0)))
+
+(define-public python2-stevedore
+ (package-with-python2 python-stevedore))
+
+(define-public python-tempest-lib
+ (package
+ (name "python-tempest-lib")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tempest-lib" version))
+ (sha256
+ (base32
+ "0f15wxk394cb2kw34krpxq8mvy1rxw0lnl5wfiv14cq1s1fm9cjd"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'check 'pre-check
+ (lambda _
+ (substitute* "tempest_lib/tests/cli/test_execute.py"
+ (("/bin/ls") (which "ls"))))))))
+ (propagated-inputs
`(("python-fixtures" ,python-fixtures)
- ("python-mimeparse" ,python-mimeparse)
+ ("python-httplib2" ,python-httplib2)
+ ("python-iso8601" ,python-iso8601)
+ ("python-jsonschema" ,python-jsonschema)
+ ("python-oslo.log" ,python-oslo.log)
+ ("python-paramiko" ,python-paramiko)
+ ("python-pbr" ,python-pbr)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("python-babel" ,python-babel)
("python-mock" ,python-mock)
- ("python-setuptools" ,python-setuptools)
- ("python-six" ,python-six)
- ("python-sphinx" ,python-sphinx)
- ("python-testrepository" ,python-testrepository)
- ("python-testresources" ,python-testresources)
- ("python-testscenarios" ,python-testscenarios)
- ("python-testtools" ,python-testtools)
- ("python-virtualenv" ,python-virtualenv)))
- (home-page "https://launchpad.net/pbr")
- (synopsis "Change the default behavior of Python’s setuptools")
+ ("python-os-testr" ,python-os-testr)
+ ("python-oslotest" ,python-oslotest)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "http://www.openstack.org/")
+ (synopsis "OpenStack functional testing library")
(description
- "Python Build Reasonableness (PBR) is a library that injects some useful
-and sensible default behaviors into your setuptools run.")
+ "Tempest-lib is a functional testing library for OpenStack. It provides
+common features used in Tempest.")
(license asl2.0)))
-(define-public python2-pbr
- (package-with-python2 python-pbr))
+(define-public python2-tempest-lib
+ (package-with-python2 python-tempest-lib))
;; Packages from the Oslo library
+(define-public python-oslo.config
+ (package
+ (name "python-oslo.config")
+ (version "2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/o/oslo.config/oslo.config-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "13r778jfb0fhna37c2pd1f2xipnsbd7zli7qhn96acrzymrwj5k1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-netaddr" ,python-netaddr)
+ ("python-six" ,python-six)
+ ("python-stevedore" ,python-stevedore)))
+ (inputs
+ `(("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests
+ ("python-oslo.i18n" ,python-oslo.i18n)
+ ("python-mock" ,python-mock)
+ ("python-oslotest" ,python-oslotest)
+ ("python-testscenarios" ,python-testscenarios)))
+ (home-page "https://launchpad.net/oslo")
+ (synopsis "Oslo Configuration API")
+ (description
+ "The Oslo configuration API supports parsing command line arguments and
+.ini style configuration files.")
+ (license asl2.0)))
+
+(define-public python2-oslo.config
+ (package-with-python2 python-oslo.config))
+
+(define-public python-oslo.context
+ (package
+ (name "python-oslo.context")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "oslo.context" version))
+ (sha256
+ (base32
+ "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests.
+ ("python-oslotest" ,python-oslotest)))
+ (home-page "http://launchpad.net/oslo")
+ (synopsis "Oslo context library")
+ (description
+ "The Oslo context library has helpers to maintain useful information
+about a request context. The request context is usually populated in the WSGI
+pipeline and used by various modules such as logging.")
+ (license asl2.0)))
+
+(define-public python2-oslo.context
+ (package-with-python2 python-oslo.context))
+
(define-public python-oslo.i18n
(package
(name "python-oslo.i18n")
- (version "2.5.0")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "oslo.i18n" version))
(sha256
(base32
- "1kg72mqldlri3x0bhxai7j979czrd7mf8s3iflvvv0x9kn9ah4cw"))))
+ "0bpb1c20sm8my650gl824nzaip83bfn8hr91s65k5ncmyh8hb6pl"))))
(build-system python-build-system)
(propagated-inputs
`(("python-babel" ,python-babel)
(define-public python2-oslo.i18n
(package-with-python2 python-oslo.i18n))
+(define-public python-oslo.log
+ (package
+ (name "python-oslo.log")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/o/oslo.log/oslo.log-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-debtcollector" ,python-debtcollector)
+ ("python-oslo.config" ,python-oslo.config)
+ ("python-oslo.context" ,python-oslo.context)
+ ("python-oslo.i18n" ,python-oslo.i18n)
+ ("python-oslo.utils" ,python-oslo.utils)
+ ("python-oslo.serialization" ,python-oslo.serialization)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-iso8601" ,python-iso8601)
+ ("python-mock" ,python-mock)
+ ("python-oslotest" ,python-oslotest)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "http://launchpad.net/oslo")
+ (synopsis "Python logging library of the Oslo project")
+ (description
+ "The oslo.log (logging) configuration library provides standardized
+configuration for all OpenStack projects. It also provides custom formatters,
+handlers and support for context specific logging (like resource id’s etc).")
+ (license asl2.0)))
+
+(define-public python2-oslo.log
+ (package-with-python2 python-oslo.log))
+
+(define-public python-oslo.serialization
+ (package
+ (name "python-oslo.serialization")
+ (version "2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "oslo.serialization" version))
+ (sha256
+ (base32
+ "00s03krhf833gs76aw5ns32w9m1i4hx6x6d9g82m0j5wyqk0sci4"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-iso8601" ,python-iso8601)
+ ("python-netaddr" ,python-netaddr)
+ ("python-oslo.utils" ,python-oslo.utils)
+ ("python-simplejson" ,python-simplejson)
+ ("python-six" ,python-six)
+ ("python-pytz" ,python-pytz)))
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests.
+ ("python-mock" ,python-mock)
+ ("python-oslo.i18n" ,python-oslo.i18n)
+ ("python-oslotest" ,python-oslotest)))
+ (home-page "http://launchpad.net/oslo")
+ (synopsis "Oslo serialization library")
+ (description
+ "The oslo.serialization library provides support for representing objects
+in transmittable and storable formats, such as JSON and MessagePack.")
+ (license asl2.0)))
+
+(define-public python2-oslo.serialization
+ (package-with-python2 python-oslo.serialization))
+
+(define-public python-oslosphinx
+ (package
+ (name "python-oslosphinx")
+ (version "4.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "oslosphinx" version))
+ (sha256
+ (base32
+ "0cz8ym4i1n4rgljlqhyhfkpgdmid7nkb909k8r8nk186m9cmpla2"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (inputs
+ `(("python-pbr" ,python-pbr)
+ ("python-docutils" ,python-docutils)
+ ("python-hacking" ,python-hacking)
+ ("python-setuptools" ,python-setuptools)
+ ("python-sphinx" ,python-sphinx)))
+ (home-page "http://www.openstack.org/")
+ (synopsis "OpenStack sphinx extensions and theme")
+ (description
+ "This package provides themes and extensions for Sphinx documentation
+from the OpenStack project.")
+ (license asl2.0)))
+
+(define-public python2-oslosphinx
+ (package-with-python2 python-oslosphinx))
+
(define-public python-oslotest
(package
(name "python-oslotest")
(propagated-inputs
`(("python-fixtures" ,python-fixtures)
("python-mock" ,python-mock)
+ ("python-mox3" ,python-mox3)
("python-six" ,python-six)))
(inputs
`(("python-pbr" ,python-pbr)
- ("python-mox3" ,python-mox3)
("python-os-client-config" ,python-os-client-config)
("python-setuptools" ,python-setuptools)
("python-subunit" ,python-subunit)
(define-public python2-oslotest
(package-with-python2 python-oslotest))
+
+(define-public python-oslo.utils
+ (package
+ (name "python-oslo.utils")
+ (version "3.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "oslo.utils" version))
+ (sha256
+ (base32
+ "1c4jrbvfs4hs37fics8frqlyhmsv7v92ncv2cpbm0av9x0ic6pnj"))
+ (snippet
+ '(begin
+ ;; FIXME: setuptools fails to import this file during the test
+ ;; phase.
+ (delete-file "oslo_utils/tests/test_netutils.py")))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-debtcollector" ,python-debtcollector)
+ ("python-oslo.i18n" ,python-oslo.i18n)
+ ("python-iso8601" ,python-iso8601)
+ ("python-monotonic" ,python-monotonic)
+ ("python-netaddr" ,python-netaddr)
+ ("python-netifaces" ,python-netifaces)
+ ("python-pytz" ,python-pytz)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("python-babel" ,python-babel)
+ ("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests.
+ ("python-oslotest" ,python-oslotest)
+ ("python-mock" ,python-mock)
+ ("python-mox3" ,python-mox3)
+ ("python-testscenarios" ,python-testscenarios)))
+ (home-page "http://launchpad.net/oslo")
+ (synopsis "Oslo utility library")
+ (description
+ "The @code{oslo.utils} library provides support for common utility type
+functions, such as encoding, exception handling, string manipulation, and time
+handling.")
+ (license asl2.0)))
+
+(define-public python2-oslo.utils
+ (package-with-python2 python-oslo.utils))
+
+(define-public python-keystoneclient
+ (package
+ (name "python-keystoneclient")
+ (version "1.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-keystoneclient" version))
+ (sha256
+ (base32
+ "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-sphinx" ,python-sphinx)
+ ;; and some packages for the tests
+ ("openssl" ,openssl)
+ ("python-coverage" ,python-coverage)
+ ("python-discover" ,python-discover)
+ ("python-fixtures" ,python-fixtures)
+ ("python-hacking" ,python-hacking)
+ ("python-keyring" ,python-keyring)
+ ("python-lxml" ,python-lxml)
+ ("python-mock" ,python-mock)
+ ("python-mox3" ,python-mox3)
+ ("python-oauthlib" ,python-oauthlib)
+ ("python-oslosphinx" ,python-oslosphinx)
+ ("python-oslotest" ,python-oslotest)
+ ("python-pycrypto" ,python-pycrypto)
+ ("python-requests-mock" ,python-requests-mock)
+ ("python-temptest-lib" ,python-tempest-lib)
+ ("python-testrepository" ,python-testrepository)
+ ("python-testresources" ,python-testresources)
+ ("python-testtools" ,python-testtools)
+ ("python-webob" ,python-webob)))
+ (propagated-inputs
+ `(("python-babel" ,python-babel)
+ ("python-debtcollector" ,python-debtcollector)
+ ("python-iso8601" ,python-iso8601)
+ ("python-netaddr" ,python-netaddr)
+ ("python-oslo.config" ,python-oslo.config)
+ ("python-oslo.i18n" ,python-oslo.i18n)
+ ("python-oslo.serialization" ,python-oslo.serialization)
+ ("python-oslo.utils" ,python-oslo.utils)
+ ("python-pbr" ,python-pbr)
+ ("python-prettytable" ,python-prettytable)
+ ("python-requests" ,python-requests)
+ ("python-six" ,python-six)
+ ("python-stevedore" ,python-stevedore)))
+ (home-page "http://www.openstack.org/")
+ (synopsis "Client Library for OpenStack Identity")
+ (description
+ "Python-keystoneclient is the identity service used by OpenStack for
+authentication (authN) and high-level authorization (authZ). It currently
+supports token-based authN with user/service authZ, and is scalable to support
+OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses
+SQLite for its identity store database, with the option to connect to external
+LDAP.")
+ (license asl2.0)))
+
+(define-public python2-keystoneclient
+ (let ((keystoneclient (package-with-python2 python-keystoneclient)))
+ (package (inherit keystoneclient)
+ (propagated-inputs
+ `(("python2-requests" ,python2-requests)
+ ,@(alist-delete "python-requests"
+ (package-propagated-inputs keystoneclient))))
+ (native-inputs
+ `(("python2-oauthlib" ,python2-oauthlib)
+ ("python2-oslosphinx" ,python2-oslosphinx)
+ ("python2-requests-mock" ,python2-requests-mock)
+ ("python2-tempest-lib" ,python2-tempest-lib)
+ ,@(fold alist-delete (package-native-inputs keystoneclient)
+ '("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib")))))))
+
+(define-public python-swiftclient
+ (package
+ (name "python-swiftclient")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-swiftclient" version))
+ (sha256
+ (base32
+ "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pbr" ,python-pbr)
+ ("python-setuptools" ,python-setuptools)
+ ("python-sphinx" ,python-sphinx)
+ ;; The folloing packages are needed for the tests.
+ ("python-coverage" ,python-coverage)
+ ("python-discover" ,python-discover)
+ ("python-hacking" ,python-hacking)
+ ("python-mock" ,python-mock)
+ ("python-oslosphinx" ,python-oslosphinx)
+ ("python-keystoneclient" ,python-keystoneclient)
+ ("python-testrepository" ,python-testrepository)
+ ("python-testtools" ,python-testtools)))
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("python-six" ,python-six)))
+ (home-page "http://www.openstack.org/")
+ (synopsis "OpenStack Object Storage API Client Library")
+ (description
+ "OpenStack Object Storage (code-named Swift) creates redundant, scalable
+object storage using clusters of standardized servers to store petabytes of
+accessible data. It is not a file system or real-time data storage system, but
+rather a long-term storage system for a more permanent type of static data that
+can be retrieved, leveraged, and then updated if necessary. Primary examples of
+data that best fit this type of storage model are virtual machine images, photo
+storage, email storage and backup archiving. Having no central \"brain\" or
+master point of control provides greater scalability, redundancy and
+permanence.")
+ (license asl2.0)))
+
+(define-public python2-swiftclient
+ (let ((swiftclient (package-with-python2 python-swiftclient)))
+ (package (inherit swiftclient)
+ (propagated-inputs
+ `(("python2-futures" ,python2-futures)
+ ("python2-requests" ,python2-requests)
+ ,@(alist-delete "python-requests"
+ (package-propagated-inputs swiftclient))))
+ (native-inputs
+ `(("python2-keystoneclient" ,python2-keystoneclient)
+ ("python2-oslosphinx" ,python2-oslosphinx)
+ ,@(fold alist-delete (package-native-inputs swiftclient)
+ '("python-keystoneclient" "python-oslosphinx")))))))