gnu: Add python-enoslib.

* gnu/packages/python-web.scm (python-enoslib): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Matthieu Simonin 2022-11-07 23:52:40 +01:00 committed by Ludovic Courtès
parent 54003af85c
commit e24f7762ac
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -84,6 +84,7 @@ (define-module (gnu packages python-web)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
@ -8004,3 +8005,59 @@ (define-public python-grid5000
You can use it as a library in your python project or you can explore the
Grid5000 resources interactively using the embedded shell.")
(license license:gpl3+)))
(define-public python-enoslib
(package
(name "python-enoslib")
(version "8.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.inria.fr/discovery/enoslib")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
"0vs6b0bnlv95mzv0rjbxqwrhzkgjkn91gqipgwdf7y4ffpz8nybg")))
(build-system python-build-system)
(native-inputs (list python-wheel python-pytest python-ddt
python-freezegun))
(propagated-inputs (list ansible
python-cryptography
python-grid5000
python-jsonschema
python-netaddr
python-packaging
python-requests
python-rich
python-sshtunnel
python-pytz))
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Otherwise Ansible fails to create its config directory.
(setenv "HOME" "/tmp")
;; Ignoring the tests requiring an extra dependency (iotlabcli)
(invoke "pytest" "enoslib/tests/unit"
"--ignore"
"enoslib/tests/unit/infra/test_utils.py"
"--ignore-glob"
"enoslib/tests/unit/infra/enos_iotlab/*"))))
;; Disable the sanity check, which fails with the following error:
;;
;; ContextualVersionConflict(rich 12.4.1
;; (/gnu/store/...-python-rich-12.4.1/lib/python3.9/site-packages),
;; Requirement.parse('rich[jupyter]~=12.0.0'), {'enoslib'})
;;
;; The optional jupyter dependency of rich isn't critical for
;; EnOSlib to work
(delete 'sanity-check))))
(home-page "https://discovery.gitlabpages.inria.fr/enoslib/index.html")
(synopsis "Deploy distributed testbeds on a variety of platforms")
(description
"EnOSlib is a library to build experimental frameworks on various
scientific testbeds. It lets you deploy networks of machines on actual
hardware on Grid'5000 or via OpenStack, to Vagrant, Chameleon, and more.")
(license license:gpl3+)))