gnu: Add python-enoslib.
* gnu/packages/python-web.scm (python-enoslib): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
parent
54003af85c
commit
e24f7762ac
|
@ -84,6 +84,7 @@
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
|
@ -8004,3 +8005,59 @@ list, create, update, or delete resources (e.g. Order, Product, Collection).")
|
||||||
You can use it as a library in your python project or you can explore the
|
You can use it as a library in your python project or you can explore the
|
||||||
Grid5000 resources interactively using the embedded shell.")
|
Grid5000 resources interactively using the embedded shell.")
|
||||||
(license license:gpl3+)))
|
(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+)))
|
||||||
|
|
Reference in New Issue