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 = <tests.unittests.sources.test_azure.TestAzureDataSource
testMethod=test_password_with_disable_ssh_pw_auth_unspecified>

    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ć

Reply via email to