>>> cloud-init: Building community/cloud-init 24.3.1-r2 (using abuild 3.15.0-r0) started Thu, 09 Oct 2025 02:32:20 +0000 >>> cloud-init: Validating /home/udu/aports/community/cloud-init/APKBUILD... >>> cloud-init: Analyzing dependencies... >>> cloud-init: Installing for build: build-base blkid cloud-utils-growpart iproute2-minimal python3 py3-configobj py3-jinja2 py3-jsonpatch py3-jsonschema py3-requests py3-yaml shadow tzdata eudev-dev py3-setuptools bash coreutils grep lsblk parted procps-ng py3-netifaces py3-passlib py3-pyserial py3-pytest py3-pytest-mock py3-responses py3-tox sfdisk sgdisk WARNING: opening /home/udu/packages//community: No such file or directory WARNING: opening /home/udu/packages//main: No such file or directory fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz (1/118) Installing libeconf (0.6.3-r0) (2/118) Installing libblkid (2.41-r9) (3/118) Installing blkid (2.41-r9) (4/118) Installing libsmartcols (2.41-r9) (5/118) Installing partx (2.41-r9) (6/118) Installing libuuid (2.41-r9) (7/118) Installing libfdisk (2.41-r9) (8/118) Installing sfdisk (2.41-r9) (9/118) Installing cloud-utils-growpart (0.33-r1) (10/118) Installing libelf (0.193-r0) (11/118) Installing libmnl (1.0.5-r2) (12/118) Installing iproute2-minimal (6.15.0-r0) (13/118) Installing py3-six (1.17.0-r0) (14/118) Installing py3-six-pyc (1.17.0-r0) (15/118) Installing py3-configobj (5.0.9-r0) (16/118) Installing py3-configobj-pyc (5.0.9-r0) (17/118) Installing py3-markupsafe (3.0.2-r0) (18/118) Installing py3-markupsafe-pyc (3.0.2-r0) (19/118) Installing py3-jinja2 (3.1.6-r0) (20/118) Installing py3-jinja2-pyc (3.1.6-r0) (21/118) Installing py3-jsonpointer (3.0.0-r0) (22/118) Installing py3-jsonpointer-pyc (3.0.0-r0) (23/118) Installing py3-jsonpatch (1.33-r3) (24/118) Installing py3-jsonpatch-pyc (1.33-r3) (25/118) Installing py3-attrs (25.3.0-r0) (26/118) Installing py3-attrs-pyc (25.3.0-r0) (27/118) Installing py3-rpds-py (0.25.1-r0) (28/118) Installing py3-rpds-py-pyc (0.25.1-r0) (29/118) Installing py3-typing-extensions (4.13.2-r0) (30/118) Installing py3-typing-extensions-pyc (4.13.2-r0) (31/118) Installing py3-referencing (0.36.2-r1) (32/118) Installing py3-referencing-pyc (0.36.2-r1) (33/118) Installing py3-jsonschema-specifications (2025.4.1-r0) (34/118) Installing py3-jsonschema-specifications-pyc (2025.4.1-r0) (35/118) Installing py3-jsonschema (4.23.0-r0) (36/118) Installing py3-jsonschema-pyc (4.23.0-r0) (37/118) Installing py3-certifi (2025.4.26-r0) (38/118) Installing py3-certifi-pyc (2025.4.26-r0) (39/118) Installing py3-charset-normalizer (3.4.2-r0) (40/118) Installing py3-charset-normalizer-pyc (3.4.2-r0) (41/118) Installing py3-idna (3.10-r0) (42/118) Installing py3-idna-pyc (3.10-r0) (43/118) Installing py3-urllib3 (1.26.20-r0) (44/118) Installing py3-urllib3-pyc (1.26.20-r0) (45/118) Installing py3-requests (2.32.5-r0) (46/118) Installing py3-requests-pyc (2.32.5-r0) (47/118) Installing yaml (0.2.5-r2) (48/118) Installing py3-yaml (6.0.2-r0) (49/118) Installing py3-yaml-pyc (6.0.2-r0) (50/118) Installing libmd (1.1.0-r0) (51/118) Installing libbsd (0.12.2-r0) (52/118) Installing skalibs-libs (2.14.4.0-r0) (53/118) Installing utmps-libs (0.1.3.1-r0) (54/118) Installing linux-pam (1.7.0-r4) (55/118) Installing shadow (4.17.3-r0) (56/118) Installing tzdata (2025b-r0) (57/118) Installing eudev-libs (3.2.14-r5) (58/118) Installing eudev-dev (3.2.14-r5) (59/118) Installing py3-parsing (3.2.3-r0) (60/118) Installing py3-parsing-pyc (3.2.3-r0) (61/118) Installing py3-packaging (25.0-r0) (62/118) Installing py3-packaging-pyc (25.0-r0) (63/118) Installing py3-setuptools (80.9.0-r0) (64/118) Installing py3-setuptools-pyc (80.9.0-r0) (65/118) Installing coreutils-env (9.7-r1) (66/118) Installing coreutils-fmt (9.7-r1) (67/118) Installing coreutils-sha512sum (9.7-r1) (68/118) Installing libattr (2.5.2-r2) (69/118) Installing coreutils (9.7-r1) (70/118) Installing grep (3.12-r0) (71/118) Installing libmount (2.41-r9) (72/118) Installing lsblk (2.41-r9) (73/118) Installing device-mapper-libs (2.03.32-r0) (74/118) Installing parted (3.6-r2) (75/118) Installing libproc2 (4.0.4-r3) (76/118) Installing procps-ng (4.0.4-r3) (77/118) Installing py3-netifaces (0.11.0-r3) (78/118) Installing py3-passlib (1.7.4-r7) (79/118) Installing py3-passlib-pyc (1.7.4-r7) (80/118) Installing py3-pyserial (3.5-r7) (81/118) Installing py3-pyserial-pyc (3.5-r7) (82/118) Installing py3-iniconfig (2.1.0-r0) (83/118) Installing py3-iniconfig-pyc (2.1.0-r0) (84/118) Installing py3-pluggy (1.5.0-r0) (85/118) Installing py3-pluggy-pyc (1.5.0-r0) (86/118) Installing py3-py (1.11.0-r4) (87/118) Installing py3-py-pyc (1.11.0-r4) (88/118) Installing py3-pytest (8.3.5-r0) (89/118) Installing py3-pytest-pyc (8.3.5-r0) (90/118) Installing py3-mock (5.2.0-r0) (91/118) Installing py3-mock-pyc (5.2.0-r0) (92/118) Installing py3-pytest-mock (3.10.0-r3) (93/118) Installing py3-pytest-mock-pyc (3.10.0-r3) (94/118) Installing py3-toml (0.10.2-r7) (95/118) Installing py3-toml-pyc (0.10.2-r7) (96/118) Installing py3-responses (0.25.0-r1) (97/118) Installing py3-responses-pyc (0.25.0-r1) (98/118) Installing py3-cachetools (5.5.2-r0) (99/118) Installing py3-cachetools-pyc (5.5.2-r0) (100/118) Installing py3-chardet (5.2.0-r1) (101/118) Installing py3-chardet-pyc (5.2.0-r1) (102/118) Installing py3-colorama (0.4.6-r5) (103/118) Installing py3-colorama-pyc (0.4.6-r5) (104/118) Installing py3-filelock (3.16.1-r1) (105/118) Installing py3-filelock-pyc (3.16.1-r1) (106/118) Installing py3-platformdirs (4.3.8-r0) (107/118) Installing py3-platformdirs-pyc (4.3.8-r0) (108/118) Installing py3-pyproject-api (1.9.0-r1) (109/118) Installing py3-pyproject-api-pyc (1.9.0-r1) (110/118) Installing py3-distlib (0.3.9-r0) (111/118) Installing py3-distlib-pyc (0.3.9-r0) (112/118) Installing py3-virtualenv (20.31.2-r0) (113/118) Installing py3-virtualenv-pyc (20.31.2-r0) (114/118) Installing py3-tox (4.6.4-r1) (115/118) Installing py3-tox-pyc (4.6.4-r1) (116/118) Installing popt (1.19-r4) (117/118) Installing sgdisk (1.0.10-r1) (118/118) Installing .makedepends-cloud-init (20251009.023220) Executing busybox-1.37.0-r19.trigger OK: 340 MiB in 207 packages >>> cloud-init: Cleaning up srcdir >>> cloud-init: Cleaning up pkgdir >>> cloud-init: Cleaning up tmpdir >>> cloud-init: Fetching cloud-init-24.3.1.tar.gz::https://github.com/canonical/cloud-init/archive/refs/tags/24.3.1.tar.gz >>> cloud-init: Fetching cloud-init-24.3.1.tar.gz::https://github.com/canonical/cloud-init/archive/refs/tags/24.3.1.tar.gz >>> cloud-init: Checking sha512sums... cloud-init-24.3.1.tar.gz: OK 01-oauthlib-remove.patch: OK 02-disable-irrelevant-modules.patch: OK 04-set-default-datasource-list.patch: OK cloud-init-hotplugd: OK cloud-init-hotplugd.initd: OK cloud-init.logrotate: OK interfaces: OK setup-cloud-init: OK README.Alpine: OK >>> cloud-init: Unpacking /var/cache/distfiles/cloud-init-24.3.1.tar.gz... >>> cloud-init: 01-oauthlib-remove.patch patching file requirements.txt >>> cloud-init: 02-disable-irrelevant-modules.patch patching file config/cloud.cfg.tmpl Hunk #1 succeeded at 203 with fuzz 1. >>> cloud-init: 04-set-default-datasource-list.patch patching file config/cloud.cfg.tmpl Hunk #1 succeeded at 88 (offset 1 line). /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/setup.py:191: SyntaxWarning: invalid escape sequence '\o' if cpe_data[1] == "\o": # noqa: W605 /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tools/read-dependencies:52: SyntaxWarning: invalid escape sequence '\.' sed -i 's/download\.fedoraproject\.org/dl.fedoraproject.org/g' /etc/yum.repos.d/*.repo running build running build_py creating build/lib/cloudinit copying cloudinit/importer.py -> build/lib/cloudinit copying cloudinit/helpers.py -> build/lib/cloudinit copying cloudinit/atomic_helper.py -> build/lib/cloudinit copying cloudinit/settings.py -> build/lib/cloudinit copying cloudinit/lifecycle.py -> build/lib/cloudinit copying cloudinit/dmi.py -> build/lib/cloudinit copying cloudinit/gpg.py -> build/lib/cloudinit copying cloudinit/socket.py -> build/lib/cloudinit copying cloudinit/type_utils.py -> build/lib/cloudinit copying cloudinit/event.py -> build/lib/cloudinit copying cloudinit/apport.py -> build/lib/cloudinit copying cloudinit/simpletable.py -> build/lib/cloudinit copying cloudinit/util.py -> build/lib/cloudinit copying cloudinit/templater.py -> build/lib/cloudinit copying cloudinit/temp_utils.py -> build/lib/cloudinit copying cloudinit/netinfo.py -> build/lib/cloudinit copying cloudinit/log.py -> build/lib/cloudinit copying cloudinit/user_data.py -> build/lib/cloudinit copying cloudinit/signal_handler.py -> build/lib/cloudinit copying cloudinit/version.py -> build/lib/cloudinit copying cloudinit/__init__.py -> build/lib/cloudinit copying cloudinit/subp.py -> build/lib/cloudinit copying cloudinit/registry.py -> build/lib/cloudinit copying cloudinit/cloud.py -> build/lib/cloudinit copying cloudinit/persistence.py -> build/lib/cloudinit copying cloudinit/stages.py -> build/lib/cloudinit copying cloudinit/url_helper.py -> build/lib/cloudinit copying cloudinit/features.py -> build/lib/cloudinit copying cloudinit/warnings.py -> build/lib/cloudinit copying cloudinit/ssh_util.py -> build/lib/cloudinit copying cloudinit/safeyaml.py -> build/lib/cloudinit creating build/lib/cloudinit/filters copying cloudinit/filters/launch_index.py -> build/lib/cloudinit/filters copying cloudinit/filters/__init__.py -> build/lib/cloudinit/filters creating build/lib/cloudinit/cmd copying cloudinit/cmd/status.py -> build/lib/cloudinit/cmd copying cloudinit/cmd/clean.py -> build/lib/cloudinit/cmd copying cloudinit/cmd/cloud_id.py -> build/lib/cloudinit/cmd copying cloudinit/cmd/query.py -> build/lib/cloudinit/cmd copying cloudinit/cmd/__init__.py -> build/lib/cloudinit/cmd copying cloudinit/cmd/main.py -> build/lib/cloudinit/cmd creating build/lib/cloudinit/config copying cloudinit/config/cc_set_passwords.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ca_certs.py -> build/lib/cloudinit/config copying cloudinit/config/cc_scripts_vendor.py -> build/lib/cloudinit/config copying cloudinit/config/cc_growpart.py -> build/lib/cloudinit/config copying cloudinit/config/cc_phone_home.py -> build/lib/cloudinit/config copying cloudinit/config/cc_lxd.py -> build/lib/cloudinit/config copying cloudinit/config/cc_timezone.py -> build/lib/cloudinit/config copying cloudinit/config/cc_zypper_add_repo.py -> build/lib/cloudinit/config copying cloudinit/config/cc_reset_rmc.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ntp.py -> build/lib/cloudinit/config copying cloudinit/config/cc_salt_minion.py -> build/lib/cloudinit/config copying cloudinit/config/cc_scripts_per_once.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ssh.py -> build/lib/cloudinit/config copying cloudinit/config/cc_scripts_per_boot.py -> build/lib/cloudinit/config copying cloudinit/config/cc_yum_add_repo.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ssh_import_id.py -> build/lib/cloudinit/config copying cloudinit/config/cc_rh_subscription.py -> build/lib/cloudinit/config copying cloudinit/config/cc_grub_dpkg.py -> build/lib/cloudinit/config copying cloudinit/config/cc_keyboard.py -> build/lib/cloudinit/config copying cloudinit/config/cc_chef.py -> build/lib/cloudinit/config copying cloudinit/config/cc_wireguard.py -> build/lib/cloudinit/config copying cloudinit/config/cc_write_files.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ubuntu_drivers.py -> build/lib/cloudinit/config copying cloudinit/config/cc_write_files_deferred.py -> build/lib/cloudinit/config copying cloudinit/config/cc_landscape.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ansible.py -> build/lib/cloudinit/config copying cloudinit/config/cc_mounts.py -> build/lib/cloudinit/config copying cloudinit/config/cc_keys_to_console.py -> build/lib/cloudinit/config copying cloudinit/config/cc_update_hostname.py -> build/lib/cloudinit/config copying cloudinit/config/cc_users_groups.py -> build/lib/cloudinit/config copying cloudinit/config/cc_apt_pipelining.py -> build/lib/cloudinit/config copying cloudinit/config/cc_power_state_change.py -> build/lib/cloudinit/config copying cloudinit/config/cc_update_etc_hosts.py -> build/lib/cloudinit/config copying cloudinit/config/cc_mcollective.py -> build/lib/cloudinit/config copying cloudinit/config/cc_apk_configure.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ubuntu_pro.py -> build/lib/cloudinit/config copying cloudinit/config/cc_rsyslog.py -> build/lib/cloudinit/config copying cloudinit/config/cc_disk_setup.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ssh_authkey_fingerprints.py -> build/lib/cloudinit/config copying cloudinit/config/cc_scripts_per_instance.py -> build/lib/cloudinit/config copying cloudinit/config/cc_scripts_user.py -> build/lib/cloudinit/config copying cloudinit/config/cc_locale.py -> build/lib/cloudinit/config copying cloudinit/config/schema.py -> build/lib/cloudinit/config copying cloudinit/config/cc_final_message.py -> build/lib/cloudinit/config copying cloudinit/config/cc_apt_configure.py -> build/lib/cloudinit/config copying cloudinit/config/cc_runcmd.py -> build/lib/cloudinit/config copying cloudinit/config/cc_set_hostname.py -> build/lib/cloudinit/config copying cloudinit/config/cc_snap.py -> build/lib/cloudinit/config copying cloudinit/config/cc_bootcmd.py -> build/lib/cloudinit/config copying cloudinit/config/cc_seed_random.py -> build/lib/cloudinit/config copying cloudinit/config/cc_ubuntu_autoinstall.py -> build/lib/cloudinit/config copying cloudinit/config/cc_disable_ec2_metadata.py -> build/lib/cloudinit/config copying cloudinit/config/cc_install_hotplug.py -> build/lib/cloudinit/config copying cloudinit/config/cc_fan.py -> build/lib/cloudinit/config copying cloudinit/config/cc_resolv_conf.py -> build/lib/cloudinit/config copying cloudinit/config/__init__.py -> build/lib/cloudinit/config copying cloudinit/config/cc_puppet.py -> build/lib/cloudinit/config copying cloudinit/config/cc_byobu.py -> build/lib/cloudinit/config copying cloudinit/config/cc_resizefs.py -> build/lib/cloudinit/config copying cloudinit/config/modules.py -> build/lib/cloudinit/config copying cloudinit/config/cc_spacewalk.py -> build/lib/cloudinit/config copying cloudinit/config/cc_package_update_upgrade_install.py -> build/lib/cloudinit/config creating build/lib/cloudinit/handlers copying cloudinit/handlers/jinja_template.py -> build/lib/cloudinit/handlers copying cloudinit/handlers/shell_script.py -> build/lib/cloudinit/handlers copying cloudinit/handlers/boot_hook.py -> build/lib/cloudinit/handlers copying cloudinit/handlers/shell_script_by_frequency.py -> build/lib/cloudinit/handlers copying cloudinit/handlers/__init__.py -> build/lib/cloudinit/handlers copying cloudinit/handlers/cloud_config.py -> build/lib/cloudinit/handlers creating build/lib/cloudinit/mergers copying cloudinit/mergers/m_dict.py -> build/lib/cloudinit/mergers copying cloudinit/mergers/m_str.py -> build/lib/cloudinit/mergers copying cloudinit/mergers/m_list.py -> build/lib/cloudinit/mergers copying cloudinit/mergers/__init__.py -> build/lib/cloudinit/mergers creating build/lib/cloudinit/analyze copying cloudinit/analyze/dump.py -> build/lib/cloudinit/analyze copying cloudinit/analyze/__init__.py -> build/lib/cloudinit/analyze copying cloudinit/analyze/show.py -> build/lib/cloudinit/analyze creating build/lib/cloudinit/net copying cloudinit/net/eni.py -> build/lib/cloudinit/net copying cloudinit/net/network_state.py -> build/lib/cloudinit/net copying cloudinit/net/ephemeral.py -> build/lib/cloudinit/net copying cloudinit/net/cmdline.py -> build/lib/cloudinit/net copying cloudinit/net/bsd.py -> build/lib/cloudinit/net copying cloudinit/net/udev.py -> build/lib/cloudinit/net copying cloudinit/net/freebsd.py -> build/lib/cloudinit/net copying cloudinit/net/sysconfig.py -> build/lib/cloudinit/net copying cloudinit/net/renderers.py -> build/lib/cloudinit/net copying cloudinit/net/networkd.py -> build/lib/cloudinit/net copying cloudinit/net/renderer.py -> build/lib/cloudinit/net copying cloudinit/net/netplan.py -> build/lib/cloudinit/net copying cloudinit/net/openbsd.py -> build/lib/cloudinit/net copying cloudinit/net/__init__.py -> build/lib/cloudinit/net copying cloudinit/net/network_manager.py -> build/lib/cloudinit/net copying cloudinit/net/activators.py -> build/lib/cloudinit/net copying cloudinit/net/dhcp.py -> build/lib/cloudinit/net copying cloudinit/net/netbsd.py -> build/lib/cloudinit/net creating build/lib/cloudinit/sources copying cloudinit/sources/DataSourceRbxCloud.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceVultr.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceAzure.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceBigstep.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceOVF.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceAliYun.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceScaleway.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceNWCS.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceNone.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceWSL.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceAltCloud.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceCloudStack.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceSmartOS.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceIBMCloud.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceGCE.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceEc2.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceOpenStack.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceExoscale.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceOpenNebula.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceMAAS.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceConfigDrive.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceCloudSigma.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceHetzner.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceAkamai.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceDigitalOcean.py -> build/lib/cloudinit/sources copying cloudinit/sources/__init__.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceVMware.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceLXD.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceOracle.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceUpCloud.py -> build/lib/cloudinit/sources copying cloudinit/sources/DataSourceNoCloud.py -> build/lib/cloudinit/sources creating build/lib/cloudinit/distros copying cloudinit/distros/rhel_util.py -> build/lib/cloudinit/distros copying cloudinit/distros/arch.py -> build/lib/cloudinit/distros copying cloudinit/distros/debian.py -> build/lib/cloudinit/distros copying cloudinit/distros/aosc.py -> build/lib/cloudinit/distros copying cloudinit/distros/centos.py -> build/lib/cloudinit/distros copying cloudinit/distros/rhel.py -> build/lib/cloudinit/distros copying cloudinit/distros/virtuozzo.py -> build/lib/cloudinit/distros copying cloudinit/distros/rocky.py -> build/lib/cloudinit/distros copying cloudinit/distros/opensuse.py -> build/lib/cloudinit/distros copying cloudinit/distros/bsd.py -> build/lib/cloudinit/distros copying cloudinit/distros/ug_util.py -> build/lib/cloudinit/distros copying cloudinit/distros/alpine.py -> build/lib/cloudinit/distros copying cloudinit/distros/azurelinux.py -> build/lib/cloudinit/distros copying cloudinit/distros/opensuse-microos.py -> build/lib/cloudinit/distros copying cloudinit/distros/networking.py -> build/lib/cloudinit/distros copying cloudinit/distros/photon.py -> build/lib/cloudinit/distros copying cloudinit/distros/freebsd.py -> build/lib/cloudinit/distros copying cloudinit/distros/opensuse-tumbleweed.py -> build/lib/cloudinit/distros copying cloudinit/distros/ubuntu.py -> build/lib/cloudinit/distros copying cloudinit/distros/bsd_utils.py -> build/lib/cloudinit/distros copying cloudinit/distros/opensuse-leap.py -> build/lib/cloudinit/distros copying cloudinit/distros/fedora.py -> build/lib/cloudinit/distros copying cloudinit/distros/miraclelinux.py -> build/lib/cloudinit/distros copying cloudinit/distros/openeuler.py -> build/lib/cloudinit/distros copying cloudinit/distros/suse.py -> build/lib/cloudinit/distros copying cloudinit/distros/almalinux.py -> build/lib/cloudinit/distros copying cloudinit/distros/cloudlinux.py -> build/lib/cloudinit/distros copying cloudinit/distros/amazon.py -> build/lib/cloudinit/distros copying cloudinit/distros/gentoo.py -> build/lib/cloudinit/distros copying cloudinit/distros/openmandriva.py -> build/lib/cloudinit/distros copying cloudinit/distros/dragonflybsd.py -> build/lib/cloudinit/distros copying cloudinit/distros/eurolinux.py -> build/lib/cloudinit/distros copying cloudinit/distros/sle_hpc.py -> build/lib/cloudinit/distros copying cloudinit/distros/openbsd.py -> build/lib/cloudinit/distros copying cloudinit/distros/__init__.py -> build/lib/cloudinit/distros copying cloudinit/distros/sles.py -> build/lib/cloudinit/distros copying cloudinit/distros/TencentOS.py -> build/lib/cloudinit/distros copying cloudinit/distros/OpenCloudOS.py -> build/lib/cloudinit/distros copying cloudinit/distros/mariner.py -> build/lib/cloudinit/distros copying cloudinit/distros/cos.py -> build/lib/cloudinit/distros copying cloudinit/distros/netbsd.py -> build/lib/cloudinit/distros copying cloudinit/distros/sle-micro.py -> build/lib/cloudinit/distros creating build/lib/cloudinit/reporting copying cloudinit/reporting/events.py -> build/lib/cloudinit/reporting copying cloudinit/reporting/handlers.py -> build/lib/cloudinit/reporting copying cloudinit/reporting/__init__.py -> build/lib/cloudinit/reporting creating build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/parser.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/render.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/make_mime.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/net_convert.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/__init__.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/logs.py -> build/lib/cloudinit/cmd/devel copying cloudinit/cmd/devel/hotplug_hook.py -> build/lib/cloudinit/cmd/devel creating build/lib/cloudinit/config/schemas copying cloudinit/config/schemas/__init__.py -> build/lib/cloudinit/config/schemas creating build/lib/cloudinit/net/netops copying cloudinit/net/netops/iproute2.py -> build/lib/cloudinit/net/netops copying cloudinit/net/netops/bsd_netops.py -> build/lib/cloudinit/net/netops copying cloudinit/net/netops/__init__.py -> build/lib/cloudinit/net/netops creating build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/openstack.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/digitalocean.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/azure.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/akamai.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/netlink.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/cloudsigma.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/ec2.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/__init__.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/upcloud.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/hetzner.py -> build/lib/cloudinit/sources/helpers copying cloudinit/sources/helpers/vultr.py -> build/lib/cloudinit/sources/helpers creating build/lib/cloudinit/sources/azure copying cloudinit/sources/azure/imds.py -> build/lib/cloudinit/sources/azure copying cloudinit/sources/azure/kvp.py -> build/lib/cloudinit/sources/azure copying cloudinit/sources/azure/errors.py -> build/lib/cloudinit/sources/azure copying cloudinit/sources/azure/identity.py -> build/lib/cloudinit/sources/azure copying cloudinit/sources/azure/__init__.py -> build/lib/cloudinit/sources/azure creating build/lib/cloudinit/sources/helpers/vmware copying cloudinit/sources/helpers/vmware/__init__.py -> build/lib/cloudinit/sources/helpers/vmware creating build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config_custom_script.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/guestcust_error.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config_passwd.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config_source.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/nic_base.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/nic.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config_file.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/guestcust_util.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/guestcust_event.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/__init__.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/boot_proto.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/config_nic.py -> build/lib/cloudinit/sources/helpers/vmware/imc copying cloudinit/sources/helpers/vmware/imc/guestcust_state.py -> build/lib/cloudinit/sources/helpers/vmware/imc creating build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/ifconfig.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/sys_conf.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/hosts.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/resolv_conf.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/__init__.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/hostname.py -> build/lib/cloudinit/distros/parsers copying cloudinit/distros/parsers/networkmanager_conf.py -> build/lib/cloudinit/distros/parsers creating build/lib/cloudinit/distros/package_management copying cloudinit/distros/package_management/apt.py -> build/lib/cloudinit/distros/package_management copying cloudinit/distros/package_management/snap.py -> build/lib/cloudinit/distros/package_management copying cloudinit/distros/package_management/package_manager.py -> build/lib/cloudinit/distros/package_management copying cloudinit/distros/package_management/utils.py -> build/lib/cloudinit/distros/package_management copying cloudinit/distros/package_management/__init__.py -> build/lib/cloudinit/distros/package_management copying cloudinit/config/schemas/schema-network-config-v1.json -> build/lib/cloudinit/config/schemas copying cloudinit/config/schemas/schema-network-config-v2.json -> build/lib/cloudinit/config/schemas copying cloudinit/config/schemas/versions.schema.cloud-config.json -> build/lib/cloudinit/config/schemas copying cloudinit/config/schemas/schema-cloud-config-v1.json -> build/lib/cloudinit/config/schemas running build_scripts creating build/scripts-3.12 copying tools/cloud-init-per -> build/scripts-3.12 ============================= test session starts ============================== platform linux -- Python 3.12.11, pytest-8.3.5, pluggy-1.5.0 rootdir: /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1 configfile: tox.ini testpaths: tools, tests/unittests plugins: mock-3.10.0 collected 5139 items / 2 deselected / 1 skipped / 5137 selected tests/unittests/analyze/test_boot.py ............ [ 0%] tests/unittests/analyze/test_dump.py ........... [ 0%] tests/unittests/analyze/test_show.py . [ 0%] tests/unittests/cmd/devel/test_hotplug_hook.py ................. [ 0%] tests/unittests/cmd/devel/test_init.py . [ 0%] tests/unittests/cmd/devel/test_logs.py ............ [ 1%] tests/unittests/cmd/devel/test_net_convert.py ................. [ 1%] tests/unittests/cmd/devel/test_render.py ........... [ 1%] tests/unittests/cmd/test_clean.py ................ [ 1%] tests/unittests/cmd/test_cloud_id.py ............ [ 2%] tests/unittests/cmd/test_main.py ....... [ 2%] tests/unittests/cmd/test_query.py ........................... [ 2%] tests/unittests/cmd/test_status.py ..................................... [ 3%] ....... [ 3%] tests/unittests/config/test_apt_conf_v1.py ........... [ 3%] tests/unittests/config/test_apt_configure_sources_list_v1.py ........ [ 4%] tests/unittests/config/test_apt_configure_sources_list_v3.py .......... [ 4%] tests/unittests/config/test_apt_key.py .......... [ 4%] tests/unittests/config/test_apt_source_v1.py ........................ [ 4%] tests/unittests/config/test_apt_source_v3.py ........................... [ 5%] ............................. [ 5%] tests/unittests/config/test_cc_ansible.py ..................... [ 6%] tests/unittests/config/test_cc_apk_configure.py ..................... [ 6%] tests/unittests/config/test_cc_apt_configure.py ........................ [ 7%] ..................... [ 7%] tests/unittests/config/test_cc_apt_pipelining.py .......... [ 7%] tests/unittests/config/test_cc_bootcmd.py ........ [ 8%] tests/unittests/config/test_cc_byobu.py ... [ 8%] tests/unittests/config/test_cc_ca_certs.py ....................... [ 8%] tests/unittests/config/test_cc_chef.py ................................. [ 9%] ............ [ 9%] tests/unittests/config/test_cc_disable_ec2_metadata.py .... [ 9%] tests/unittests/config/test_cc_disk_setup.py ...................... [ 9%] tests/unittests/config/test_cc_fan.py .. [ 9%] tests/unittests/config/test_cc_final_message.py ..... [ 10%] tests/unittests/config/test_cc_growpart.py ............................. [ 10%] ... [ 10%] tests/unittests/config/test_cc_grub_dpkg.py .................. [ 11%] tests/unittests/config/test_cc_install_hotplug.py ....... [ 11%] tests/unittests/config/test_cc_keyboard.py ............ [ 11%] tests/unittests/config/test_cc_keys_to_console.py .............. [ 11%] tests/unittests/config/test_cc_landscape.py ................. [ 11%] tests/unittests/config/test_cc_locale.py ....... [ 12%] tests/unittests/config/test_cc_lxd.py .................................. [ 12%] ....... [ 12%] tests/unittests/config/test_cc_mcollective.py ......... [ 13%] tests/unittests/config/test_cc_mounts.py ............................... [ 13%] .......................... [ 14%] tests/unittests/config/test_cc_ntp.py .................................. [ 14%] . [ 14%] tests/unittests/config/test_cc_package_update_upgrade_install.py ....... [ 15%] ........... [ 15%] tests/unittests/config/test_cc_phone_home.py ................ [ 15%] tests/unittests/config/test_cc_power_state_change.py ................... [ 15%] ........... [ 16%] tests/unittests/config/test_cc_puppet.py ............................... [ 16%] ........ [ 16%] tests/unittests/config/test_cc_resizefs.py ............................. [ 17%] ......... [ 17%] tests/unittests/config/test_cc_resolv_conf.py .......................... [ 18%] [ 18%] tests/unittests/config/test_cc_rh_subscription.py ................ [ 18%] tests/unittests/config/test_cc_rsyslog.py .............................. [ 19%] .. [ 19%] tests/unittests/config/test_cc_runcmd.py ......... [ 19%] tests/unittests/config/test_cc_scripts_vendor.py ... [ 19%] tests/unittests/config/test_cc_seed_random.py ................ [ 19%] tests/unittests/config/test_cc_set_hostname.py ................. [ 19%] tests/unittests/config/test_cc_set_passwords.py ........................ [ 20%] .................. [ 20%] tests/unittests/config/test_cc_snap.py ................................ [ 21%] tests/unittests/config/test_cc_spacewalk.py ... [ 21%] tests/unittests/config/test_cc_ssh.py ................................ [ 22%] tests/unittests/config/test_cc_ssh_import_id.py ............. [ 22%] tests/unittests/config/test_cc_timezone.py . [ 22%] tests/unittests/config/test_cc_ubuntu_autoinstall.py ........ [ 22%] tests/unittests/config/test_cc_ubuntu_drivers.py ....................... [ 22%] ....................... [ 23%] tests/unittests/config/test_cc_ubuntu_pro.py ........................... [ 23%] ......................................... [ 24%] tests/unittests/config/test_cc_update_etc_hosts.py ....... [ 24%] tests/unittests/config/test_cc_users_groups.py ......................... [ 25%] ................ [ 25%] tests/unittests/config/test_cc_wireguard.py .............. [ 25%] tests/unittests/config/test_cc_write_files.py .................... [ 26%] tests/unittests/config/test_cc_write_files_deferred.py .. [ 26%] tests/unittests/config/test_cc_yum_add_repo.py ............ [ 26%] tests/unittests/config/test_cc_zypper_add_repo.py .......... [ 26%] tests/unittests/config/test_modules.py ................................. [ 27%] ..... [ 27%] tests/unittests/config/test_salt_minion.py ....... [ 27%] tests/unittests/config/test_schema.py .................................. [ 28%] ........................................................................ [ 29%] ................................................................s....... [ 31%] .........s........ [ 31%] tests/unittests/distros/package_management/test_apt.py ...... [ 31%] tests/unittests/distros/test__init__.py ................................ [ 32%] ...... [ 32%] tests/unittests/distros/test_alpine.py .... [ 32%] tests/unittests/distros/test_aosc.py . [ 32%] tests/unittests/distros/test_arch.py . [ 32%] tests/unittests/distros/test_azurelinux.py .. [ 32%] tests/unittests/distros/test_bsd_utils.py ... [ 32%] tests/unittests/distros/test_create_users.py ........................... [ 33%] ................................ [ 33%] tests/unittests/distros/test_debian.py ....... [ 33%] tests/unittests/distros/test_dragonflybsd.py .... [ 33%] tests/unittests/distros/test_freebsd.py ....... [ 34%] tests/unittests/distros/test_gentoo.py .. [ 34%] tests/unittests/distros/test_hostname.py ... [ 34%] tests/unittests/distros/test_hosts.py ... [ 34%] tests/unittests/distros/test_ifconfig.py ............... [ 34%] tests/unittests/distros/test_init.py ................................... [ 35%] ................................................... [ 36%] tests/unittests/distros/test_manage_service.py ........ [ 36%] tests/unittests/distros/test_mariner.py .. [ 36%] tests/unittests/distros/test_netbsd.py .... [ 36%] tests/unittests/distros/test_netconfig.py .............................. [ 37%] [ 37%] tests/unittests/distros/test_networking.py ........................ [ 37%] tests/unittests/distros/test_openbsd.py .. [ 37%] tests/unittests/distros/test_opensuse.py .............. [ 37%] tests/unittests/distros/test_photon.py .... [ 37%] tests/unittests/distros/test_resolv.py .... [ 37%] tests/unittests/distros/test_sles.py . [ 37%] tests/unittests/distros/test_sysconfig.py ...... [ 38%] tests/unittests/distros/test_ubuntu.py ..... [ 38%] tests/unittests/distros/test_user_data_normalize.py .................. [ 38%] tests/unittests/filters/test_launch_index.py ..... [ 38%] tests/unittests/net/netops/test_iproute2.py .......... [ 38%] tests/unittests/net/test_dhcp.py ....................................... [ 39%] ................................ [ 40%] tests/unittests/net/test_dns.py . [ 40%] tests/unittests/net/test_ephemeral.py ......... [ 40%] tests/unittests/net/test_init.py ....................................... [ 41%] ........................................................................ [ 42%] ............................................. [ 43%] tests/unittests/net/test_net_rendering.py . [ 43%] tests/unittests/net/test_netplan.py .... [ 43%] tests/unittests/net/test_network_manager.py .. [ 43%] tests/unittests/net/test_network_state.py .............................. [ 44%] ......................... [ 44%] tests/unittests/net/test_networkd.py ................................... [ 45%] ......................... [ 45%] tests/unittests/reporting/test_reporting.py ............................ [ 46%] ...................... [ 46%] tests/unittests/reporting/test_reporting_hyperv.py FFFFFFFFFFFFFFF [ 47%] tests/unittests/reporting/test_webhook_handler.py ....... [ 47%] tests/unittests/runs/test_merge_run.py . [ 47%] tests/unittests/runs/test_simple_run.py ...... [ 47%] tests/unittests/sources/azure/test_errors.py ........................... [ 47%] .................................. [ 48%] tests/unittests/sources/azure/test_identity.py ..................... [ 48%] tests/unittests/sources/azure/test_imds.py ............................. [ 49%] ........................................................................ [ 50%] ............ [ 51%] tests/unittests/sources/azure/test_kvp.py E.E. [ 51%] tests/unittests/sources/helpers/test_akamai.py ............ [ 51%] tests/unittests/sources/helpers/test_ec2.py .......... [ 51%] tests/unittests/sources/helpers/test_netlink.py ........................ [ 52%] .... [ 52%] tests/unittests/sources/helpers/test_openstack.py .... [ 52%] tests/unittests/sources/test___init__.py ............................ [ 52%] tests/unittests/sources/test_akamai.py ................................. [ 53%] .. [ 53%] tests/unittests/sources/test_aliyun.py ........ [ 53%] tests/unittests/sources/test_altcloud.py ......................... [ 54%] tests/unittests/sources/test_azure.py .................................. [ 54%] ........................................................................ [ 56%] ........................................................................ [ 57%] ................................ [ 58%] tests/unittests/sources/test_azure_helper.py ........................... [ 58%] .........ss............................................................. [ 60%] ...... [ 60%] tests/unittests/sources/test_bigstep.py .. [ 60%] tests/unittests/sources/test_cloudsigma.py ............ [ 60%] tests/unittests/sources/test_cloudstack.py ............. [ 60%] tests/unittests/sources/test_common.py ..... [ 60%] tests/unittests/sources/test_configdrive.py .......................... [ 61%] tests/unittests/sources/test_digitalocean.py ............. [ 61%] tests/unittests/sources/test_ec2.py .................................... [ 62%] ......................... [ 62%] tests/unittests/sources/test_exoscale.py ......... [ 63%] tests/unittests/sources/test_gce.py ................... [ 63%] tests/unittests/sources/test_hetzner.py .. [ 63%] tests/unittests/sources/test_ibmcloud.py .................. [ 63%] tests/unittests/sources/test_init.py ................................... [ 64%] ......... [ 64%] tests/unittests/sources/test_lxd.py .................................. [ 65%] tests/unittests/sources/test_maas.py .............. [ 65%] tests/unittests/sources/test_nocloud.py ................... [ 65%] tests/unittests/sources/test_nwcs.py ... [ 66%] tests/unittests/sources/test_opennebula.py ............................. [ 66%] ..................... [ 66%] tests/unittests/sources/test_openstack.py .............................. [ 67%] ......... [ 67%] tests/unittests/sources/test_oracle.py ................................. [ 68%] ..................................................... [ 69%] tests/unittests/sources/test_ovf.py .............................. [ 70%] tests/unittests/sources/test_rbx.py ....... [ 70%] tests/unittests/sources/test_scaleway.py .......................... [ 70%] tests/unittests/sources/test_smartos.py ................................ [ 71%] ........................s [ 71%] tests/unittests/sources/test_upcloud.py ....... [ 71%] tests/unittests/sources/test_vmware.py ................................. [ 72%] .................... [ 72%] tests/unittests/sources/test_vultr.py ..... [ 73%] tests/unittests/sources/test_wsl.py ................................. [ 73%] tests/unittests/sources/vmware/test_custom_script.py .. [ 73%] tests/unittests/sources/vmware/test_guestcust_util.py .... [ 73%] tests/unittests/sources/vmware/test_vmware_config_file.py .............. [ 74%] ........ [ 74%] tests/unittests/test__init__.py ................ [ 74%] tests/unittests/test_all_stages.py .... [ 74%] tests/unittests/test_apport.py ......... [ 74%] tests/unittests/test_atomic_helper.py ...... [ 74%] tests/unittests/test_builtin_handlers.py ........................ [ 75%] tests/unittests/test_cli.py ..FF..........................FFF [ 75%] tests/unittests/test_conftest.py .......... [ 76%] tests/unittests/test_data.py ................................. [ 76%] tests/unittests/test_dmi.py ............ [ 77%] tests/unittests/test_ds_identify.py .................................... [ 77%] ......x.xx.............................................................. [ 79%] ......... [ 79%] tests/unittests/test_event.py ... [ 79%] tests/unittests/test_features.py . [ 79%] tests/unittests/test_gpg.py .......... [ 79%] tests/unittests/test_helpers.py .... [ 79%] tests/unittests/test_importer.py .... [ 79%] tests/unittests/test_log.py ....... [ 79%] tests/unittests/test_merging.py ..................... [ 80%] tests/unittests/test_net.py ...............x...................x.x...... [ 81%] ..........x......................x........x......................x...... [ 82%] ........................................................x....x.x........ [ 83%] x........xxx...............x............................................ [ 85%] .... [ 85%] tests/unittests/test_net_activators.py ................................. [ 86%] ... [ 86%] tests/unittests/test_net_freebsd.py .. [ 86%] tests/unittests/test_netinfo.py ................. [ 86%] tests/unittests/test_pathprefix2dict.py .... [ 86%] tests/unittests/test_persistence.py ........ [ 86%] tests/unittests/test_registry.py .... [ 86%] tests/unittests/test_render_template.py ................................ [ 87%] ........ [ 87%] tests/unittests/test_safeyaml.py ............. [ 87%] tests/unittests/test_simpletable.py ..... [ 87%] tests/unittests/test_ssh_util.py ....................................... [ 88%] ........................................................................ [ 90%] ................ [ 90%] tests/unittests/test_stages.py ......................................... [ 91%] ............... [ 91%] tests/unittests/test_subp.py ...................... [ 91%] tests/unittests/test_temp_utils.py ...... [ 92%] tests/unittests/test_templating.py .....s................... [ 92%] tests/unittests/test_upgrade.py .................. [ 92%] tests/unittests/test_url_helper.py s.................................... [ 93%] ......... [ 93%] tests/unittests/test_util.py ........................................... [ 94%] ........................................................................ [ 96%] ........................................................................ [ 97%] ......................................................................FF [ 98%] .F..................................................... [ 99%] tests/unittests/test_version.py .... [100%] ==================================== ERRORS ==================================== ____ ERROR at setup of TestReportFailureToHost.test_report_failure_to_host _____ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_report_failure_to_host0') @pytest.fixture def telemetry_reporter(tmp_path): kvp_file_path = tmp_path / "kvp_pool_file" kvp_file_path.write_bytes(b"") > reporter = kvp.handlers.HyperVKvpReportingHandler( kvp_file_path=str(kvp_file_path) ) tests/unittests/sources/azure/test_kvp.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/pytest-of-udu/pytest-0/test_report_failure_to_host0/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log setup ------------------------------ 2025-10-09 02:32:47 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:47 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ____ ERROR at setup of TestReportSuccessToHost.test_report_success_to_host _____ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_report_success_to_host0') @pytest.fixture def telemetry_reporter(tmp_path): kvp_file_path = tmp_path / "kvp_pool_file" kvp_file_path.write_bytes(b"") > reporter = kvp.handlers.HyperVKvpReportingHandler( kvp_file_path=str(kvp_file_path) ) tests/unittests/sources/azure/test_kvp.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/pytest-of-udu/pytest-0/test_report_success_to_host0/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log setup ------------------------------ 2025-10-09 02:32:47 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:47 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl =================================== FAILURES =================================== ______________________ TestKvpEncoding.test_encode_decode ______________________ self = def test_encode_decode(self): kvp = {"key": "key1", "value": "value1"} > kvp_reporting = HyperVKvpReportingHandler() tests/unittests/reporting/test_reporting_hyperv.py:26: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/var/lib/hyperv/.kvp_pool_1' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _____________________ TextKvpReporter.test_event_very_long _____________________ self = def test_event_very_long(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.06v019t3/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.06v019t3/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _____ TextKvpReporter.test_events_with_higher_incarnation_not_over_written _____ self = def test_events_with_higher_incarnation_not_over_written(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.dy69nymb/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.dy69nymb/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl __________________ TextKvpReporter.test_file_operation_issue ___________________ self = def test_file_operation_issue(self): os.remove(self.tmp_file_path) > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.2isd5hau/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.2isd5hau/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ______________ TextKvpReporter.test_finish_event_result_is_logged ______________ self = def test_finish_event_result_is_logged(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.hiwrctb6/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.hiwrctb6/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ___________________ TextKvpReporter.test_get_boot_telemetry ____________________ self = m_subp = m_sysd = @mock.patch("cloudinit.distros.uses_systemd") @mock.patch("cloudinit.subp.subp") def test_get_boot_telemetry(self, m_subp, m_sysd): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.0o8ouopj/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.0o8ouopj/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _____________________ TextKvpReporter.test_get_system_info _____________________ self = def test_get_system_info(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.tnmykx7k/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.tnmykx7k/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ________ TextKvpReporter.test_not_truncate_kvp_file_modified_after_boot ________ self = def test_not_truncate_kvp_file_modified_after_boot(self): with open(self.tmp_file_path, "wb+") as f: kvp = {"key": "key1", "value": "value1"} data = struct.pack( "%ds%ds" % ( HyperVKvpReportingHandler.HV_KVP_EXCHANGE_MAX_KEY_SIZE, HyperVKvpReportingHandler.HV_KVP_EXCHANGE_MAX_VALUE_SIZE, ), kvp["key"].encode("utf-8"), kvp["value"].encode("utf-8"), ) f.write(data) cur_time = time.time() os.utime(self.tmp_file_path, (cur_time, cur_time)) # reset this because the unit test framework # has already polluted the class variable HyperVKvpReportingHandler._already_truncated_pool_file = False > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.rhnp2xz3/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.rhnp2xz3/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _________________ TextKvpReporter.test_report_compressed_event _________________ self = def test_report_compressed_event(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:230: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.cp41dsrl/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.cp41dsrl/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ________ TextKvpReporter.test_report_diagnostic_event_with_logger_func _________ self = def test_report_diagnostic_event_with_logger_func(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.e5k8iamj/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.e5k8iamj/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _______ TextKvpReporter.test_report_diagnostic_event_without_logger_func _______ self = def test_report_diagnostic_event_without_logger_func(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:200: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.iojx5xjf/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.iojx5xjf/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _________________ TextKvpReporter.test_truncate_stale_kvp_file _________________ self = def test_truncate_stale_kvp_file(self): with open(self.tmp_file_path, "wb+") as f: kvp = {"key": "key1", "value": "value1"} data = struct.pack( "%ds%ds" % ( HyperVKvpReportingHandler.HV_KVP_EXCHANGE_MAX_KEY_SIZE, HyperVKvpReportingHandler.HV_KVP_EXCHANGE_MAX_VALUE_SIZE, ), kvp["key"].encode("utf-8"), kvp["value"].encode("utf-8"), ) f.write(data) # set the time ways back to make it look like # we had an old kvp file os.utime(self.tmp_file_path, (1000000, 1000000)) # reset this because the unit test framework # has already polluted the class variable HyperVKvpReportingHandler._already_truncated_pool_file = False > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.huu8ybfa/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.huu8ybfa/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _____________________ TextKvpReporter.test_unique_kvp_key ______________________ self = def test_unique_kvp_key(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter._t3io4ln/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter._t3io4ln/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ________________________ TextKvpReporter.test_write_key ________________________ self = def test_write_key(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.fr0pf2n1/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.fr0pf2n1/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ___________________ TextKvpReporter.test_write_key_truncates ___________________ self = def test_write_key_truncates(self): > reporter = HyperVKvpReportingHandler(kvp_file_path=self.tmp_file_path) tests/unittests/reporting/test_reporting_hyperv.py:296: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cloudinit/reporting/handlers.py:202: in __init__ HyperVKvpReportingHandler._truncate_guest_pool_file( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = kvp_file = '/tmp/ci-TextKvpReporter.6nqa17dd/kvp_pool_file' @classmethod def _truncate_guest_pool_file(cls, kvp_file): """ Truncate the pool file if it has not been truncated since boot. This should be done exactly once for the file indicated by KVP_POOL_FILE_GUEST constant above. This method takes a filename so that we can use an arbitrary file during unit testing. Since KVP is a best-effort telemetry channel we only attempt to truncate the file once and only if the file has not been modified since boot. Additional truncation can lead to loss of existing KVPs. """ if cls._already_truncated_pool_file: return > boot_time = time.time() - float(util.uptime()) E ValueError: could not convert string to float: '??' cloudinit/reporting/handlers.py:232: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/ci-TextKvpReporter.6nqa17dd/kvp_pool_file - ab: [644] 0 bytes 2025-10-09 02:32:43 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:32:43 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl _______ TestCLI.test_status_wrapper_init_local_writes_fresh_status_info ________ self = m_json = mock_status_wrapper = Tmpdir(tmpdir=local('/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0'), link_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/link', data_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/data') @mock.patch("cloudinit.cmd.main.atomic_helper.write_json") def test_status_wrapper_init_local_writes_fresh_status_info( self, m_json, mock_status_wrapper, ): """When running in init-local mode, status_wrapper writes status.json. Old status and results artifacts are also removed. """ data_d = mock_status_wrapper.data_d link_d = mock_status_wrapper.link_d # Write old artifacts which will be removed or updated. for _dir in data_d, link_d: test_helpers.populate_dir( str(_dir), {"status.json": "old", "result.json": "old"} ) def myaction(name, args): # Return an error to watch status capture them return "SomeDatasource", ["an error"] myargs = FakeArgs(("ignored_name", myaction), True, "bogusmode") > cli.status_wrapper("init", myargs) /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/link:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'init' args = FakeArgs(action=('ignored_name', .myaction at 0x73e899545b20>), local=True, mode='bogusmode') > ??? E ValueError: could not convert string to float: '??' /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/link:818: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/link/status.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/link/result.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/data/status.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local0/data/result.json 2025-10-09 02:33:03 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ____________ TestCLI.test_status_wrapper_init_local_honor_cloud_dir ____________ self = m_json = mocker = mock_status_wrapper = Tmpdir(tmpdir=local('/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1'), link_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/link', data_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/data') @mock.patch("cloudinit.cmd.main.atomic_helper.write_json") def test_status_wrapper_init_local_honor_cloud_dir( self, m_json, mocker, mock_status_wrapper ): """When running in init-local mode, status_wrapper honors cloud_dir.""" cloud_dir = mock_status_wrapper.tmpdir.join("cloud") paths = helpers.Paths({"cloud_dir": str(cloud_dir)}) mocker.patch( "cloudinit.config.schema.read_cfg_paths", return_value=paths ) data_d = mock_status_wrapper.data_d link_d = mock_status_wrapper.link_d def myaction(name, args): # Return an error to watch status capture them return "SomeDatasource", ["an_error"] myargs = FakeArgs(("ignored_name", myaction), True, "bogusmode") > cli.status_wrapper("init", myargs) # No explicit data_d /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/link:142: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'init' args = FakeArgs(action=('ignored_name', .myaction at 0x73e8d4238d60>), local=True, mode='bogusmode') > ??? E ValueError: could not convert string to float: '??' /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/link:818: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/link/status.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/link/result.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/data/status.json 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:2130 Attempting to remove /tmp/pytest-of-udu/pytest-0/test_status_wrapper_init_local1/data/result.json 2025-10-09 02:33:03 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ____________ TestSignalHandling.test_status_wrapper_signal_sys_exit ____________ self = m_json = mocker = mock_status_wrapper = Tmpdir(tmpdir=local('/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0'), link_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0/link', data_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0/data') @mock.patch("cloudinit.cmd.main.atomic_helper.write_json") def test_status_wrapper_signal_sys_exit( self, m_json, mocker, mock_status_wrapper, ): """make sure that when sys.exit(N) is called, the correct code is returned """ for code in [1, 2, 3, 4]: > rc = cli.status_wrapper( "init", FakeArgs( ( None, # silence pylint false positive # https://github.com/pylint-dev/pylint/issues/9557 lambda *_: sys.exit(code), # pylint: disable=W0640 ), False, "bogusmode", ), ) /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0/link:429: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'init' args = FakeArgs(action=(None, . at 0x73e8cf4a6ac0>), local=False, mode='bogusmode') > ??? E ValueError: could not convert string to float: '??' /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0/link:818: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_sys0/data/status.json (quiet=False) 2025-10-09 02:33:03 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl __________ TestSignalHandling.test_status_wrapper_no_signal_sys_exit ___________ self = m_json = mock_status_wrapper = Tmpdir(tmpdir=local('/tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0'), link_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0/link', data_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0/data') @mock.patch("cloudinit.cmd.main.atomic_helper.write_json") def test_status_wrapper_no_signal_sys_exit( self, m_json, mock_status_wrapper, ): """if sys.exit(0) is called, make sure that cloud-init doesn't log a warning""" # call status_wrapper() with the required args > rc = cli.status_wrapper( "init", FakeArgs( ( None, lambda *_: sys.exit(0), ), False, "bogusmode", ), ) /tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0/link:459: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'init' args = FakeArgs(action=(None, . at 0x73e8cf511bc0>), local=False, mode='bogusmode') > ??? E ValueError: could not convert string to float: '??' /tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0/link:818: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-udu/pytest-0/test_status_wrapper_no_signal_0/data/status.json (quiet=False) 2025-10-09 02:33:03 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ____________ TestSignalHandling.test_status_wrapper_signal_warnings ____________ self = m_json = mock_status_wrapper = Tmpdir(tmpdir=local('/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0'), link_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/link', data_d='/tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/data') @mock.patch("cloudinit.cmd.main.atomic_helper.write_json") def test_status_wrapper_signal_warnings( self, m_json, mock_status_wrapper, ): """If a stage is started and status.json already has a start time but no end time for that stage, this is an unknown state - make sure that a warning is logged. """ # Write a status.json to the mocked temporary directory for dir in mock_status_wrapper.data_d, mock_status_wrapper.link_d: test_helpers.populate_dir( str(dir), { "status.json": json.dumps( { "v1": { "stage": "init", "datasource": ( "DataSourceNoCloud " "[seed=/var/.../seed/nocloud-net]" "[dsmode=net]" ), "init": { "errors": [], "recoverable_errors": {}, "start": 124.567, "finished": None, }, "init-local": { "errors": [], "recoverable_errors": {}, "start": 100.0, "finished": 100.00001, }, "modules-config": { "errors": [], "recoverable_errors": {}, "start": None, "finished": None, }, "modules-final": { "errors": [], "recoverable_errors": {}, "start": None, "finished": None, }, } } ) }, ) # call status_wrapper() with the required args > cli.status_wrapper( "init", FakeArgs( ( None, lambda *_: ("SomeDataSource", []), ), False, "bogusmode", ), ) /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/link:528: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'init' args = FakeArgs(action=(None, . at 0x73e8cf4c1120>), local=False, mode='bogusmode') > ??? E ValueError: could not convert string to float: '??' /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/link:818: ValueError ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/data/status.json (quiet=False) 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1622 Read 471 bytes from /tmp/pytest-of-udu/pytest-0/test_status_wrapper_signal_war0/data/status.json 2025-10-09 02:33:03 WARNING cloudinit.cmd.main:main.py:813 Unexpected start time found for Network Stage. Was this stage restarted? 2025-10-09 02:33:03 WARNING cloudinit.util:util.py:1856 Unable to read uptime using method: ctypes 2025-10-09 02:33:03 DEBUG cloudinit.util:util.py:1857 Unable to read uptime using method: ctypes Traceback (most recent call last): File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2205, in uptime uptime_str = str(time.time() - boottime()) ^^^^^^^^^^ File "/home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/util.py", line 2179, in boottime libc.sysctl( ^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 392, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ctypes/__init__.py", line 397, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: Symbol not found: sysctl ___________________ TestGetProcPpid.test_get_proc_pgrp_linux ___________________ self = @skipIf(not util.is_Linux(), "/proc/$pid/stat is not useful on not-Linux") def test_get_proc_pgrp_linux(self): """get_proc_ppid returns correct parent pid value.""" > self.assertEqual(os.getpgid(0), Distro.get_proc_pgid(os.getpid())) E AssertionError: 4057754 != None tests/unittests/test_util.py:2927: AssertionError ----------------------------- Captured stdout call ----------------------------- FALLBACK: 2025-10-09 02:33:11,796 - util.py[DEBUG]: Reading from /proc/4057958/stat (quiet=True) FALLBACK: 2025-10-09 02:33:11,796 - util.py[DEBUG]: Read 0 bytes from /proc/4057958/stat FALLBACK: 2025-10-09 02:33:11,796 - distros[WARNING]: /proc/4057958/stat has an invalid contents [] ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1613 Reading from /proc/4057958/stat (quiet=True) 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1622 Read 0 bytes from /proc/4057958/stat 2025-10-09 02:33:11 WARNING cloudinit.distros:distros:1491 /proc/4057958/stat has an invalid contents [] ___________________ TestGetProcPpid.test_get_proc_ppid_linux ___________________ self = @skipIf(not util.is_Linux(), "/proc/$pid/stat is not useful on not-Linux") def test_get_proc_ppid_linux(self): """get_proc_ppid returns correct parent pid value.""" my_pid = os.getpid() my_ppid = os.getppid() > self.assertEqual(my_ppid, Distro.get_proc_ppid(my_pid)) E AssertionError: 4057762 != None tests/unittests/test_util.py:2922: AssertionError ----------------------------- Captured stdout call ----------------------------- FALLBACK: 2025-10-09 02:33:11,824 - util.py[DEBUG]: Reading from /proc/4057958/stat (quiet=True) FALLBACK: 2025-10-09 02:33:11,824 - util.py[DEBUG]: Read 0 bytes from /proc/4057958/stat FALLBACK: 2025-10-09 02:33:11,824 - distros[WARNING]: /proc/4057958/stat has an invalid contents [] ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1613 Reading from /proc/4057958/stat (quiet=True) 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1622 Read 0 bytes from /proc/4057958/stat 2025-10-09 02:33:11 WARNING cloudinit.distros:distros:1491 /proc/4057958/stat has an invalid contents [] ____________________ TestGetProcPpid.test_get_proc_ppid_ps _____________________ self = @pytest.mark.allow_subp_for("ps") def test_get_proc_ppid_ps(self): """get_proc_ppid returns correct parent pid value.""" my_pid = os.getpid() my_ppid = os.getppid() > self.assertEqual(my_ppid, Distro.get_proc_ppid(my_pid)) E AssertionError: 4057762 != None tests/unittests/test_util.py:2934: AssertionError ----------------------------- Captured stdout call ----------------------------- FALLBACK: 2025-10-09 02:33:11,852 - util.py[DEBUG]: Reading from /proc/4057958/stat (quiet=True) FALLBACK: 2025-10-09 02:33:11,852 - util.py[DEBUG]: Read 0 bytes from /proc/4057958/stat FALLBACK: 2025-10-09 02:33:11,853 - distros[WARNING]: /proc/4057958/stat has an invalid contents [] ------------------------------ Captured log call ------------------------------- 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1613 Reading from /proc/4057958/stat (quiet=True) 2025-10-09 02:33:11 DEBUG cloudinit.util:util.py:1622 Read 0 bytes from /proc/4057958/stat 2025-10-09 02:33:11 WARNING cloudinit.distros:distros:1491 /proc/4057958/stat has an invalid contents [] =============================== warnings summary =============================== cloudinit/sources/DataSourceAzure.py:52 /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/sources/DataSourceAzure.py:52: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13 import crypt # pylint: disable=W4901 tests/unittests/config/test_cc_ubuntu_pro.py:456 /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/config/test_cc_ubuntu_pro.py:456: DeprecationWarning: Accessing jsonschema.__version__ is deprecated and will be removed in a future release. Use importlib.metadata directly to query for jsonschema's version. getattr(jsonschema, "__version__", "999") tests/unittests/distros/package_management/test_apt.py:122 /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/distros/package_management/test_apt.py:122: PytestCollectionWarning: cannot collect test class 'TestUpdatePackageSources' because it has a __init__ constructor (from: tests/unittests/distros/package_management/test_apt.py) @mock.patch.object( tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/analyze/__init__.py:131: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). kernel_start_timestamp = datetime.utcfromtimestamp(kernel_start) tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/analyze/__init__.py:132: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). kernel_end_timestamp = datetime.utcfromtimestamp(kernel_end) tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/analyze/__init__.py:133: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). ci_sysd_start_timestamp = datetime.utcfromtimestamp(ci_sysd_start) tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/analyze/__init__.py:141: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). ci_start = datetime.utcfromtimestamp(last_init_local["timestamp"]) tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_collect_logs_end_to_end /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/cmd/devel/test_logs.py:144: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior. tar.extractall(extract_to) tests/unittests/config/test_cc_apt_pipelining.py: 5 warnings tests/unittests/config/test_cc_bootcmd.py: 1 warning tests/unittests/config/test_cc_growpart.py: 1 warning tests/unittests/config/test_cc_grub_dpkg.py: 1 warning tests/unittests/config/test_cc_mcollective.py: 2 warnings tests/unittests/config/test_cc_mounts.py: 12 warnings tests/unittests/config/test_cc_power_state_change.py: 5 warnings tests/unittests/config/test_cc_rh_subscription.py: 1 warning tests/unittests/config/test_cc_runcmd.py: 9 warnings tests/unittests/config/test_cc_scripts_vendor.py: 2 warnings tests/unittests/config/test_cc_set_passwords.py: 3 warnings tests/unittests/config/test_cc_snap.py: 7 warnings tests/unittests/config/test_cc_update_etc_hosts.py: 3 warnings tests/unittests/config/test_cc_users_groups.py: 33 warnings tests/unittests/config/test_schema.py: 104 warnings tests/unittests/reporting/test_reporting.py: 19 warnings tests/unittests/test_merging.py: 2 warnings tests/unittests/test_stages.py: 4 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/config/schema.py:554: DeprecationWarning: Passing a schema to Validator.iter_errors is deprecated and will be removed in a future release. Call validator.evolve(schema=new_schema).iter_errors(...) instead. return next(errors, None) is None tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema0-None] tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema1-None] tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema2-is not one of ['v1']] tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema3-is not of type 'string'] tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema4-None] /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/config/schema.py:459: DeprecationWarning: Automatically retrieving remote references can be a security vulnerability and is discouraged by the JSON Schema specifications. Relying on this behavior is deprecated and will shortly become an error. If you are sure you want to remotely retrieve your reference and that it is safe to do so, you can find instructions for doing so via referencing.Registry in the referencing documentation (https://referencing.readthedocs.org). all_errs = list( tests/unittests/sources/azure/test_errors.py: 48 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/sources/azure/test_errors.py:23: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). timestamp = datetime.datetime.utcnow() tests/unittests/sources/azure/test_errors.py: 13 warnings tests/unittests/sources/azure/test_kvp.py: 1 warning tests/unittests/sources/test_azure.py: 107 warnings tests/unittests/sources/test_azure_helper.py: 11 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/sources/azure/errors.py:55: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). self.timestamp = datetime.utcnow() tests/unittests/sources/azure/test_kvp.py::TestReportSuccessToHost::test_report_success_to_host /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/sources/azure/test_kvp.py:14: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). timestamp = datetime.utcnow() tests/unittests/sources/azure/test_kvp.py: 1 warning tests/unittests/sources/test_azure.py: 49 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/sources/azure/kvp.py:52: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). f"timestamp={datetime.utcnow().isoformat()}", tests/unittests/sources/test_azure.py: 72 warnings tests/unittests/sources/test_azure_helper.py: 17 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/sources/helpers/azure.py:1014: DeprecationWarning: Testing an element's truth value will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. if not root.find("./wa:ProvisioningSection", cls.NAMESPACES): tests/unittests/sources/test_azure.py: 24 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/sources/test_azure.py:318: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). timestamp = datetime.datetime.utcnow() tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_has_expired tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_has_expired /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/cloudinit/sources/DataSourceGCE.py:236: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). return datetime.datetime.utcnow() > expire_time tests/unittests/test_cli.py: 16 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/test_cli.py:36: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/remarks.html#usage-as-context-manager with mocker.patch( tests/unittests/test_cli.py: 16 warnings /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/test_cli.py:39: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/remarks.html#usage-as-context-manager ), mocker.patch( tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_no_userdata_in_provisioning /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_userdata_in_provisioning /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_64 /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_i386_linux_gnu /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestWSL::test_empty_cloudinitdir /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestWSL::test_found_via_userdata /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestWSL::test_no_cloudinitdir_in_userprofile /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_ds_identify.py::TestWSL::test_no_userprofile /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (>) return self.run(*args, **kwds) tests/unittests/test_log.py::TestCloudInitLogger::test_logger_uses_gmtime /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/test_log.py:47: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). utc_before = datetime.datetime.utcnow() - datetime.timedelta(0, 0.5) tests/unittests/test_log.py::TestCloudInitLogger::test_logger_uses_gmtime /home/udu/aports/community/cloud-init/src/cloud-init-24.3.1/tests/unittests/test_log.py:49: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). utc_after = datetime.datetime.utcnow() + datetime.timedelta(0, 0.5) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/unittests/reporting/test_reporting_hyperv.py::TestKvpEncoding::test_encode_decode FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_event_very_long FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_events_with_higher_incarnation_not_over_written FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_file_operation_issue FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_finish_event_result_is_logged FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_boot_telemetry FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_system_info FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_not_truncate_kvp_file_modified_after_boot FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_compressed_event FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_diagnostic_event_with_logger_func FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_diagnostic_event_without_logger_func FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_truncate_stale_kvp_file FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_unique_kvp_key FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_write_key FAILED tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_write_key_truncates FAILED tests/unittests/test_cli.py::TestCLI::test_status_wrapper_init_local_writes_fresh_status_info FAILED tests/unittests/test_cli.py::TestCLI::test_status_wrapper_init_local_honor_cloud_dir FAILED tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_signal_sys_exit FAILED tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_no_signal_sys_exit FAILED tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_signal_warnings FAILED tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_pgrp_linux FAILED tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_ppid_linux FAILED tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_ppid_ps ERROR tests/unittests/sources/azure/test_kvp.py::TestReportFailureToHost::test_report_failure_to_host ERROR tests/unittests/sources/azure/test_kvp.py::TestReportSuccessToHost::test_report_success_to_host = 23 failed, 5087 passed, 8 skipped, 2 deselected, 18 xfailed, 623 warnings, 2 errors in 49.69s = >>> ERROR: cloud-init: check failed >>> cloud-init: Uninstalling dependencies... (1/118) Purging .makedepends-cloud-init (20251009.023220) (2/118) Purging blkid (2.41-r9) (3/118) Purging cloud-utils-growpart (0.33-r1) (4/118) Purging partx (2.41-r9) (5/118) Purging iproute2-minimal (6.15.0-r0) (6/118) Purging py3-configobj-pyc (5.0.9-r0) (7/118) Purging py3-configobj (5.0.9-r0) (8/118) Purging py3-six-pyc (1.17.0-r0) (9/118) Purging py3-six (1.17.0-r0) (10/118) Purging py3-jinja2-pyc (3.1.6-r0) (11/118) Purging py3-jinja2 (3.1.6-r0) (12/118) Purging py3-markupsafe-pyc (3.0.2-r0) (13/118) Purging py3-markupsafe (3.0.2-r0) (14/118) Purging py3-jsonpatch-pyc (1.33-r3) (15/118) Purging py3-jsonpatch (1.33-r3) (16/118) Purging py3-jsonpointer-pyc (3.0.0-r0) (17/118) Purging py3-jsonpointer (3.0.0-r0) (18/118) Purging py3-jsonschema-pyc (4.23.0-r0) (19/118) Purging py3-jsonschema (4.23.0-r0) (20/118) Purging py3-jsonschema-specifications-pyc (2025.4.1-r0) (21/118) Purging py3-jsonschema-specifications (2025.4.1-r0) (22/118) Purging py3-referencing-pyc (0.36.2-r1) (23/118) Purging py3-referencing (0.36.2-r1) (24/118) Purging py3-attrs-pyc (25.3.0-r0) (25/118) Purging py3-attrs (25.3.0-r0) (26/118) Purging py3-typing-extensions-pyc (4.13.2-r0) (27/118) Purging py3-typing-extensions (4.13.2-r0) (28/118) Purging py3-rpds-py-pyc (0.25.1-r0) (29/118) Purging py3-rpds-py (0.25.1-r0) (30/118) Purging shadow (4.17.3-r0) (31/118) Purging tzdata (2025b-r0) (32/118) Purging eudev-dev (3.2.14-r5) (33/118) Purging eudev-libs (3.2.14-r5) (34/118) Purging py3-setuptools-pyc (80.9.0-r0) (35/118) Purging py3-setuptools (80.9.0-r0) (36/118) Purging coreutils (9.7-r1) Executing coreutils-9.7-r1.post-deinstall (37/118) Purging coreutils-env (9.7-r1) (38/118) Purging coreutils-fmt (9.7-r1) (39/118) Purging coreutils-sha512sum (9.7-r1) (40/118) Purging grep (3.12-r0) (41/118) Purging lsblk (2.41-r9) (42/118) Purging parted (3.6-r2) (43/118) Purging procps-ng (4.0.4-r3) (44/118) Purging py3-netifaces (0.11.0-r3) (45/118) Purging py3-passlib-pyc (1.7.4-r7) (46/118) Purging py3-passlib (1.7.4-r7) (47/118) Purging py3-pyserial-pyc (3.5-r7) (48/118) Purging py3-pyserial (3.5-r7) (49/118) Purging py3-pytest-mock-pyc (3.10.0-r3) (50/118) Purging py3-pytest-mock (3.10.0-r3) (51/118) Purging py3-mock-pyc (5.2.0-r0) (52/118) Purging py3-mock (5.2.0-r0) (53/118) Purging py3-pytest-pyc (8.3.5-r0) (54/118) Purging py3-pytest (8.3.5-r0) (55/118) Purging py3-iniconfig-pyc (2.1.0-r0) (56/118) Purging py3-iniconfig (2.1.0-r0) (57/118) Purging py3-py-pyc (1.11.0-r4) (58/118) Purging py3-py (1.11.0-r4) (59/118) Purging py3-responses-pyc (0.25.0-r1) (60/118) Purging py3-responses (0.25.0-r1) (61/118) Purging py3-requests-pyc (2.32.5-r0) (62/118) Purging py3-requests (2.32.5-r0) (63/118) Purging py3-certifi-pyc (2025.4.26-r0) (64/118) Purging py3-certifi (2025.4.26-r0) (65/118) Purging py3-charset-normalizer-pyc (3.4.2-r0) (66/118) Purging py3-charset-normalizer (3.4.2-r0) (67/118) Purging py3-idna-pyc (3.10-r0) (68/118) Purging py3-idna (3.10-r0) (69/118) Purging py3-toml-pyc (0.10.2-r7) (70/118) Purging py3-toml (0.10.2-r7) (71/118) Purging py3-urllib3-pyc (1.26.20-r0) (72/118) Purging py3-urllib3 (1.26.20-r0) (73/118) Purging py3-yaml-pyc (6.0.2-r0) (74/118) Purging py3-yaml (6.0.2-r0) (75/118) Purging py3-tox-pyc (4.6.4-r1) (76/118) Purging py3-tox (4.6.4-r1) (77/118) Purging py3-cachetools-pyc (5.5.2-r0) (78/118) Purging py3-cachetools (5.5.2-r0) (79/118) Purging py3-chardet-pyc (5.2.0-r1) (80/118) Purging py3-chardet (5.2.0-r1) (81/118) Purging py3-colorama-pyc (0.4.6-r5) (82/118) Purging py3-colorama (0.4.6-r5) (83/118) Purging py3-pluggy-pyc (1.5.0-r0) (84/118) Purging py3-pluggy (1.5.0-r0) (85/118) Purging py3-pyproject-api-pyc (1.9.0-r1) (86/118) Purging py3-pyproject-api (1.9.0-r1) (87/118) Purging py3-packaging-pyc (25.0-r0) (88/118) Purging py3-packaging (25.0-r0) (89/118) Purging py3-parsing-pyc (3.2.3-r0) (90/118) Purging py3-parsing (3.2.3-r0) (91/118) Purging py3-virtualenv-pyc (20.31.2-r0) (92/118) Purging py3-virtualenv (20.31.2-r0) (93/118) Purging py3-platformdirs-pyc (4.3.8-r0) (94/118) Purging py3-platformdirs (4.3.8-r0) (95/118) Purging py3-distlib-pyc (0.3.9-r0) (96/118) Purging py3-distlib (0.3.9-r0) (97/118) Purging py3-filelock-pyc (3.16.1-r1) (98/118) Purging py3-filelock (3.16.1-r1) (99/118) Purging sfdisk (2.41-r9) (100/118) Purging sgdisk (1.0.10-r1) (101/118) Purging device-mapper-libs (2.03.32-r0) (102/118) Purging libattr (2.5.2-r2) (103/118) Purging libbsd (0.12.2-r0) (104/118) Purging libelf (0.193-r0) (105/118) Purging libfdisk (2.41-r9) (106/118) Purging libmd (1.1.0-r0) (107/118) Purging libmnl (1.0.5-r2) (108/118) Purging libmount (2.41-r9) (109/118) Purging libproc2 (4.0.4-r3) (110/118) Purging libsmartcols (2.41-r9) (111/118) Purging libuuid (2.41-r9) (112/118) Purging linux-pam (1.7.0-r4) (113/118) Purging popt (1.19-r4) (114/118) Purging utmps-libs (0.1.3.1-r0) (115/118) Purging yaml (0.2.5-r2) (116/118) Purging libblkid (2.41-r9) (117/118) Purging libeconf (0.6.3-r0) (118/118) Purging skalibs-libs (2.14.4.0-r0) Executing busybox-1.37.0-r19.trigger OK: 296 MiB in 89 packages