openstack.scm 33 KB

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