From: A Tammy Subject: Re: [new] sysutils/cloud-init (again) To: Mina Galić , Rafael Sadowski Cc: ports@openbsd.org Date: Tue, 9 Jan 2024 22:12:33 -0500 On 1/9/24 09:32, Mina Galić wrote: >> Could you provide a tarball with the new port? > Tarball is attached. > > I've also updated my Git repo: > > browse: https://codeberg.org/meena/openbsd-ports/src/branch/add/cloud-init/sysutils/cloud-init > > browse patch: https://codeberg.org/meena/openbsd-ports/commit/df1e11cdb40ca0120c1d291f5e4f0058729fa8c6 > > Apply patch: https://codeberg.org/meena/openbsd-ports/commit/df1e11cdb40ca0120c1d291f5e4f0058729fa8c6.patch > > Kind regards, Some initial comments. At least TEST_DEPS need security/py-passlib and devel/py-serial pkg/README can has hardcoded paths, which can be changed to SYSCONFDIR and LOCALSTATEDIR. The build system for python can probably be set to use MODPY_BUILD=setuptools instead of MODPY_SETUPTOOLS=Yes Am getting the following test failures on my machine: =========================== short test summary info ============================ FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive_interacts_with_ibmcloud_config_disk FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_configured_list_with_none FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seed_in_cfg FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_single_entry_defines_datasource FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_64 FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_i386_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_when_vmware_customization_is_enabled FAILED tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_write_command_output_to_file[cmd1-Unexpected error while running command.\nCommand: ['ls', '/nonexistent-directory']\nExit code: 2\nReason: -\nStdout: \nStderr: ls: cannot access '/nonexistent-directory': No such file or directory-None] FAILED tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_stream_command_output_to_file[cmd1-ls: cannot access '/nonexistent-directory': No such file or directory\n] FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_call_imds_twice_with_reprovision FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_given FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_redacted_in_ovf FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_false FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_true FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_unspecified FAILED tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_detect_nic_attach_reports_ready_and_waits_for_detach FAILED tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_nic_attach_multinic_attach FAILED tests/unittests/sources/test_azure.py::TestDependencyFallback::test_dependency_fallback FAILED tests/unittests/sources/helpers/test_netlink.py::TestCreateBoundNetlinkSocket::test_socket_error_on_create = 21 failed, 5010 passed, 11 skipped, 1 xfailed, 2225 warnings in 194.61s (0:03:14) = Some errors are def create_bound_netlink_socket():         """Creates netlink socket and bind on netlink group to catch interface         down/up events. The socket will bound only on RTMGRP_LINK (which only         includes RTM_NEWLINK/RTM_DELLINK/RTM_GETLINK events). The socket is set to         non-blocking mode since we're only receiving messages.              :returns: netlink socket in non-blocking mode         :raises: NetlinkCreateSocketError         """         try:             netlink_socket = socket.socket( >               socket.AF_NETLINK, socket.SOCK_RAW, socket.NETLINK_ROUTE             ) E           AttributeError: module 'socket' has no attribute 'AF_NETLINK' ____ TestAzureDataSource.test_password_with_disable_ssh_pw_auth_unspecified ____ self =     def test_password_with_disable_ssh_pw_auth_unspecified(self):         data = {             "ovfcontent": construct_ovf_env(                 username="myuser",                 password="mypass",                 disable_ssh_password_auth=None,             )         }              dsrc = self._get_ds(data)         dsrc.get_data()      >       assert dsrc.cfg["ssh_pwauth"] is True E       KeyError: 'ssh_pwauth' They seem to be related to hot-attaching a NIC and some Azure related errors. Both of which don't seem super relevant to openbsd. I also see that a lot example template files are not making it into the package PLIST. Can't put into any plist (no applicable prefix):     /etc/cloud/clean.d/README     /etc/cloud/cloud.cfg     /etc/cloud/cloud.cfg.d/05_logging.cfg     /etc/cloud/cloud.cfg.d/README     /etc/cloud/templates/chef_client.rb.tmpl     /etc/cloud/templates/chrony.conf.alpine.tmpl     /etc/cloud/templates/chrony.conf.centos.tmpl     /etc/cloud/templates/chrony.conf.cos.tmpl     /etc/cloud/templates/chrony.conf.debian.tmpl     /etc/cloud/templates/chrony.conf.fedora.tmpl     /etc/cloud/templates/chrony.conf.freebsd.tmpl     /etc/cloud/templates/chrony.conf.opensuse-leap.tmpl     /etc/cloud/templates/chrony.conf.opensuse-microos.tmpl     /etc/cloud/templates/chrony.conf.opensuse-tumbleweed.tmpl     /etc/cloud/templates/chrony.conf.opensuse.tmpl     /etc/cloud/templates/chrony.conf.photon.tmpl     /etc/cloud/templates/chrony.conf.rhel.tmpl     /etc/cloud/templates/chrony.conf.sle-micro.tmpl     /etc/cloud/templates/chrony.conf.sle_hpc.tmpl     /etc/cloud/templates/chrony.conf.sles.tmpl     /etc/cloud/templates/chrony.conf.ubuntu.tmpl     /etc/cloud/templates/hosts.alpine.tmpl     /etc/cloud/templates/hosts.arch.tmpl     /etc/cloud/templates/hosts.debian.tmpl     /etc/cloud/templates/hosts.freebsd.tmpl     /etc/cloud/templates/hosts.gentoo.tmpl     /etc/cloud/templates/hosts.mariner.tmpl     /etc/cloud/templates/hosts.photon.tmpl     /etc/cloud/templates/hosts.redhat.tmpl     /etc/cloud/templates/hosts.suse.tmpl     /etc/cloud/templates/ntp.conf.alpine.tmpl     /etc/cloud/templates/ntp.conf.debian.tmpl     /etc/cloud/templates/ntp.conf.fedora.tmpl     /etc/cloud/templates/ntp.conf.freebsd.tmpl     /etc/cloud/templates/ntp.conf.opensuse.tmpl     /etc/cloud/templates/ntp.conf.photon.tmpl     /etc/cloud/templates/ntp.conf.rhel.tmpl     /etc/cloud/templates/ntp.conf.sles.tmpl     /etc/cloud/templates/ntp.conf.ubuntu.tmpl     /etc/cloud/templates/ntpd.conf.openbsd.tmpl     /etc/cloud/templates/resolv.conf.tmpl     /etc/cloud/templates/sources.list.debian.deb822.tmpl     /etc/cloud/templates/sources.list.debian.tmpl     /etc/cloud/templates/sources.list.ubuntu.deb822.tmpl     /etc/cloud/templates/sources.list.ubuntu.tmpl     /etc/cloud/templates/systemd.resolved.conf.tmpl     /etc/cloud/templates/timesyncd.conf.tmpl You could potentially move them to /usr/local/share/doc/cloud-init/templates in a post-install step, that way the user gets the templates somewhere in the system and they can choose when to use them. Cheers, Aisha > > Mina http://www.unicode-symbol.com/u/0107.html Galić