summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2024-02-19 14:53:26 +0100
committerRicardo Wurmus <rekado@elephly.net>2024-02-19 14:53:26 +0100
commita35372cc0b9525b401c9a8b8c5eea6c3a83c9f4b (patch)
tree54e82241f0ac07958adbead65996b8f7397d930b
parentd93e93e897dddac802833dab6441185ed8e887b6 (diff)
gnu: Add python-cloud-init.
* gnu/packages/python-web.scm (python-cloud-init): New variable. Change-Id: Iaaef6ff4f9c8a9ca5eb36da360bd0572cf2b1a1a
-rw-r--r--gnu/packages/python-web.scm66
1 files changed, 66 insertions, 0 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0315e11f53..5a6f401f89 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -102,6 +102,7 @@
#:use-module (gnu packages groff)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
@@ -7058,6 +7059,71 @@ interpreter written in pure Python.")
Encoding for HTTP.")
(license license:expat)))
+(define-public python-cloud-init
+ (package
+ (name "python-cloud-init")
+ (version "23.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/canonical/cloud-init")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0przjj2j1ws6b7sbgqxnffsarbbwl00lhq3bn7yiksp8kg8np1m1"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list
+ ;; This requires usermod
+ "--ignore=tests/unittests/distros/test_create_users.py"
+ ;; This writes to /var
+ "--ignore=tests/unittests/net/test_dhcp.py"
+ "-k"
+ (string-append
+ ;; This test messes with PATH, so it cannot find mkdir
+ "not test_path_env_gets_set_from_main"
+ ;; These all fail because /bin/sh doesn't exist. We cannot patch
+ ;; this because the generated scripts must use /bin/sh as they are
+ ;; supposed to be run on minimal systems.
+ " and not test_handler_creates_and_runs_bootcmd_script_with_instance_id"
+ " and not test_handler_runs_bootcmd_script_with_error"
+ " and not test_subp_combined_stderr_stdout"
+ " and not test_handle_part"))
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'patch-references
+ (lambda _
+ (substitute* "tests/unittests/cmd/test_clean.py"
+ (("#!/bin/sh") (string-append "#!" (which "sh")))))))))
+ (propagated-inputs
+ (list python-configobj
+ python-jinja2
+ python-jsonpatch
+ python-jsonschema
+ python-netifaces
+ python-oauthlib
+ python-pyserial
+ python-pyyaml
+ python-responses))
+ (native-inputs
+ (list procps ;for ps when running tests
+ python-pytest
+ python-pytest-cov
+ python-pytest-mock
+ python-passlib))
+ (home-page "https://github.com/canonical/cloud-init")
+ (synopsis "Cloud instance initialization tools")
+ (description
+ "Cloud-init is the multi-distribution method for cross-platform cloud
+instance initialization. It is supported across all major public cloud
+providers, provisioning systems for private cloud infrastructure, and
+bare-metal installations.")
+ ;; Either license can be chosen
+ (license (list license:asl2.0 license:gpl3))))
+
(define-public python-cloudscraper
(package
(name "python-cloudscraper")