Merge remote-tracking branch 'origin/master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / openstack.scm
index 33a54e3..178b3a7 100644 (file)
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages openstack)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (guix build-system python)
 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.")
+    (properties `((python2-variant . ,(delay python2-bandit))))
     (license asl2.0)))
 
 (define-public python2-bandit
-  (package-with-python2 python-bandit))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-bandit)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-debtcollector
   (package
@@ -91,7 +102,7 @@ all the files it generates a report.")
         ("python-pbr" ,python-pbr)
         ;; Tests.
         ("python-oslotest" ,python-oslotest)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis
       "Find deprecated patterns and strategies in Python code")
     (description
@@ -106,32 +117,33 @@ manner.")
 (define-public python-hacking
   (package
     (name "python-hacking")
-    (version "0.10.2")
+    (version "0.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hacking" version))
        (sha256
         (base32
-         "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap"))))
+         "1s1wq2sds6fjp8rwz31vkp33kjl9nyk5y2g2pri8shic75dr00h4"))))
     (build-system python-build-system)
-    (arguments
-     ;; TODO: Requires unpackaged 'eventlet'.
-     '(#:tests? #f))
     (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)))
+     `(("python-flake8" ,python-flake8)
+       ("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)))
     (native-inputs
-      `(;; Tests
-        ("python-testscenarios" ,python-testscenarios)))
-    (home-page "http://github.com/openstack-dev/hacking")
+     `( ;; Tests
+       ("python-eventlet" ,python-eventlet)
+       ("python-mock" ,python-mock)
+       ("python-reno" ,python-reno)
+       ("python-testrepository" ,python-testrepository)
+       ("python-testscenarios" ,python-testscenarios)))
+    (home-page "https://github.com/openstack-dev/hacking")
     (synopsis "OpenStack hacking guideline enforcement")
     (description
-      "Python-hacking is a set of flake8 plugins that test and enforce the
+     "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)))
@@ -152,15 +164,15 @@ guidelines}.")
            "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx"))))
     (build-system python-build-system)
     (arguments
-     ;; TODO: Requires newer version of testtools (>=1.4.0).
+     ;; TODO: Resolve dependency cycle and re-enable.
      '(#:tests? #f))
     (native-inputs
       `(("python-fixtures" ,python-fixtures)
-        ("python-oslosphinx" ,python-oslosphinx)
+        ; TODO re-add ("python-oslosphinx" ,python-oslosphinx)
         ("python-pbr" ,python-pbr)
         ("python-sphinx" ,python-sphinx)
         ("python-testtools" ,python-testtools)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis "Mock object framework for Python")
     (description
       "Mox3 is an unofficial port of the Google mox framework
@@ -196,7 +208,7 @@ tested on Python version 3.2, 2.7 and 2.6.")
         ("python-testrepository" ,python-testrepository)
         ("python-testscenarios" ,python-testscenarios)
         ("python-testtools" ,python-testtools)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis
       "OpenStack Client Configuration Library")
     (description
@@ -241,40 +253,6 @@ tested on Python version 3.2, 2.7 and 2.6.")
 (define-public python2-os-testr
   (package-with-python2 python-os-testr))
 
-(define-public python-requests-mock
-  (package
-    (name "python-requests-mock")
-    (version "1.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "requests-mock" version))
-       (sha256
-        (base32
-         "0gcjjwsckhqixyffflc54i59x41jnbb37bli077vabii1bjmkin6"))))
-    (build-system python-build-system)
-    (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
-    (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-discover" ,python-discover)
-       ("python-docutils" ,python-docutils)
-       ("python-fixtures" ,python-fixtures)
-       ("python-mock" ,python-mock)
-       ("python-sphinx" ,python-sphinx)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testtools" ,python-testtools)))
-    (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")
@@ -310,10 +288,16 @@ 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.")
+    (properties `((python2-variant . ,(delay python2-stevedore))))
     (license asl2.0)))
 
 (define-public python2-stevedore
-  (package-with-python2 python-stevedore))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-stevedore)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-tempest-lib
   (package
@@ -424,7 +408,7 @@ common features used in Tempest.")
         ("python-oslotest" ,python-oslotest)
         ("python-oslosphinx" ,python-oslosphinx)
         ("python-sphinx" ,python-sphinx)))
-    (home-page "http://launchpad.net/oslo")
+    (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo context library")
     (description
       "The Oslo context library has helpers to maintain useful information
@@ -459,7 +443,7 @@ pipeline and used by various modules such as logging.")
         ("python-mox3" ,python-mox3)
         ("python-oslotest" ,python-oslotest)
         ("python-testscenarios" ,python-testscenarios)))
-    (home-page "http://launchpad.net/oslo")
+    (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo internationalization (i18n) library")
     (description
       "The oslo.i18n library contain utilities for working with
@@ -501,7 +485,7 @@ in an application or library.")
       ("python-mock" ,python-mock)
       ("python-oslotest" ,python-oslotest)
       ("python-pbr" ,python-pbr)))
-  (home-page "http://launchpad.net/oslo")
+  (home-page "https://launchpad.net/oslo")
   (synopsis "Python logging library of the Oslo project")
   (description
     "The oslo.log (logging) configuration library provides standardized
@@ -540,7 +524,7 @@ handlers and support for context specific logging (like resource id’s etc).")
         ("python-mock" ,python-mock)
         ("python-oslo.i18n" ,python-oslo.i18n)
         ("python-oslotest" ,python-oslotest)))
-    (home-page "http://launchpad.net/oslo")
+    (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo serialization library")
     (description
       "The oslo.serialization library provides support for representing objects
@@ -550,18 +534,74 @@ in transmittable and storable formats, such as JSON and MessagePack.")
 (define-public python2-oslo.serialization
   (package-with-python2 python-oslo.serialization))
 
+(define-public python-reno
+  (package
+    (name "python-reno")
+    (version "2.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "reno" version))
+        (sha256
+          (base32 "1i2wnn5fnm3jm5774pahg000q0lma5i913hml91bbbm2mybphndd"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'init-git
+           (lambda _
+             ;; reno expects a git repo
+             (zero? (system* "git" "init")))))))
+    (propagated-inputs
+      `(("python-babel" ,python-babel)
+        ("python-dulwich" ,python-dulwich)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-six" ,python-six)))
+    (native-inputs
+      `(("python-testtools" ,python-testtools)
+        ("python-pbr" ,python-pbr)
+        ("python-testscenarios" ,python-testscenarios)
+        ("python-testrepository" ,python-testrepository)
+        ("python-mock" ,python-mock)
+        ("python-oslotest" ,python-oslotest)
+        ("gnupg" ,gnupg)
+        ("git" ,git)))
+    (home-page "http://docs.openstack.org/developer/reno/")
+    (synopsis "Release notes manager")
+    (description "Reno is a tool for storing release notes in a git repository
+and building documentation from them.")
+    (properties `((python2-variant . ,(delay python2-reno))))
+    (license asl2.0)))
+
+(define-public python2-reno
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-reno)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
+
 (define-public python-oslosphinx
   (package
     (name "python-oslosphinx")
-    (version "4.3.0")
+    (version "4.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslosphinx" version))
        (sha256
         (base32
-         "0cz8ym4i1n4rgljlqhyhfkpgdmid7nkb909k8r8nk186m9cmpla2"))))
+         "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; Note: Upstream tests would have also built the release notes.
+             ;; That only would work if we were in a git checkout.
+             ;; Therefore, we don't do it here.
+             (zero? (system* "python" "setup.py" "build_sphinx")))))))
     (propagated-inputs
       `(("python-requests" ,python-requests)))
     (native-inputs
@@ -569,7 +609,7 @@ in transmittable and storable formats, such as JSON and MessagePack.")
         ("python-docutils" ,python-docutils)
         ("python-hacking" ,python-hacking)
         ("python-sphinx" ,python-sphinx)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis "OpenStack sphinx extensions and theme")
     (description
       "This package provides themes and extensions for Sphinx documentation
@@ -606,15 +646,21 @@ from the OpenStack project.")
         ("python-testrepository" ,python-testrepository)
         ("python-testscenarios" ,python-testscenarios)
         ("python-testtools" ,python-testtools)))
-    (home-page "http://launchpad.net/oslo")
+    (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo test framework")
     (description
       "The Oslo Test framework provides common fixtures, support for debugging,
 and better support for mocking results.")
+    (properties `((python2-variant . ,(delay python2-oslotest))))
     (license asl2.0)))
 
 (define-public python2-oslotest
-  (package-with-python2 python-oslotest))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-oslotest)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-oslo.utils
   (package
@@ -654,7 +700,7 @@ and better support for mocking results.")
         ("python-mock" ,python-mock)
         ("python-mox3" ,python-mox3)
         ("python-testscenarios" ,python-testscenarios)))
-    (home-page "http://launchpad.net/oslo")
+    (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo utility library")
     (description
       "The @code{oslo.utils} library provides support for common utility type
@@ -677,6 +723,8 @@ handling.")
          (base32
           "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
     (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; FIXME: Many tests are failing.
     (native-inputs
      `(("python-sphinx" ,python-sphinx)
        ;; and some packages for the tests
@@ -713,7 +761,7 @@ handling.")
        ("python-requests" ,python-requests)
        ("python-six" ,python-six)
        ("python-stevedore" ,python-stevedore)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis "Client Library for OpenStack Identity")
     (description
      "Python-keystoneclient is the identity service used by OpenStack for
@@ -766,7 +814,7 @@ LDAP.")
     (propagated-inputs
      `(("python-requests" ,python-requests)
        ("python-six" ,python-six)))
-    (home-page "http://www.openstack.org/")
+    (home-page "https://www.openstack.org/")
     (synopsis "OpenStack Object Storage API Client Library")
     (description
      "OpenStack Object Storage (code-named Swift) creates redundant, scalable
@@ -783,6 +831,10 @@ permanence.")
 (define-public python2-swiftclient
   (let ((swiftclient (package-with-python2 python-swiftclient)))
     (package (inherit swiftclient)
+      (arguments
+       `(#:python ,python-2
+         ;; FIXME: subunit.run discover: error: no such option: --list
+         #:tests? #f))
       (propagated-inputs
        `(("python2-futures" ,python2-futures)
          ("python2-requests" ,python2-requests)
@@ -797,14 +849,14 @@ permanence.")
 (define-public python-git-review
   (package
     (name "python-git-review")
-    (version "1.25.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "git-review" version))
        (sha256
         (base32
-         "07d1jn9ryff5j5ic6qj5pbk10m1ccmpllj0wyalrcms1q9yhlzh8"))))
+         "150b1zvm6favd1ad8yl2bilq7xkr4m1mw9510frh47f8ghfkqz28"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f ; tests require a running Gerrit server
@@ -827,7 +879,7 @@ permanence.")
     (inputs
      `(("git" ,git)
        ("openssh" ,openssh)))
-    (home-page "http://docs.openstack.org/infra/git-review/")
+    (home-page "https://docs.openstack.org/infra/git-review/")
     (synopsis "Command-line tool for Gerrit")
     (description
      "Git-review is a command-line tool that helps submitting Git branches to