summary refs log tree commit diff
path: root/gnu/packages/openstack.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/openstack.scm')
-rw-r--r--gnu/packages/openstack.scm155
1 files changed, 150 insertions, 5 deletions
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 48a5c6b7e6..e258b89e2f 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,12 +19,14 @@
 
 (define-module (gnu packages openstack)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #: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
@@ -302,7 +304,12 @@ portions of your testing code.")
     (license asl2.0)))
 
 (define-public python2-requests-mock
-  (package-with-python2 python-requests-mock))
+  (let ((requests-mock (package-with-python2 python-requests-mock)))
+    (package (inherit requests-mock)
+      (propagated-inputs
+       `(("python2-requests" ,python2-requests)
+         ,@(alist-delete "python-requests"
+                         (package-propagated-inputs requests-mock)))))))
 
 (define-public python-stevedore
   (package
@@ -385,7 +392,12 @@ common features used in Tempest.")
     (license asl2.0)))
 
 (define-public python2-tempest-lib
-  (package-with-python2 python-tempest-lib))
+  (let ((tempest-lib (package-with-python2 python-tempest-lib)))
+    (package (inherit tempest-lib)
+      (propagated-inputs
+       `(("python2-jsonschema", python2-jsonschema)
+         ,@(alist-delete "python-jsonschema"
+                         (package-propagated-inputs tempest-lib)))))))
 
 ;; Packages from the Oslo library
 (define-public python-oslo.config
@@ -594,7 +606,9 @@ from the OpenStack project.")
     (license asl2.0)))
 
 (define-public python2-oslosphinx
-  (package-with-python2 python-oslosphinx))
+  (let ((oslosphinx (package-with-python2 python-oslosphinx)))
+    (package (inherit oslosphinx)
+      (propagated-inputs `(("python2-requests" ,python2-requests))))))
 
 (define-public python-oslotest
   (package
@@ -679,3 +693,134 @@ handling.")
 
 (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")))))))