[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:40:22.679114Z",
                    "start": "2026-04-02T12:40:18.785812Z"
                },
                "id": "0242ac17-0011-f051-2d16-000000000002",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": "ttyS0",
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_date_time": {
                                    "date": "2026-04-02",
                                    "day": "02",
                                    "epoch": "1775133619",
                                    "epoch_int": "1775133619",
                                    "hour": "12",
                                    "iso8601": "2026-04-02T12:40:19Z",
                                    "iso8601_basic": "20260402T124019669694",
                                    "iso8601_basic_short": "20260402T124019",
                                    "iso8601_micro": "2026-04-02T12:40:19.669694Z",
                                    "minute": "40",
                                    "month": "04",
                                    "second": "19",
                                    "time": "12:40:19",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Thursday",
                                    "weekday_number": "4",
                                    "weeknumber": "13",
                                    "year": "2026"
                                },
                                "ansible_devices": {},
                                "ansible_distribution": "Debian",
                                "ansible_distribution_major_version": "12",
                                "ansible_distribution_release": "bookworm",
                                "ansible_distribution_version": "12",
                                "ansible_dns": {
                                    "nameservers": [
                                        "127.0.0.11"
                                    ],
                                    "options": {
                                        "edns0": true,
                                        "ndots": "0",
                                        "trust-ad": true
                                    },
                                    "search": [
                                        "openstacklocal"
                                    ]
                                },
                                "ansible_domain": "",
                                "ansible_effective_group_id": 0,
                                "ansible_effective_user_id": 0,
                                "ansible_env": {
                                    "ANSIBLE_CONFIG": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/ansible/pre_playbook_0/ansible.cfg",
                                    "DEBIAN_FRONTEND": "noninteractive",
                                    "GPG_KEY": "A035C8C19219BA821ECEA86B64E628F8D684696D",
                                    "HOME": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work",
                                    "HOSTNAME": "0a8996d2b663",
                                    "LANG": "C.UTF-8",
                                    "PATH": "/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                    "PWD": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base",
                                    "PYTHONPATH": "/var/lib/zuul/ansible/9",
                                    "PYTHON_SHA256": "8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78",
                                    "PYTHON_VERSION": "3.11.14",
                                    "SSH_AGENT_PID": "483591",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-cHIHgC2LRiL8/agent.483586",
                                    "TMP": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/tmp",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "0a8996d2b663",
                                "ansible_hostname": "0a8996d2b663",
                                "ansible_hostnqn": "",
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "5.15.0-130-generic",
                                "ansible_kernel_version": "#140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024",
                                "ansible_loadavg": {
                                    "15m": 11.416015625,
                                    "1m": 20.716796875,
                                    "5m": 18.2412109375
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 2026,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 16594,
                                        "used": 15496
                                    },
                                    "real": {
                                        "free": 2026,
                                        "total": 32090,
                                        "used": 30064
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 32090,
                                "ansible_mounts": [
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/etc/resolv.conf",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/etc/hosts",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/ansible",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/ansible/pre_playbook_0",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/etc/zuul/site-variables.yaml",
                                        "options": "ro,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 207548324,
                                        "block_size": 4096,
                                        "block_total": 263940717,
                                        "block_used": 56392393,
                                        "device": "/dev/vdb",
                                        "fstype": "ext4",
                                        "inode_available": 61445316,
                                        "inode_total": 67108864,
                                        "inode_used": 5663548,
                                        "mount": "/srv/static/logs",
                                        "options": "rw,nosuid,nodev,relatime,discard",
                                        "size_available": 850117935104,
                                        "size_total": 1081101176832,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 7560321,
                                        "block_size": 4096,
                                        "block_total": 40601580,
                                        "block_used": 33041259,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 16050556,
                                        "inode_total": 20643840,
                                        "inode_used": 4593284,
                                        "mount": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/.ansible",
                                        "options": "rw,nosuid,nodev,relatime,discard,errors=remount-ro,bind",
                                        "size_available": 30967074816,
                                        "size_total": 166304071680,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "0a8996d2b663",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-5.15.0-130-generic",
                                    "console": [
                                        "tty1",
                                        "ttyS0"
                                    ],
                                    "ro": true,
                                    "root": "UUID=5a569d86-b935-46dd-ae79-7a72a25b6a4c"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "8",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "9",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "10",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "11",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "12",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "13",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "14",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "15",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 16,
                                "ansible_processor_nproc": 16,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 16,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/local/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 14,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        14,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.14",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 0,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": "N/A",
                                "ansible_system_capabilities_enforced": "N/A",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 38797349,
                                "ansible_user_dir": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work",
                                "ansible_user_gecos": "root",
                                "ansible_user_gid": 0,
                                "ansible_user_id": "root",
                                "ansible_user_shell": "/bin/bash",
                                "ansible_user_uid": 0,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "host",
                                "ansible_virtualization_tech_guest": [],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "kvm",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "deprecations": [],
                            "warnings": []
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:20.009463Z",
                            "start": "2026-04-02T12:40:18.794729Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000002a",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:20.166108Z",
                            "start": "2026-04-02T12:40:20.015147Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000008",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "8a3/oss/8a349a3001764ce5a138bf3680253ebe"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000054",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:20.255055Z",
                            "start": "2026-04-02T12:40:20.184414Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000056",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.16\nJob: magnum-cluster-api-tox-unit\nPipeline: check\nExecutor: 0a8996d2b663\nTriggered by: https://github.com/vexxhost/magnum-cluster-api/pull/925\nEvent ID: c9b947c0-2e8f-11f1-82ec-37f8bf101688\n"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:20.355737Z",
                            "start": "2026-04-02T12:40:20.264379Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000009",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: ubuntu-noble\nHostname: np0000162956\nUsername: zuul\nDistro: Ubuntu 24.04\nProvider: yul1\nRegion: ca-ymq-1\nLabel: ubuntu-noble\nProduct Name: OpenStack Nova\nInterface IP: 199.19.213.18\n",
                                    "zj_item": "ubuntu-noble"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000006",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:20.526446Z",
                            "start": "2026-04-02T12:40:20.361027Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000000a",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:21.193952Z",
                            "start": "2026-04-02T12:40:20.532726Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000000f",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "efc6db521ac753bda1bacd5299316ea19b0b41e8",
                            "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "efc6db521ac753bda1bacd5299316ea19b0b41e8",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/zuul-info",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/.ansible/tmp/ansible-tmp-1775133621.4072304-84-701240234328/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "8930e17ce514c947304a798946fe2109",
                            "mode": "0644",
                            "owner": "root",
                            "size": 16373,
                            "src": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/.ansible/tmp/ansible-tmp-1775133621.4072304-84-701240234328/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-00000000000d",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:22.679114Z",
                            "start": "2026-04-02T12:40:21.372140Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000010",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:40:31.635808Z",
                    "start": "2026-04-02T12:40:22.687356Z"
                },
                "id": "0242ac17-0011-f051-2d16-000000000011",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:23.058552Z",
                            "start": "2026-04-02T12:40:22.699130Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000018",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:23.105655Z",
                            "start": "2026-04-02T12:40:23.069637Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000019",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:01.136612",
                            "end": "2026-04-02 12:40:24.651895",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa -b 3072",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-f051-2d16-00000000009c-0-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:40:23.515283",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa.pub\nThe key fingerprint is:\nSHA256:7dCX8SJe9bATwf6KR3HFBs7hqEwC+Qetk4mzIa/2YSs zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|      .. .   .+o |\n|      ... .  =.o+|\n|       o.=. o.B..|\n|    . + **.. =o=.|\n|     o +So* = ++.|\n|      o  + + ....|\n|     .o   o  o . |\n|    E. o    . o  |\n|   . oo      .   |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:7dCX8SJe9bATwf6KR3HFBs7hqEwC+Qetk4mzIa/2YSs zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|      .. .   .+o |",
                                "|      ... .  =.o+|",
                                "|       o.=. o.B..|",
                                "|    . + **.. =o=.|",
                                "|     o +So* = ++.|",
                                "|      o  + + ....|",
                                "|     .o   o  o . |",
                                "|    E. o    . o  |",
                                "|   . oo      .   |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac17-0011-f051-2d16-00000000009c-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:24.696055Z",
                            "start": "2026-04-02T12:40:23.129651Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000009c",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:24.736383Z",
                            "start": "2026-04-02T12:40:24.702235Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000009d",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:24.772708Z",
                            "start": "2026-04-02T12:40:24.758870Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000bc",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5EXlUQX2Svtff5K5r3xIGhb58iw1MczWUB4PKkK9ZwQAZamAbo9Sj8HPdxG8ZCj+MP+lsK5Vm8INPNul4JCSwwbPkbCO9hR/vvlRATpl3ANwDi+oH9umoGw0K9vMftJ6RJMAs2KV+602/zwq5RzC3ZZ3DpFgpXD5/N8I2kKFYjxRQeSvfF5iVBAOj/QV8DL6sEQ1KlHwlN5P8ZQCTfpes0LxEEt2L6wbJkkFniFcGKXzk/7Y0lI3f732ifAfYzkqPMY6K2xeVXJ6XpQDDMKW87tXJL+DuQKjVGH+ekeIje542cYnLCk6ZZVfCNEmzBAiCa2iQ3aCuST6Hxavq0t1sUU9ZPSJWbAORsdV6oMeqMCBRQuXoHrQWJSgPD9cntlphJR6WbAdvrUIdctliDdXeFhdBvX0rEJovopaf6t/ZmMLLW0bF6PHNi4u3zyg07zSh723Of5bDXpMoDdD3+TPDB7kYyUDtnov/uHaukCb1lyvrL8TjZ32zvUp/ZieujNM= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "present",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5EXlUQX2Svtff5K5r3xIGhb58iw1MczWUB4PKkK9ZwQAZamAbo9Sj8HPdxG8ZCj+MP+lsK5Vm8INPNul4JCSwwbPkbCO9hR/vvlRATpl3ANwDi+oH9umoGw0K9vMftJ6RJMAs2KV+602/zwq5RzC3ZZ3DpFgpXD5/N8I2kKFYjxRQeSvfF5iVBAOj/QV8DL6sEQ1KlHwlN5P8ZQCTfpes0LxEEt2L6wbJkkFniFcGKXzk/7Y0lI3f732ifAfYzkqPMY6K2xeVXJ6XpQDDMKW87tXJL+DuQKjVGH+ekeIje542cYnLCk6ZZVfCNEmzBAiCa2iQ3aCuST6Hxavq0t1sUU9ZPSJWbAORsdV6oMeqMCBRQuXoHrQWJSgPD9cntlphJR6WbAdvrUIdctliDdXeFhdBvX0rEJovopaf6t/ZmMLLW0bF6PHNi4u3zyg07zSh723Of5bDXpMoDdD3+TPDB7kYyUDtnov/uHaukCb1lyvrL8TjZ32zvUp/ZieujNM= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:25.445422Z",
                            "start": "2026-04-02T12:40:24.780885Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000bd",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:25.698348Z",
                            "start": "2026-04-02T12:40:25.453919Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000be",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "3ecad30515e79af4fe8c3d6c6bbb39f07fdba31a",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "8a349a3001764ce5a138bf3680253ebe_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "3ecad30515e79af4fe8c3d6c6bbb39f07fdba31a",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 384,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133625.7529352-190-181932667014576/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "9782492777db7a9c246239ed0a2141d9",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133625.7529352-190-181932667014576/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:26.272895Z",
                            "start": "2026-04-02T12:40:25.708423Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000bf",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "0359d1147f2baf0c2e799ec78b2b6bd6dd59e857",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "8a349a3001764ce5a138bf3680253ebe_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "0359d1147f2baf0c2e799ec78b2b6bd6dd59e857",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa.pub",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133626.3856182-200-63097770871188/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "49330cb00ca5909cf9b69fe25b9848cb",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133626.3856182-200-63097770871188/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:26.922889Z",
                            "start": "2026-04-02T12:40:26.337611Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000c0",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:26.954569Z",
                            "start": "2026-04-02T12:40:26.929991Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000009e",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/etc/zuul/id_rsa"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-0000000000a3",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:27.365362Z",
                            "start": "2026-04-02T12:40:26.965323Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000a5",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa"
                            ],
                            "delta": "0:00:00.012576",
                            "end": "2026-04-02 12:40:27.617669",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-f051-2d16-0000000000ab-0-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:40:27.605093",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/8a349a3001764ce5a138bf3680253ebe_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac17-0011-f051-2d16-0000000000ab-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:27.801623Z",
                            "start": "2026-04-02T12:40:27.382177Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000ab",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:28.148098Z",
                            "start": "2026-04-02T12:40:27.809276Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000ac",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000016",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:28.181680Z",
                            "start": "2026-04-02T12:40:28.155991Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-0000000000ad",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:28.596425Z",
                            "start": "2026-04-02T12:40:28.196911Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000001d",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-00000000001b",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:29.790812Z",
                            "start": "2026-04-02T12:40:28.613527Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-00000000001e",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/home/zuul/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:30.940416Z",
                            "start": "2026-04-02T12:40:30.331642Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000022",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "mode": "0755",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "mode": "0775",
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-f051-2d16-000000000020",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:31.635808Z",
                            "start": "2026-04-02T12:40:30.948994Z"
                        },
                        "id": "0242ac17-0011-f051-2d16-000000000024",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "ubuntu-noble": {
            "changed": 8,
            "failures": 0,
            "ignored": 0,
            "ok": 15,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "master",
    "index": "1",
    "phase": "pre",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/unittests/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:40:35.321035Z",
                    "start": "2026-04-02T12:40:32.704042Z"
                },
                "id": "0242ac17-0011-cd1b-3451-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "bindep"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:32.793948Z",
                            "start": "2026-04-02T12:40:32.723847Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000004",
                        "name": "Install binary dependencies"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "find.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:32.867642Z",
                            "start": "2026-04-02T12:40:32.823322Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-00000000001e",
                        "name": "Include find tasks"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/vexxhost/magnum-cluster-api/bindep.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.458054Z",
                            "start": "2026-04-02T12:40:33.064006Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-00000000003e",
                        "name": "Look for bindep.txt"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "bindep_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.609631Z",
                            "start": "2026-04-02T12:40:33.468079Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-00000000003f",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/vexxhost/magnum-cluster-api/other-requirements.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.832668Z",
                            "start": "2026-04-02T12:40:33.621751Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000040",
                        "name": "Look for other-requirements.txt"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_other_file_stat is skipped and  bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.878559Z",
                            "start": "2026-04-02T12:40:33.843794Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000041",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "bindep_fallback is defined and not bindep_other_file_stat is skipped and not bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.919497Z",
                            "start": "2026-04-02T12:40:33.885336Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000042",
                        "name": "Look for bindep fallback file"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_fallback_file_stat is skipped and  bindep_fallback_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.950624Z",
                            "start": "2026-04-02T12:40:33.925855Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000043",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:33.991984Z",
                            "start": "2026-04-02T12:40:33.957369Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-00000000001f",
                        "name": "Include bindep tasks"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:34.118075Z",
                            "start": "2026-04-02T12:40:34.001458Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000020",
                        "name": "Include install tasks"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:34.181956Z",
                            "start": "2026-04-02T12:40:34.126885Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000021",
                        "name": "Include package tasks"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "test-setup"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:34.285131Z",
                            "start": "2026-04-02T12:40:34.241624Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000005",
                        "name": "Run test-setup role"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/vexxhost/magnum-cluster-api/tools/test-setup.sh"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:34.525916Z",
                            "start": "2026-04-02T12:40:34.309699Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000091",
                        "name": "Check if project's tools/test-setup.sh exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "p.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-cd1b-3451-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:35.321035Z",
                            "start": "2026-04-02T12:40:34.568692Z"
                        },
                        "id": "0242ac17-0011-cd1b-3451-000000000092",
                        "name": "Run tools/test-setup.sh"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 0,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "2",
    "phase": "pre",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:41:34.223696Z",
                    "start": "2026-04-02T12:40:36.065880Z"
                },
                "id": "0242ac17-0011-7adc-e78e-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "assert",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.117890Z",
                            "start": "2026-04-02T12:40:36.092190Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000008",
                        "name": "Validate python_version value"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.171910Z",
                            "start": "2026-04-02T12:40:36.136966Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000000a",
                        "name": "Install specified version of python interpreter and development files (DEB)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.227040Z",
                            "start": "2026-04-02T12:40:36.190763Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000000b",
                        "name": "Pull in venv package"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.261814Z",
                            "start": "2026-04-02T12:40:36.236135Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000000d",
                        "name": "Set default RPM package name"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.307445Z",
                            "start": "2026-04-02T12:40:36.271932Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000000e",
                        "name": "Set RPM package name for CentOS/RHEL 9/10"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.343956Z",
                            "start": "2026-04-02T12:40:36.319204Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000000f",
                        "name": "Install RPM package"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_use_pyenv",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.461646Z",
                            "start": "2026-04-02T12:40:36.432638Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000011",
                        "name": "Install python using pyenv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.517792Z",
                            "start": "2026-04-02T12:40:36.476301Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000012",
                        "name": "Activate python using stow"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:36.560663Z",
                            "start": "2026-04-02T12:40:36.536481Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000016",
                        "name": "Install pip"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                            "delta": "0:00:00.042240",
                            "end": "2026-04-02 12:40:37.014198",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000081-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-04-02 12:40:36.971958",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000081-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:37.117860Z",
                            "start": "2026-04-02T12:40:36.606930Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000081",
                        "name": "Check if pip is installed"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_distro_os",
                                    "include": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/Debian.yaml",
                                    "include_args": {},
                                    "zj_distro_os": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/Debian.yaml"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:37.180713Z",
                            "start": "2026-04-02T12:40:37.123203Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000082",
                        "name": "Install pip from packages"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "apt",
                            "cache_update_time": 1775133645,
                            "cache_updated": true,
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "only_upgrade": false,
                                    "package": null,
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:40:47.489158Z",
                            "start": "2026-04-02T12:40:37.202715Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-0000000000be",
                        "name": "Update package lists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "cache_update_time": 1775133645,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": [
                                        "python3-pip",
                                        "python3-setuptools",
                                        "python3-venv",
                                        "python3-wheel"
                                    ],
                                    "only_upgrade": false,
                                    "package": [
                                        "python3-pip",
                                        "python3-setuptools",
                                        "python3-venv",
                                        "python3-wheel"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "debconf: delaying package configuration, since apt-utils is not installed\n",
                            "stderr_lines": [
                                "debconf: delaying package configuration, since apt-utils is not installed"
                            ],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n  python3-pip-whl python3-setuptools-whl python3.12-venv\nSuggested packages:\n  python-setuptools-doc\nRecommended packages:\n  build-essential python3-dev\nThe following NEW packages will be installed:\n  python3-pip python3-pip-whl python3-setuptools python3-setuptools-whl\n  python3-venv python3-wheel python3.12-venv\n0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 4199 kB of archives.\nAfter this operation, 12.3 MB of additional disk space will be used.\nGet:1 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-setuptools all 68.1.2-2ubuntu1.2 [397 kB]\nGet:2 http://nova.clouds.archive.ubuntu.com/ubuntu noble/universe amd64 python3-wheel all 0.42.0-2 [53.1 kB]\nGet:3 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip all 24.0+dfsg-1ubuntu1.3 [1320 kB]\nGet:4 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip-whl all 24.0+dfsg-1ubuntu1.3 [1707 kB]\nGet:5 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-setuptools-whl all 68.1.2-2ubuntu1.2 [716 kB]\nGet:6 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.12 [5666 B]\nGet:7 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-venv amd64 3.12.3-0ubuntu2.1 [1032 B]\nFetched 4199 kB in 1s (4008 kB/s)\nSelecting previously unselected package python3-setuptools.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 30633 files and directories currently installed.)\r\nPreparing to unpack .../0-python3-setuptools_68.1.2-2ubuntu1.2_all.deb ...\r\nUnpacking python3-setuptools (68.1.2-2ubuntu1.2) ...\r\nSelecting previously unselected package python3-wheel.\r\nPreparing to unpack .../1-python3-wheel_0.42.0-2_all.deb ...\r\nUnpacking python3-wheel (0.42.0-2) ...\r\nSelecting previously unselected package python3-pip.\r\nPreparing to unpack .../2-python3-pip_24.0+dfsg-1ubuntu1.3_all.deb ...\r\nUnpacking python3-pip (24.0+dfsg-1ubuntu1.3) ...\r\nSelecting previously unselected package python3-pip-whl.\r\nPreparing to unpack .../3-python3-pip-whl_24.0+dfsg-1ubuntu1.3_all.deb ...\r\nUnpacking python3-pip-whl (24.0+dfsg-1ubuntu1.3) ...\r\nSelecting previously unselected package python3-setuptools-whl.\r\nPreparing to unpack .../4-python3-setuptools-whl_68.1.2-2ubuntu1.2_all.deb ...\r\nUnpacking python3-setuptools-whl (68.1.2-2ubuntu1.2) ...\r\nSelecting previously unselected package python3.12-venv.\r\nPreparing to unpack .../5-python3.12-venv_3.12.3-1ubuntu0.12_amd64.deb ...\r\nUnpacking python3.12-venv (3.12.3-1ubuntu0.12) ...\r\nSelecting previously unselected package python3-venv.\r\nPreparing to unpack .../6-python3-venv_3.12.3-0ubuntu2.1_amd64.deb ...\r\nUnpacking python3-venv (3.12.3-0ubuntu2.1) ...\r\nSetting up python3-setuptools-whl (68.1.2-2ubuntu1.2) ...\r\nSetting up python3-setuptools (68.1.2-2ubuntu1.2) ...\r\nSetting up python3-pip-whl (24.0+dfsg-1ubuntu1.3) ...\r\nSetting up python3-wheel (0.42.0-2) ...\r\nSetting up python3-pip (24.0+dfsg-1ubuntu1.3) ...\r\nSetting up python3.12-venv (3.12.3-1ubuntu0.12) ...\r\nSetting up python3-venv (3.12.3-0ubuntu2.1) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  python3-pip-whl python3-setuptools-whl python3.12-venv",
                                "Suggested packages:",
                                "  python-setuptools-doc",
                                "Recommended packages:",
                                "  build-essential python3-dev",
                                "The following NEW packages will be installed:",
                                "  python3-pip python3-pip-whl python3-setuptools python3-setuptools-whl",
                                "  python3-venv python3-wheel python3.12-venv",
                                "0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 4199 kB of archives.",
                                "After this operation, 12.3 MB of additional disk space will be used.",
                                "Get:1 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-setuptools all 68.1.2-2ubuntu1.2 [397 kB]",
                                "Get:2 http://nova.clouds.archive.ubuntu.com/ubuntu noble/universe amd64 python3-wheel all 0.42.0-2 [53.1 kB]",
                                "Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip all 24.0+dfsg-1ubuntu1.3 [1320 kB]",
                                "Get:4 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip-whl all 24.0+dfsg-1ubuntu1.3 [1707 kB]",
                                "Get:5 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-setuptools-whl all 68.1.2-2ubuntu1.2 [716 kB]",
                                "Get:6 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.12 [5666 B]",
                                "Get:7 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-venv amd64 3.12.3-0ubuntu2.1 [1032 B]",
                                "Fetched 4199 kB in 1s (4008 kB/s)",
                                "Selecting previously unselected package python3-setuptools.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 30633 files and directories currently installed.)",
                                "Preparing to unpack .../0-python3-setuptools_68.1.2-2ubuntu1.2_all.deb ...",
                                "Unpacking python3-setuptools (68.1.2-2ubuntu1.2) ...",
                                "Selecting previously unselected package python3-wheel.",
                                "Preparing to unpack .../1-python3-wheel_0.42.0-2_all.deb ...",
                                "Unpacking python3-wheel (0.42.0-2) ...",
                                "Selecting previously unselected package python3-pip.",
                                "Preparing to unpack .../2-python3-pip_24.0+dfsg-1ubuntu1.3_all.deb ...",
                                "Unpacking python3-pip (24.0+dfsg-1ubuntu1.3) ...",
                                "Selecting previously unselected package python3-pip-whl.",
                                "Preparing to unpack .../3-python3-pip-whl_24.0+dfsg-1ubuntu1.3_all.deb ...",
                                "Unpacking python3-pip-whl (24.0+dfsg-1ubuntu1.3) ...",
                                "Selecting previously unselected package python3-setuptools-whl.",
                                "Preparing to unpack .../4-python3-setuptools-whl_68.1.2-2ubuntu1.2_all.deb ...",
                                "Unpacking python3-setuptools-whl (68.1.2-2ubuntu1.2) ...",
                                "Selecting previously unselected package python3.12-venv.",
                                "Preparing to unpack .../5-python3.12-venv_3.12.3-1ubuntu0.12_amd64.deb ...",
                                "Unpacking python3.12-venv (3.12.3-1ubuntu0.12) ...",
                                "Selecting previously unselected package python3-venv.",
                                "Preparing to unpack .../6-python3-venv_3.12.3-0ubuntu2.1_amd64.deb ...",
                                "Unpacking python3-venv (3.12.3-0ubuntu2.1) ...",
                                "Setting up python3-setuptools-whl (68.1.2-2ubuntu1.2) ...",
                                "Setting up python3-setuptools (68.1.2-2ubuntu1.2) ...",
                                "Setting up python3-pip-whl (24.0+dfsg-1ubuntu1.3) ...",
                                "Setting up python3-wheel (0.42.0-2) ...",
                                "Setting up python3-pip (24.0+dfsg-1ubuntu1.3) ...",
                                "Setting up python3.12-venv (3.12.3-1ubuntu0.12) ...",
                                "Setting up python3-venv (3.12.3-0ubuntu2.1) ..."
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:23.739469Z",
                            "start": "2026-04-02T12:40:47.499545Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-0000000000bf",
                        "name": "Install Python 3 pip"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ensure_pip_from_packages_with_python2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:23.772347Z",
                            "start": "2026-04-02T12:41:23.747517Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-0000000000c0",
                        "name": "Install Python 2 pip"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_python.version.major == 2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:23.796761Z",
                            "start": "2026-04-02T12:41:23.778104Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000087",
                        "name": "Ensure setuptools"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "python3",
                                "-m",
                                "ensurepip",
                                "--help"
                            ],
                            "delta": "0:00:00.070480",
                            "end": "2026-04-02 12:41:24.129905",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "python3 -m ensurepip --help",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000088-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:24.059425",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]\n                           [--altinstall] [--default-pip]\n\noptions:\n  -h, --help     show this help message and exit\n  --version      Show the version of pip that is bundled with this Python.\n  -v, --verbose  Give more output. Option is additive, and can be used up to 3\n                 times.\n  -U, --upgrade  Upgrade pip and dependencies, even if already installed.\n  --user         Install using the user scheme.\n  --root ROOT    Install everything relative to this alternate root directory.\n  --altinstall   Make an alternate install, installing only the X.Y versioned\n                 scripts (Default: pipX, pipX.Y).\n  --default-pip  Make a default pip install, installing the unqualified pip in\n                 addition to the versioned scripts.",
                            "stdout_lines": [
                                "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]",
                                "                           [--altinstall] [--default-pip]",
                                "",
                                "options:",
                                "  -h, --help     show this help message and exit",
                                "  --version      Show the version of pip that is bundled with this Python.",
                                "  -v, --verbose  Give more output. Option is additive, and can be used up to 3",
                                "                 times.",
                                "  -U, --upgrade  Upgrade pip and dependencies, even if already installed.",
                                "  --user         Install using the user scheme.",
                                "  --root ROOT    Install everything relative to this alternate root directory.",
                                "  --altinstall   Make an alternate install, installing only the X.Y versioned",
                                "                 scripts (Default: pipX, pipX.Y).",
                                "  --default-pip  Make a default pip install, installing the unqualified pip in",
                                "                 addition to the versioned scripts."
                            ],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000088-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:24.367884Z",
                            "start": "2026-04-02T12:41:23.839247Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000088",
                        "name": "Check for ensurepip module"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "_ensurepip_module.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:24.469571Z",
                            "start": "2026-04-02T12:41:24.422308Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000089",
                        "name": "Ensure python3-venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ensure_pip_from_upstream",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:24.502635Z",
                            "start": "2026-04-02T12:41:24.477045Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000008a",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.007093",
                            "end": "2026-04-02 12:41:24.760079",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v python3\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000008b-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:24.752986",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000008b-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:25.070208Z",
                            "start": "2026-04-02T12:41:24.547898Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000008b",
                        "name": "Probe for venv python full path"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "_host_virtualenv": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:25.137868Z",
                            "start": "2026-04-02T12:41:25.076771Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000008c",
                        "name": "Set host default"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_pip_virtualenv_command": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:25.340326Z",
                            "start": "2026-04-02T12:41:25.145738Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000008d",
                        "name": "Set ensure_pip_virtualenv_command"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v tox /home/zuul/.local/tox/bin/tox || exit 1\n",
                            "delta": "0:00:00.007563",
                            "end": "2026-04-02 12:41:25.637020",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v tox /home/zuul/.local/tox/bin/tox || exit 1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000017-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-04-02 12:41:25.629457",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-000000000017-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:25.900477Z",
                            "start": "2026-04-02T12:41:25.381985Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000017",
                        "name": "Check if tox is installed"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:25.932700Z",
                            "start": "2026-04-02T12:41:25.908327Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-000000000018",
                        "name": "Export preinstalled tox_exectuable"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/usr/bin/python3",
                                "-m",
                                "venv",
                                "/home/zuul/.local/tox"
                            ],
                            "delta": "0:00:03.175848",
                            "end": "2026-04-02 12:41:29.377004",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/bin/python3 -m venv /home/zuul/.local/tox",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001a-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:26.201156",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001a-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:29.505302Z",
                            "start": "2026-04-02T12:41:25.975068Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000001a",
                        "name": "Create local venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/pip",
                                "install",
                                "tox"
                            ],
                            "delta": "0:00:02.822854",
                            "end": "2026-04-02 12:41:32.581541",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/pip install tox",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001b-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:29.758687",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Collecting tox\n  Downloading tox-4.52.0-py3-none-any.whl.metadata (3.6 kB)\nCollecting cachetools>=7.0.3 (from tox)\n  Downloading cachetools-7.0.5-py3-none-any.whl.metadata (5.6 kB)\nCollecting colorama>=0.4.6 (from tox)\n  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\nCollecting filelock>=3.25 (from tox)\n  Downloading filelock-3.25.2-py3-none-any.whl.metadata (2.0 kB)\nCollecting packaging>=26 (from tox)\n  Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting platformdirs>=4.9.4 (from tox)\n  Downloading platformdirs-4.9.4-py3-none-any.whl.metadata (4.7 kB)\nCollecting pluggy>=1.6 (from tox)\n  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\nCollecting pyproject-api>=1.10 (from tox)\n  Downloading pyproject_api-1.10.0-py3-none-any.whl.metadata (2.7 kB)\nCollecting python-discovery>=1.2.1 (from tox)\n  Downloading python_discovery-1.2.1-py3-none-any.whl.metadata (5.4 kB)\nCollecting tomli-w>=1.2 (from tox)\n  Downloading tomli_w-1.2.0-py3-none-any.whl.metadata (5.7 kB)\nCollecting virtualenv>=21.1 (from tox)\n  Downloading virtualenv-21.2.0-py3-none-any.whl.metadata (3.5 kB)\nCollecting distlib<1,>=0.3.7 (from virtualenv>=21.1->tox)\n  Downloading distlib-0.4.0-py2.py3-none-any.whl.metadata (5.2 kB)\nDownloading tox-4.52.0-py3-none-any.whl (211 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 211.8/211.8 kB 12.0 MB/s eta 0:00:00\nDownloading cachetools-7.0.5-py3-none-any.whl (13 kB)\nDownloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\nDownloading filelock-3.25.2-py3-none-any.whl (26 kB)\nDownloading packaging-26.0-py3-none-any.whl (74 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 74.4/74.4 kB 5.8 MB/s eta 0:00:00\nDownloading platformdirs-4.9.4-py3-none-any.whl (21 kB)\nDownloading pluggy-1.6.0-py3-none-any.whl (20 kB)\nDownloading pyproject_api-1.10.0-py3-none-any.whl (13 kB)\nDownloading python_discovery-1.2.1-py3-none-any.whl (31 kB)\nDownloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)\nDownloading virtualenv-21.2.0-py3-none-any.whl (5.8 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 5.8/5.8 MB 60.6 MB/s eta 0:00:00\nDownloading distlib-0.4.0-py2.py3-none-any.whl (469 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 469.0/469.0 kB 30.5 MB/s eta 0:00:00\nInstalling collected packages: distlib, tomli-w, pluggy, platformdirs, packaging, filelock, colorama, cachetools, python-discovery, pyproject-api, virtualenv, tox\nSuccessfully installed cachetools-7.0.5 colorama-0.4.6 distlib-0.4.0 filelock-3.25.2 packaging-26.0 platformdirs-4.9.4 pluggy-1.6.0 pyproject-api-1.10.0 python-discovery-1.2.1 tomli-w-1.2.0 tox-4.52.0 virtualenv-21.2.0",
                            "stdout_lines": [
                                "Collecting tox",
                                "  Downloading tox-4.52.0-py3-none-any.whl.metadata (3.6 kB)",
                                "Collecting cachetools>=7.0.3 (from tox)",
                                "  Downloading cachetools-7.0.5-py3-none-any.whl.metadata (5.6 kB)",
                                "Collecting colorama>=0.4.6 (from tox)",
                                "  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)",
                                "Collecting filelock>=3.25 (from tox)",
                                "  Downloading filelock-3.25.2-py3-none-any.whl.metadata (2.0 kB)",
                                "Collecting packaging>=26 (from tox)",
                                "  Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB)",
                                "Collecting platformdirs>=4.9.4 (from tox)",
                                "  Downloading platformdirs-4.9.4-py3-none-any.whl.metadata (4.7 kB)",
                                "Collecting pluggy>=1.6 (from tox)",
                                "  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting pyproject-api>=1.10 (from tox)",
                                "  Downloading pyproject_api-1.10.0-py3-none-any.whl.metadata (2.7 kB)",
                                "Collecting python-discovery>=1.2.1 (from tox)",
                                "  Downloading python_discovery-1.2.1-py3-none-any.whl.metadata (5.4 kB)",
                                "Collecting tomli-w>=1.2 (from tox)",
                                "  Downloading tomli_w-1.2.0-py3-none-any.whl.metadata (5.7 kB)",
                                "Collecting virtualenv>=21.1 (from tox)",
                                "  Downloading virtualenv-21.2.0-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting distlib<1,>=0.3.7 (from virtualenv>=21.1->tox)",
                                "  Downloading distlib-0.4.0-py2.py3-none-any.whl.metadata (5.2 kB)",
                                "Downloading tox-4.52.0-py3-none-any.whl (211 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 211.8/211.8 kB 12.0 MB/s eta 0:00:00",
                                "Downloading cachetools-7.0.5-py3-none-any.whl (13 kB)",
                                "Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)",
                                "Downloading filelock-3.25.2-py3-none-any.whl (26 kB)",
                                "Downloading packaging-26.0-py3-none-any.whl (74 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 74.4/74.4 kB 5.8 MB/s eta 0:00:00",
                                "Downloading platformdirs-4.9.4-py3-none-any.whl (21 kB)",
                                "Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Downloading pyproject_api-1.10.0-py3-none-any.whl (13 kB)",
                                "Downloading python_discovery-1.2.1-py3-none-any.whl (31 kB)",
                                "Downloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)",
                                "Downloading virtualenv-21.2.0-py3-none-any.whl (5.8 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 5.8/5.8 MB 60.6 MB/s eta 0:00:00",
                                "Downloading distlib-0.4.0-py2.py3-none-any.whl (469 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 469.0/469.0 kB 30.5 MB/s eta 0:00:00",
                                "Installing collected packages: distlib, tomli-w, pluggy, platformdirs, packaging, filelock, colorama, cachetools, python-discovery, pyproject-api, virtualenv, tox",
                                "Successfully installed cachetools-7.0.5 colorama-0.4.6 distlib-0.4.0 filelock-3.25.2 packaging-26.0 platformdirs-4.9.4 pluggy-1.6.0 pyproject-api-1.10.0 python-discovery-1.2.1 tomli-w-1.2.0 tox-4.52.0 virtualenv-21.2.0"
                            ],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001b-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:33.060263Z",
                            "start": "2026-04-02T12:41:29.532821Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000001b",
                        "name": "Install tox to local venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "tox_executable": "/home/zuul/.local/tox/bin/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:33.119956Z",
                            "start": "2026-04-02T12:41:33.068161Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000001c",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.297260",
                            "end": "2026-04-02 12:41:33.674439",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001e-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:33.377179",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul\n4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul",
                                "4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac17-0011-7adc-e78e-00000000001e-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:34.180899Z",
                            "start": "2026-04-02T12:41:33.166005Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000001e",
                        "name": "Output tox version"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "ensure_global_symlinks",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-7adc-e78e-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:34.223696Z",
                            "start": "2026-04-02T12:41:34.188904Z"
                        },
                        "id": "0242ac17-0011-7adc-e78e-00000000001f",
                        "name": "Make global symlink"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 9,
            "failures": 0,
            "ignored": 0,
            "ok": 13,
            "rescued": 0,
            "skipped": 14,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "3",
    "phase": "pre",
    "playbook": "github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/tox/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:44:48.621329Z",
                    "start": "2026-04-02T12:41:35.181717Z"
                },
                "id": "0242ac17-0011-a854-e526-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "rustup.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000006",
                        "name": "ensure-rust",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-rust"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:35.257027Z",
                            "start": "2026-04-02T12:41:35.211170Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000008",
                        "name": "Use rustup"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "set -o pipefail\ncurl -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain stable\n",
                            "delta": "0:00:13.959927",
                            "end": "2026-04-02 12:41:49.748832",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -o pipefail\ncurl -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain stable\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000033-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:35.788905",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "info: downloading installer\nwarn: It looks like you have an existing rustup settings file at:\nwarn: /opt/rust/settings.toml\nwarn: Rustup will install the default toolchain as specified in the settings file,\nwarn: instead of the one inferred from the default host triple.\ninfo: profile set to default\ninfo: default host triple is x86_64-unknown-linux-gnu\ninfo: syncing channel updates for stable-x86_64-unknown-linux-gnu\ninfo: latest update on 2026-03-26 for version 1.94.1 (e408947bf 2026-03-25)\ninfo: downloading 6 components\ninfo: default toolchain set to stable-x86_64-unknown-linux-gnu\n\n  stable-x86_64-unknown-linux-gnu installed - rustc 1.94.1 (e408947bf 2026-03-25)\n\n\nRust is installed now. Great!\n\nTo get started you need Cargo's bin directory (/opt/rust/bin) in your PATH\nenvironment variable. This has not been done automatically.\n\nTo configure your current shell, you need to source\nthe corresponding env file under /opt/rust.\n\nThis is usually done by running one of the following (note the leading DOT):\n. \"/opt/rust/env\"            # For sh/bash/zsh/ash/dash/pdksh\nsource \"/opt/rust/env.fish\"  # For fish\nsource \"/opt/rust/env.nu\"  # For nushell\nsource \"/opt/rust/env.tcsh\"  # For tcsh\n. \"/opt/rust/env.ps1\"        # For pwsh\nsource \"/opt/rust/env.xsh\"   # For xonsh\nwarn: no default linker (`cc`) was found in your PATH\nwarn: many Rust crates require a system C toolchain to build",
                            "stdout_lines": [
                                "info: downloading installer",
                                "warn: It looks like you have an existing rustup settings file at:",
                                "warn: /opt/rust/settings.toml",
                                "warn: Rustup will install the default toolchain as specified in the settings file,",
                                "warn: instead of the one inferred from the default host triple.",
                                "info: profile set to default",
                                "info: default host triple is x86_64-unknown-linux-gnu",
                                "info: syncing channel updates for stable-x86_64-unknown-linux-gnu",
                                "info: latest update on 2026-03-26 for version 1.94.1 (e408947bf 2026-03-25)",
                                "info: downloading 6 components",
                                "info: default toolchain set to stable-x86_64-unknown-linux-gnu",
                                "",
                                "  stable-x86_64-unknown-linux-gnu installed - rustc 1.94.1 (e408947bf 2026-03-25)",
                                "",
                                "",
                                "Rust is installed now. Great!",
                                "",
                                "To get started you need Cargo's bin directory (/opt/rust/bin) in your PATH",
                                "environment variable. This has not been done automatically.",
                                "",
                                "To configure your current shell, you need to source",
                                "the corresponding env file under /opt/rust.",
                                "",
                                "This is usually done by running one of the following (note the leading DOT):",
                                ". \"/opt/rust/env\"            # For sh/bash/zsh/ash/dash/pdksh",
                                "source \"/opt/rust/env.fish\"  # For fish",
                                "source \"/opt/rust/env.nu\"  # For nushell",
                                "source \"/opt/rust/env.tcsh\"  # For tcsh",
                                ". \"/opt/rust/env.ps1\"        # For pwsh",
                                "source \"/opt/rust/env.xsh\"   # For xonsh",
                                "warn: no default linker (`cc`) was found in your PATH",
                                "warn: many Rust crates require a system C toolchain to build"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000033-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000006",
                        "name": "ensure-rust",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-rust"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:49.934622Z",
                            "start": "2026-04-02T12:41:35.397915Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000033",
                        "name": "Install Rust"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "template",
                            "changed": true,
                            "checksum": "987b70223dbb53d6377eef6b5ea491605cfb0dae",
                            "dest": "/usr/local/bin/rust-wrap-setup",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "rust-wrap-setup.sh.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "987b70223dbb53d6377eef6b5ea491605cfb0dae",
                                    "content": null,
                                    "dest": "/usr/local/bin/rust-wrap-setup",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": "root",
                                    "local_follow": null,
                                    "mode": 493,
                                    "owner": "root",
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133710.000436-9-236916984578317/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "78fc7d84bdb633246ebcabe2639ff881",
                            "mode": "0755",
                            "owner": "root",
                            "size": 313,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1775133710.000436-9-236916984578317/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000006",
                        "name": "ensure-rust",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-rust"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:50.825979Z",
                            "start": "2026-04-02T12:41:49.940374Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000034",
                        "name": "Install wrapper helper script"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "/usr/local/bin/rust-wrap-setup\n",
                            "delta": "0:00:00.089797",
                            "end": "2026-04-02 12:41:51.168034",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/local/bin/rust-wrap-setup\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000035-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:51.078237",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Install link for cargo\nInstall link for cargo-clippy\nInstall link for cargo-fmt\nInstall link for cargo-miri\nInstall link for clippy-driver\nInstall link for rls\nInstall link for rust-analyzer\nInstall link for rust-gdb\nInstall link for rust-gdbgui\nInstall link for rust-lldb\nInstall link for rustc\nInstall link for rustdoc\nInstall link for rustfmt\nInstall link for rustup",
                            "stdout_lines": [
                                "Install link for cargo",
                                "Install link for cargo-clippy",
                                "Install link for cargo-fmt",
                                "Install link for cargo-miri",
                                "Install link for clippy-driver",
                                "Install link for rls",
                                "Install link for rust-analyzer",
                                "Install link for rust-gdb",
                                "Install link for rust-gdbgui",
                                "Install link for rust-lldb",
                                "Install link for rustc",
                                "Install link for rustdoc",
                                "Install link for rustfmt",
                                "Install link for rustup"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000035-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000006",
                        "name": "ensure-rust",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-rust"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:51.378582Z",
                            "start": "2026-04-02T12:41:50.858726Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000035",
                        "name": "Run wrapper installation"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "fail",
                            "changed": false,
                            "false_condition": "ensure_rust_packages",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000006",
                        "name": "ensure-rust",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-rust"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:51.411529Z",
                            "start": "2026-04-02T12:41:51.385806Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000009",
                        "name": "Install packages"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-python-command"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000000b",
                        "name": "ensure-uv",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:51.446193Z",
                            "start": "2026-04-02T12:41:51.425888Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000000d",
                        "name": "Check and install uv if necessary"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:51.639477Z",
                            "start": "2026-04-02T12:41:51.612295Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000051",
                        "name": "Install pip"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                            "delta": "0:00:00.049057",
                            "end": "2026-04-02 12:41:52.980871",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000097-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:52.931814",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/pip3\nusage: __main__.py [-h] {unpack,pack,convert,tags,version,help} ...\n\npositional arguments:\n  {unpack,pack,convert,tags,version,help}\n                        commands\n    unpack              Unpack wheel\n    pack                Repack wheel\n    convert             Convert egg or wininst to wheel\n    tags                Add or replace the tags on a wheel\n    version             Print version and exit\n    help                Show this help\n\noptions:\n  -h, --help            show this help message and exit",
                            "stdout_lines": [
                                "/usr/bin/pip3",
                                "usage: __main__.py [-h] {unpack,pack,convert,tags,version,help} ...",
                                "",
                                "positional arguments:",
                                "  {unpack,pack,convert,tags,version,help}",
                                "                        commands",
                                "    unpack              Unpack wheel",
                                "    pack                Repack wheel",
                                "    convert             Convert egg or wininst to wheel",
                                "    tags                Add or replace the tags on a wheel",
                                "    version             Print version and exit",
                                "    help                Show this help",
                                "",
                                "options:",
                                "  -h, --help            show this help message and exit"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000097-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:53.235210Z",
                            "start": "2026-04-02T12:41:52.716622Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000097",
                        "name": "Check if pip is installed"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_distro_os",
                                    "changed": false,
                                    "false_condition": "pip_preinstalled.rc != 0",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_distro_os": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/Debian.yaml"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:53.302025Z",
                            "start": "2026-04-02T12:41:53.267336Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000098",
                        "name": "Install pip from packages"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_python.version.major == 2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:53.339775Z",
                            "start": "2026-04-02T12:41:53.313876Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000009d",
                        "name": "Ensure setuptools"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "python3",
                                "-m",
                                "ensurepip",
                                "--help"
                            ],
                            "delta": "0:00:00.068434",
                            "end": "2026-04-02 12:41:53.648679",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "python3 -m ensurepip --help",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-00000000009e-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:53.580245",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]\n                           [--altinstall] [--default-pip]\n\noptions:\n  -h, --help     show this help message and exit\n  --version      Show the version of pip that is bundled with this Python.\n  -v, --verbose  Give more output. Option is additive, and can be used up to 3\n                 times.\n  -U, --upgrade  Upgrade pip and dependencies, even if already installed.\n  --user         Install using the user scheme.\n  --root ROOT    Install everything relative to this alternate root directory.\n  --altinstall   Make an alternate install, installing only the X.Y versioned\n                 scripts (Default: pipX, pipX.Y).\n  --default-pip  Make a default pip install, installing the unqualified pip in\n                 addition to the versioned scripts.",
                            "stdout_lines": [
                                "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]",
                                "                           [--altinstall] [--default-pip]",
                                "",
                                "options:",
                                "  -h, --help     show this help message and exit",
                                "  --version      Show the version of pip that is bundled with this Python.",
                                "  -v, --verbose  Give more output. Option is additive, and can be used up to 3",
                                "                 times.",
                                "  -U, --upgrade  Upgrade pip and dependencies, even if already installed.",
                                "  --user         Install using the user scheme.",
                                "  --root ROOT    Install everything relative to this alternate root directory.",
                                "  --altinstall   Make an alternate install, installing only the X.Y versioned",
                                "                 scripts (Default: pipX, pipX.Y).",
                                "  --default-pip  Make a default pip install, installing the unqualified pip in",
                                "                 addition to the versioned scripts."
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-00000000009e-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:54.304636Z",
                            "start": "2026-04-02T12:41:53.376076Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000009e",
                        "name": "Check for ensurepip module"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "_ensurepip_module.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:54.345913Z",
                            "start": "2026-04-02T12:41:54.310320Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000009f",
                        "name": "Ensure python3-venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ensure_pip_from_upstream",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:54.385087Z",
                            "start": "2026-04-02T12:41:54.359612Z"
                        },
                        "id": "0242ac17-0011-a854-e526-0000000000a0",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.007991",
                            "end": "2026-04-02 12:41:54.660758",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v python3\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-0000000000a1-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:54.652767",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-0000000000a1-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:54.954690Z",
                            "start": "2026-04-02T12:41:54.439247Z"
                        },
                        "id": "0242ac17-0011-a854-e526-0000000000a1",
                        "name": "Probe for venv python full path"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "_host_virtualenv": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:55.018067Z",
                            "start": "2026-04-02T12:41:54.960256Z"
                        },
                        "id": "0242ac17-0011-a854-e526-0000000000a2",
                        "name": "Set host default"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_pip_virtualenv_command": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-000000000095",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:55.164635Z",
                            "start": "2026-04-02T12:41:55.023783Z"
                        },
                        "id": "0242ac17-0011-a854-e526-0000000000a3",
                        "name": "Set ensure_pip_virtualenv_command"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "fail",
                            "changed": false,
                            "false_condition": "ensure_python_command_name is not defined or not ensure_python_command_name.strip()",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:55.211188Z",
                            "start": "2026-04-02T12:41:55.176128Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000052",
                        "name": "Check if the command name is set and non-empty"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v  uv /home/zuul/.local/uv/bin/uv || exit 1\n",
                            "delta": "0:00:00.009019",
                            "end": "2026-04-02 12:41:55.481756",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v  uv /home/zuul/.local/uv/bin/uv || exit 1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000053-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-04-02 12:41:55.472737",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000053-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:57.521766Z",
                            "start": "2026-04-02T12:41:55.246565Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000053",
                        "name": "Check if uv is available"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "ensure_python_command_preinstalled.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:41:57.557679Z",
                            "start": "2026-04-02T12:41:57.529388Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000054",
                        "name": "Export preinstalled ensure_python_command_executable"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/usr/bin/python3",
                                "-m",
                                "venv",
                                "/home/zuul/.local/uv"
                            ],
                            "delta": "0:00:03.545027",
                            "end": "2026-04-02 12:42:01.338398",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/bin/python3 -m venv /home/zuul/.local/uv",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000056-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:41:57.793371",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000056-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:01.612140Z",
                            "start": "2026-04-02T12:41:57.591288Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000056",
                        "name": "Create local venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/uv/bin/pip",
                                "install",
                                "uv"
                            ],
                            "delta": "0:00:13.678474",
                            "end": "2026-04-02 12:42:15.532080",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/uv/bin/pip install uv",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000057-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:42:01.853606",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Collecting uv\n  Downloading uv-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\nDownloading uv-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.6 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 24.6/24.6 MB 1.9 MB/s eta 0:00:00\nInstalling collected packages: uv\nSuccessfully installed uv-0.11.3",
                            "stdout_lines": [
                                "Collecting uv",
                                "  Downloading uv-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)",
                                "Downloading uv-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.6 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 24.6/24.6 MB 1.9 MB/s eta 0:00:00",
                                "Installing collected packages: uv",
                                "Successfully installed uv-0.11.3"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000057-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:15.699430Z",
                            "start": "2026-04-02T12:42:01.640551Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000057",
                        "name": "Install uv to local venv"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_python_command_executable": "/home/zuul/.local/uv/bin/uv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:15.820519Z",
                            "start": "2026-04-02T12:42:15.704930Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000058",
                        "name": "Export installed ensure_python_command_executable path"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/uv/bin/uv",
                                "--version"
                            ],
                            "delta": "0:00:00.024037",
                            "end": "2026-04-02 12:42:16.722354",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/uv/bin/uv --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-00000000005a-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:42:16.698317",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "uv 0.11.3 (x86_64-unknown-linux-gnu)",
                            "stdout_lines": [
                                "uv 0.11.3 (x86_64-unknown-linux-gnu)"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-00000000005a-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:16.862803Z",
                            "start": "2026-04-02T12:42:15.848503Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000005a",
                        "name": "Output uv version"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "dest": "/usr/local/bin/uv",
                            "diff": {
                                "after": {
                                    "path": "/usr/local/bin/uv",
                                    "state": "link"
                                },
                                "before": {
                                    "path": "/usr/local/bin/uv",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "dest": "/usr/local/bin/uv",
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/usr/local/bin/uv",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.local/uv/bin/uv",
                                    "state": "link",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0777",
                            "owner": "root",
                            "size": 27,
                            "src": "/home/zuul/.local/uv/bin/uv",
                            "state": "link",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000004f",
                        "name": "ensure-python-command",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python-command"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:25.042553Z",
                            "start": "2026-04-02T12:42:16.911563Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000005b",
                        "name": "Make global symlink"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_uv_executable": "/home/zuul/.local/uv/bin/uv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-a854-e526-00000000000b",
                        "name": "ensure-uv",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-uv"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:25.311721Z",
                            "start": "2026-04-02T12:42:25.061564Z"
                        },
                        "id": "0242ac17-0011-a854-e526-00000000000e",
                        "name": "Export ensure_uv_executable path"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1775133645,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": [
                                        "build-essential",
                                        "pkg-config",
                                        "libssl-dev"
                                    ],
                                    "only_upgrade": false,
                                    "package": [
                                        "build-essential",
                                        "pkg-config",
                                        "libssl-dev"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "debconf: delaying package configuration, since apt-utils is not installed\n",
                            "stderr_lines": [
                                "debconf: delaying package configuration, since apt-utils is not installed"
                            ],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n  binutils binutils-common binutils-x86-64-linux-gnu bzip2 cpp cpp-13\n  cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev g++ g++-13\n  g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base\n  gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1 libbinutils\n  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0\n  libdpkg-perl libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1\n  libjansson4 liblsan0 libmpc3 libmpfr6 libpkgconf3 libquadmath0 libsframe1\n  libstdc++-13-dev libtsan2 libubsan1 linux-libc-dev lto-disabled-list make\n  patch pkgconf pkgconf-bin rpcsvc-proto xz-utils\nSuggested packages:\n  binutils-doc gprofng-gui bzip2-doc cpp-doc gcc-13-locales cpp-13-doc\n  debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib\n  manpages-dev autoconf automake libtool flex bison gdb gcc-doc\n  gcc-13-multilib gdb-x86-64-linux-gnu glibc-doc bzr libssl-doc\n  libstdc++-13-doc make-doc ed diffutils-doc\nRecommended packages:\n  fakeroot libalgorithm-merge-perl manpages manpages-dev libc-devtools\n  libfile-fcntllock-perl liblocale-gettext-perl\nThe following NEW packages will be installed:\n  binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 cpp\n  cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev g++ g++-13\n  g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base\n  gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1 libbinutils\n  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0\n  libdpkg-perl libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1\n  libjansson4 liblsan0 libmpc3 libmpfr6 libpkgconf3 libquadmath0 libsframe1\n  libssl-dev libstdc++-13-dev libtsan2 libubsan1 linux-libc-dev\n  lto-disabled-list make patch pkg-config pkgconf pkgconf-bin rpcsvc-proto\n  xz-utils\n0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 74.3 MB of archives.\nAfter this operation, 265 MB of additional disk space will be used.\nGet:1 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libjansson4 amd64 2.14-2build2 [32.8 kB]\nGet:2 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 xz-utils amd64 5.6.1+really5.4.5-1ubuntu0.2 [267 kB]\nGet:3 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd64 2.42-4ubuntu2.10 [240 kB]\nGet:4 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd64 2.42-4ubuntu2.10 [15.7 kB]\nGet:5 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd64 2.42-4ubuntu2.10 [577 kB]\nGet:6 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2.10 [98.0 kB]\nGet:7 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd64 2.42-4ubuntu2.10 [94.5 kB]\nGet:8 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd64 2.42-4ubuntu2.10 [849 kB]\nGet:9 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2.10 [2463 kB]\nGet:10 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd64 2.42-4ubuntu2.10 [18.2 kB]\nGet:11 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.7 [20.4 kB]\nGet:12 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-107.107 [2096 kB]\nGet:13 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]\nGet:14 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]\nGet:15 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.7 [2124 kB]\nGet:16 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-base amd64 13.3.0-6ubuntu2~24.04.1 [51.6 kB]\nGet:17 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libisl23 amd64 0.26-3build1.1 [680 kB]\nGet:18 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpfr6 amd64 4.2.1-1build1.1 [353 kB]\nGet:19 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpc3 amd64 1.3.1-1build1.1 [54.6 kB]\nGet:20 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [10.7 MB]\nGet:21 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13 amd64 13.3.0-6ubuntu2~24.04.1 [1042 B]\nGet:22 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]\nGet:23 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]\nGet:24 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04.1 [48.0 kB]\nGet:25 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04.1 [148 kB]\nGet:26 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04.1 [29.7 kB]\nGet:27 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04.1 [10.5 kB]\nGet:28 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04.1 [3027 kB]\nGet:29 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04.1 [1322 kB]\nGet:30 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04.1 [2772 kB]\nGet:31 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04.1 [1184 kB]\nGet:32 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04.1 [1641 kB]\nGet:33 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04.1 [153 kB]\nGet:34 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcc-13-dev amd64 13.3.0-6ubuntu2~24.04.1 [2681 kB]\nGet:35 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [21.1 MB]\nGet:36 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13 amd64 13.3.0-6ubuntu2~24.04.1 [494 kB]\nGet:37 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]\nGet:38 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]\nGet:39 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libstdc++-13-dev amd64 13.3.0-6ubuntu2~24.04.1 [2420 kB]\nGet:40 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [12.2 MB]\nGet:41 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13 amd64 13.3.0-6ubuntu2~24.04.1 [16.0 kB]\nGet:42 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]\nGet:43 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]\nGet:44 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]\nGet:45 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.5 [269 kB]\nGet:46 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]\nGet:47 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 patch amd64 2.7.6-7build3 [104 kB]\nGet:48 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]\nGet:49 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.5 [1074 kB]\nGet:50 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]\nGet:51 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libpkgconf3 amd64 1.8.1-2build1 [30.7 kB]\nGet:52 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssl-dev amd64 3.0.13-0ubuntu3.7 [2407 kB]\nGet:53 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkgconf-bin amd64 1.8.1-2build1 [20.7 kB]\nGet:54 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkgconf amd64 1.8.1-2build1 [16.8 kB]\nGet:55 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkg-config amd64 1.8.1-2build1 [7264 B]\nFetched 74.3 MB in 12s (6284 kB/s)\nSelecting previously unselected package libjansson4:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 31576 files and directories currently installed.)\r\nPreparing to unpack .../00-libjansson4_2.14-2build2_amd64.deb ...\r\nUnpacking libjansson4:amd64 (2.14-2build2) ...\r\nSelecting previously unselected package xz-utils.\r\nPreparing to unpack .../01-xz-utils_5.6.1+really5.4.5-1ubuntu0.2_amd64.deb ...\r\nUnpacking xz-utils (5.6.1+really5.4.5-1ubuntu0.2) ...\r\nSelecting previously unselected package binutils-common:amd64.\r\nPreparing to unpack .../02-binutils-common_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking binutils-common:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libsframe1:amd64.\r\nPreparing to unpack .../03-libsframe1_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking libsframe1:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libbinutils:amd64.\r\nPreparing to unpack .../04-libbinutils_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking libbinutils:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libctf-nobfd0:amd64.\r\nPreparing to unpack .../05-libctf-nobfd0_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking libctf-nobfd0:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libctf0:amd64.\r\nPreparing to unpack .../06-libctf0_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking libctf0:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libgprofng0:amd64.\r\nPreparing to unpack .../07-libgprofng0_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking libgprofng0:amd64 (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package binutils-x86-64-linux-gnu.\r\nPreparing to unpack .../08-binutils-x86-64-linux-gnu_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package binutils.\r\nPreparing to unpack .../09-binutils_2.42-4ubuntu2.10_amd64.deb ...\r\nUnpacking binutils (2.42-4ubuntu2.10) ...\r\nSelecting previously unselected package libc-dev-bin.\r\nPreparing to unpack .../10-libc-dev-bin_2.39-0ubuntu8.7_amd64.deb ...\r\nUnpacking libc-dev-bin (2.39-0ubuntu8.7) ...\r\nSelecting previously unselected package linux-libc-dev:amd64.\r\nPreparing to unpack .../11-linux-libc-dev_6.8.0-107.107_amd64.deb ...\r\nUnpacking linux-libc-dev:amd64 (6.8.0-107.107) ...\r\nSelecting previously unselected package libcrypt-dev:amd64.\r\nPreparing to unpack .../12-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...\r\nUnpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...\r\nSelecting previously unselected package rpcsvc-proto.\r\nPreparing to unpack .../13-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...\r\nUnpacking rpcsvc-proto (1.4.2-0ubuntu7) ...\r\nSelecting previously unselected package libc6-dev:amd64.\r\nPreparing to unpack .../14-libc6-dev_2.39-0ubuntu8.7_amd64.deb ...\r\nUnpacking libc6-dev:amd64 (2.39-0ubuntu8.7) ...\r\nSelecting previously unselected package gcc-13-base:amd64.\r\nPreparing to unpack .../15-gcc-13-base_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libisl23:amd64.\r\nPreparing to unpack .../16-libisl23_0.26-3build1.1_amd64.deb ...\r\nUnpacking libisl23:amd64 (0.26-3build1.1) ...\r\nSelecting previously unselected package libmpfr6:amd64.\r\nPreparing to unpack .../17-libmpfr6_4.2.1-1build1.1_amd64.deb ...\r\nUnpacking libmpfr6:amd64 (4.2.1-1build1.1) ...\r\nSelecting previously unselected package libmpc3:amd64.\r\nPreparing to unpack .../18-libmpc3_1.3.1-1build1.1_amd64.deb ...\r\nUnpacking libmpc3:amd64 (1.3.1-1build1.1) ...\r\nSelecting previously unselected package cpp-13-x86-64-linux-gnu.\r\nPreparing to unpack .../19-cpp-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package cpp-13.\r\nPreparing to unpack .../20-cpp-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking cpp-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package cpp-x86-64-linux-gnu.\r\nPreparing to unpack .../21-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package cpp.\r\nPreparing to unpack .../22-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking cpp (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package libcc1-0:amd64.\r\nPreparing to unpack .../23-libcc1-0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libgomp1:amd64.\r\nPreparing to unpack .../24-libgomp1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libitm1:amd64.\r\nPreparing to unpack .../25-libitm1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libatomic1:amd64.\r\nPreparing to unpack .../26-libatomic1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libasan8:amd64.\r\nPreparing to unpack .../27-libasan8_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package liblsan0:amd64.\r\nPreparing to unpack .../28-liblsan0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libtsan2:amd64.\r\nPreparing to unpack .../29-libtsan2_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libubsan1:amd64.\r\nPreparing to unpack .../30-libubsan1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libhwasan0:amd64.\r\nPreparing to unpack .../31-libhwasan0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libquadmath0:amd64.\r\nPreparing to unpack .../32-libquadmath0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSelecting previously unselected package libgcc-13-dev:amd64.\r\nPreparing to unpack .../33-libgcc-13-dev_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package gcc-13-x86-64-linux-gnu.\r\nPreparing to unpack .../34-gcc-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package gcc-13.\r\nPreparing to unpack .../35-gcc-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking gcc-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package gcc-x86-64-linux-gnu.\r\nPreparing to unpack .../36-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package gcc.\r\nPreparing to unpack .../37-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking gcc (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package libstdc++-13-dev:amd64.\r\nPreparing to unpack .../38-libstdc++-13-dev_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package g++-13-x86-64-linux-gnu.\r\nPreparing to unpack .../39-g++-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package g++-13.\r\nPreparing to unpack .../40-g++-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...\r\nUnpacking g++-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSelecting previously unselected package g++-x86-64-linux-gnu.\r\nPreparing to unpack .../41-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package g++.\r\nPreparing to unpack .../42-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...\r\nUnpacking g++ (4:13.2.0-7ubuntu1) ...\r\nSelecting previously unselected package make.\r\nPreparing to unpack .../43-make_4.3-4.1build2_amd64.deb ...\r\nUnpacking make (4.3-4.1build2) ...\r\nSelecting previously unselected package libdpkg-perl.\r\nPreparing to unpack .../44-libdpkg-perl_1.22.6ubuntu6.5_all.deb ...\r\nUnpacking libdpkg-perl (1.22.6ubuntu6.5) ...\r\nSelecting previously unselected package bzip2.\r\nPreparing to unpack .../45-bzip2_1.0.8-5.1build0.1_amd64.deb ...\r\nUnpacking bzip2 (1.0.8-5.1build0.1) ...\r\nSelecting previously unselected package patch.\r\nPreparing to unpack .../46-patch_2.7.6-7build3_amd64.deb ...\r\nUnpacking patch (2.7.6-7build3) ...\r\nSelecting previously unselected package lto-disabled-list.\r\nPreparing to unpack .../47-lto-disabled-list_47_all.deb ...\r\nUnpacking lto-disabled-list (47) ...\r\nSelecting previously unselected package dpkg-dev.\r\nPreparing to unpack .../48-dpkg-dev_1.22.6ubuntu6.5_all.deb ...\r\nUnpacking dpkg-dev (1.22.6ubuntu6.5) ...\r\nSelecting previously unselected package build-essential.\r\nPreparing to unpack .../49-build-essential_12.10ubuntu1_amd64.deb ...\r\nUnpacking build-essential (12.10ubuntu1) ...\r\nSelecting previously unselected package libpkgconf3:amd64.\r\nPreparing to unpack .../50-libpkgconf3_1.8.1-2build1_amd64.deb ...\r\nUnpacking libpkgconf3:amd64 (1.8.1-2build1) ...\r\nSelecting previously unselected package libssl-dev:amd64.\r\nPreparing to unpack .../51-libssl-dev_3.0.13-0ubuntu3.7_amd64.deb ...\r\nUnpacking libssl-dev:amd64 (3.0.13-0ubuntu3.7) ...\r\nSelecting previously unselected package pkgconf-bin.\r\nPreparing to unpack .../52-pkgconf-bin_1.8.1-2build1_amd64.deb ...\r\nUnpacking pkgconf-bin (1.8.1-2build1) ...\r\nSelecting previously unselected package pkgconf:amd64.\r\nPreparing to unpack .../53-pkgconf_1.8.1-2build1_amd64.deb ...\r\nUnpacking pkgconf:amd64 (1.8.1-2build1) ...\r\nSelecting previously unselected package pkg-config:amd64.\r\nPreparing to unpack .../54-pkg-config_1.8.1-2build1_amd64.deb ...\r\nUnpacking pkg-config:amd64 (1.8.1-2build1) ...\r\nSetting up lto-disabled-list (47) ...\r\nSetting up binutils-common:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up linux-libc-dev:amd64 (6.8.0-107.107) ...\r\nSetting up libctf-nobfd0:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up bzip2 (1.0.8-5.1build0.1) ...\r\nSetting up libsframe1:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up libjansson4:amd64 (2.14-2build2) ...\r\nSetting up libpkgconf3:amd64 (1.8.1-2build1) ...\r\nSetting up rpcsvc-proto (1.4.2-0ubuntu7) ...\r\nSetting up gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up make (4.3-4.1build2) ...\r\nSetting up libmpfr6:amd64 (4.2.1-1build1.1) ...\r\nSetting up xz-utils (5.6.1+really5.4.5-1ubuntu0.2) ...\r\nupdate-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode\r\nSetting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libssl-dev:amd64 (3.0.13-0ubuntu3.7) ...\r\nSetting up libmpc3:amd64 (1.3.1-1build1.1) ...\r\nSetting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up patch (2.7.6-7build3) ...\r\nSetting up pkgconf-bin (1.8.1-2build1) ...\r\nSetting up libdpkg-perl (1.22.6ubuntu6.5) ...\r\nSetting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...\r\nSetting up libasan8:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libbinutils:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up libisl23:amd64 (0.26-3build1.1) ...\r\nSetting up libc-dev-bin (2.39-0ubuntu8.7) ...\r\nSetting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libitm1:amd64 (14.2.0-4ubuntu2~24.04.1) ...\r\nSetting up libctf0:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up pkgconf:amd64 (1.8.1-2build1) ...\r\nSetting up libgprofng0:amd64 (2.42-4ubuntu2.10) ...\r\nSetting up pkg-config:amd64 (1.8.1-2build1) ...\r\nSetting up libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up libc6-dev:amd64 (2.39-0ubuntu8.7) ...\r\nSetting up libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up binutils-x86-64-linux-gnu (2.42-4ubuntu2.10) ...\r\nSetting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSetting up cpp-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up binutils (2.42-4ubuntu2.10) ...\r\nSetting up dpkg-dev (1.22.6ubuntu6.5) ...\r\nSetting up gcc-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up cpp (4:13.2.0-7ubuntu1) ...\r\nSetting up g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSetting up gcc (4:13.2.0-7ubuntu1) ...\r\nSetting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...\r\nSetting up g++-13 (13.3.0-6ubuntu2~24.04.1) ...\r\nSetting up g++ (4:13.2.0-7ubuntu1) ...\r\nupdate-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode\r\nSetting up build-essential (12.10ubuntu1) ...\r\nProcessing triggers for libc-bin (2.39-0ubuntu8.7) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  binutils binutils-common binutils-x86-64-linux-gnu bzip2 cpp cpp-13",
                                "  cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev g++ g++-13",
                                "  g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base",
                                "  gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1 libbinutils",
                                "  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0",
                                "  libdpkg-perl libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1",
                                "  libjansson4 liblsan0 libmpc3 libmpfr6 libpkgconf3 libquadmath0 libsframe1",
                                "  libstdc++-13-dev libtsan2 libubsan1 linux-libc-dev lto-disabled-list make",
                                "  patch pkgconf pkgconf-bin rpcsvc-proto xz-utils",
                                "Suggested packages:",
                                "  binutils-doc gprofng-gui bzip2-doc cpp-doc gcc-13-locales cpp-13-doc",
                                "  debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib",
                                "  manpages-dev autoconf automake libtool flex bison gdb gcc-doc",
                                "  gcc-13-multilib gdb-x86-64-linux-gnu glibc-doc bzr libssl-doc",
                                "  libstdc++-13-doc make-doc ed diffutils-doc",
                                "Recommended packages:",
                                "  fakeroot libalgorithm-merge-perl manpages manpages-dev libc-devtools",
                                "  libfile-fcntllock-perl liblocale-gettext-perl",
                                "The following NEW packages will be installed:",
                                "  binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 cpp",
                                "  cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev g++ g++-13",
                                "  g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base",
                                "  gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1 libbinutils",
                                "  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0",
                                "  libdpkg-perl libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1",
                                "  libjansson4 liblsan0 libmpc3 libmpfr6 libpkgconf3 libquadmath0 libsframe1",
                                "  libssl-dev libstdc++-13-dev libtsan2 libubsan1 linux-libc-dev",
                                "  lto-disabled-list make patch pkg-config pkgconf pkgconf-bin rpcsvc-proto",
                                "  xz-utils",
                                "0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 74.3 MB of archives.",
                                "After this operation, 265 MB of additional disk space will be used.",
                                "Get:1 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libjansson4 amd64 2.14-2build2 [32.8 kB]",
                                "Get:2 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 xz-utils amd64 5.6.1+really5.4.5-1ubuntu0.2 [267 kB]",
                                "Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd64 2.42-4ubuntu2.10 [240 kB]",
                                "Get:4 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd64 2.42-4ubuntu2.10 [15.7 kB]",
                                "Get:5 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd64 2.42-4ubuntu2.10 [577 kB]",
                                "Get:6 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2.10 [98.0 kB]",
                                "Get:7 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd64 2.42-4ubuntu2.10 [94.5 kB]",
                                "Get:8 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd64 2.42-4ubuntu2.10 [849 kB]",
                                "Get:9 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2.10 [2463 kB]",
                                "Get:10 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd64 2.42-4ubuntu2.10 [18.2 kB]",
                                "Get:11 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.7 [20.4 kB]",
                                "Get:12 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-107.107 [2096 kB]",
                                "Get:13 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]",
                                "Get:14 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]",
                                "Get:15 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.7 [2124 kB]",
                                "Get:16 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-base amd64 13.3.0-6ubuntu2~24.04.1 [51.6 kB]",
                                "Get:17 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libisl23 amd64 0.26-3build1.1 [680 kB]",
                                "Get:18 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpfr6 amd64 4.2.1-1build1.1 [353 kB]",
                                "Get:19 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpc3 amd64 1.3.1-1build1.1 [54.6 kB]",
                                "Get:20 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [10.7 MB]",
                                "Get:21 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13 amd64 13.3.0-6ubuntu2~24.04.1 [1042 B]",
                                "Get:22 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]",
                                "Get:23 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]",
                                "Get:24 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04.1 [48.0 kB]",
                                "Get:25 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04.1 [148 kB]",
                                "Get:26 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04.1 [29.7 kB]",
                                "Get:27 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04.1 [10.5 kB]",
                                "Get:28 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04.1 [3027 kB]",
                                "Get:29 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04.1 [1322 kB]",
                                "Get:30 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04.1 [2772 kB]",
                                "Get:31 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04.1 [1184 kB]",
                                "Get:32 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04.1 [1641 kB]",
                                "Get:33 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04.1 [153 kB]",
                                "Get:34 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcc-13-dev amd64 13.3.0-6ubuntu2~24.04.1 [2681 kB]",
                                "Get:35 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [21.1 MB]",
                                "Get:36 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13 amd64 13.3.0-6ubuntu2~24.04.1 [494 kB]",
                                "Get:37 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]",
                                "Get:38 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]",
                                "Get:39 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libstdc++-13-dev amd64 13.3.0-6ubuntu2~24.04.1 [2420 kB]",
                                "Get:40 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04.1 [12.2 MB]",
                                "Get:41 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13 amd64 13.3.0-6ubuntu2~24.04.1 [16.0 kB]",
                                "Get:42 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]",
                                "Get:43 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]",
                                "Get:44 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]",
                                "Get:45 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.5 [269 kB]",
                                "Get:46 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]",
                                "Get:47 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 patch amd64 2.7.6-7build3 [104 kB]",
                                "Get:48 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]",
                                "Get:49 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.5 [1074 kB]",
                                "Get:50 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]",
                                "Get:51 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 libpkgconf3 amd64 1.8.1-2build1 [30.7 kB]",
                                "Get:52 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssl-dev amd64 3.0.13-0ubuntu3.7 [2407 kB]",
                                "Get:53 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkgconf-bin amd64 1.8.1-2build1 [20.7 kB]",
                                "Get:54 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkgconf amd64 1.8.1-2build1 [16.8 kB]",
                                "Get:55 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 pkg-config amd64 1.8.1-2build1 [7264 B]",
                                "Fetched 74.3 MB in 12s (6284 kB/s)",
                                "Selecting previously unselected package libjansson4:amd64.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 31576 files and directories currently installed.)",
                                "Preparing to unpack .../00-libjansson4_2.14-2build2_amd64.deb ...",
                                "Unpacking libjansson4:amd64 (2.14-2build2) ...",
                                "Selecting previously unselected package xz-utils.",
                                "Preparing to unpack .../01-xz-utils_5.6.1+really5.4.5-1ubuntu0.2_amd64.deb ...",
                                "Unpacking xz-utils (5.6.1+really5.4.5-1ubuntu0.2) ...",
                                "Selecting previously unselected package binutils-common:amd64.",
                                "Preparing to unpack .../02-binutils-common_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking binutils-common:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libsframe1:amd64.",
                                "Preparing to unpack .../03-libsframe1_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking libsframe1:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libbinutils:amd64.",
                                "Preparing to unpack .../04-libbinutils_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking libbinutils:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libctf-nobfd0:amd64.",
                                "Preparing to unpack .../05-libctf-nobfd0_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libctf0:amd64.",
                                "Preparing to unpack .../06-libctf0_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking libctf0:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libgprofng0:amd64.",
                                "Preparing to unpack .../07-libgprofng0_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking libgprofng0:amd64 (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package binutils-x86-64-linux-gnu.",
                                "Preparing to unpack .../08-binutils-x86-64-linux-gnu_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package binutils.",
                                "Preparing to unpack .../09-binutils_2.42-4ubuntu2.10_amd64.deb ...",
                                "Unpacking binutils (2.42-4ubuntu2.10) ...",
                                "Selecting previously unselected package libc-dev-bin.",
                                "Preparing to unpack .../10-libc-dev-bin_2.39-0ubuntu8.7_amd64.deb ...",
                                "Unpacking libc-dev-bin (2.39-0ubuntu8.7) ...",
                                "Selecting previously unselected package linux-libc-dev:amd64.",
                                "Preparing to unpack .../11-linux-libc-dev_6.8.0-107.107_amd64.deb ...",
                                "Unpacking linux-libc-dev:amd64 (6.8.0-107.107) ...",
                                "Selecting previously unselected package libcrypt-dev:amd64.",
                                "Preparing to unpack .../12-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...",
                                "Unpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...",
                                "Selecting previously unselected package rpcsvc-proto.",
                                "Preparing to unpack .../13-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...",
                                "Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ...",
                                "Selecting previously unselected package libc6-dev:amd64.",
                                "Preparing to unpack .../14-libc6-dev_2.39-0ubuntu8.7_amd64.deb ...",
                                "Unpacking libc6-dev:amd64 (2.39-0ubuntu8.7) ...",
                                "Selecting previously unselected package gcc-13-base:amd64.",
                                "Preparing to unpack .../15-gcc-13-base_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libisl23:amd64.",
                                "Preparing to unpack .../16-libisl23_0.26-3build1.1_amd64.deb ...",
                                "Unpacking libisl23:amd64 (0.26-3build1.1) ...",
                                "Selecting previously unselected package libmpfr6:amd64.",
                                "Preparing to unpack .../17-libmpfr6_4.2.1-1build1.1_amd64.deb ...",
                                "Unpacking libmpfr6:amd64 (4.2.1-1build1.1) ...",
                                "Selecting previously unselected package libmpc3:amd64.",
                                "Preparing to unpack .../18-libmpc3_1.3.1-1build1.1_amd64.deb ...",
                                "Unpacking libmpc3:amd64 (1.3.1-1build1.1) ...",
                                "Selecting previously unselected package cpp-13-x86-64-linux-gnu.",
                                "Preparing to unpack .../19-cpp-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package cpp-13.",
                                "Preparing to unpack .../20-cpp-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking cpp-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package cpp-x86-64-linux-gnu.",
                                "Preparing to unpack .../21-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package cpp.",
                                "Preparing to unpack .../22-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking cpp (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package libcc1-0:amd64.",
                                "Preparing to unpack .../23-libcc1-0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libgomp1:amd64.",
                                "Preparing to unpack .../24-libgomp1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libitm1:amd64.",
                                "Preparing to unpack .../25-libitm1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libatomic1:amd64.",
                                "Preparing to unpack .../26-libatomic1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libasan8:amd64.",
                                "Preparing to unpack .../27-libasan8_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package liblsan0:amd64.",
                                "Preparing to unpack .../28-liblsan0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libtsan2:amd64.",
                                "Preparing to unpack .../29-libtsan2_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libubsan1:amd64.",
                                "Preparing to unpack .../30-libubsan1_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libhwasan0:amd64.",
                                "Preparing to unpack .../31-libhwasan0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libquadmath0:amd64.",
                                "Preparing to unpack .../32-libquadmath0_14.2.0-4ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package libgcc-13-dev:amd64.",
                                "Preparing to unpack .../33-libgcc-13-dev_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package gcc-13-x86-64-linux-gnu.",
                                "Preparing to unpack .../34-gcc-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package gcc-13.",
                                "Preparing to unpack .../35-gcc-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking gcc-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package gcc-x86-64-linux-gnu.",
                                "Preparing to unpack .../36-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package gcc.",
                                "Preparing to unpack .../37-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking gcc (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package libstdc++-13-dev:amd64.",
                                "Preparing to unpack .../38-libstdc++-13-dev_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package g++-13-x86-64-linux-gnu.",
                                "Preparing to unpack .../39-g++-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package g++-13.",
                                "Preparing to unpack .../40-g++-13_13.3.0-6ubuntu2~24.04.1_amd64.deb ...",
                                "Unpacking g++-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Selecting previously unselected package g++-x86-64-linux-gnu.",
                                "Preparing to unpack .../41-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package g++.",
                                "Preparing to unpack .../42-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...",
                                "Unpacking g++ (4:13.2.0-7ubuntu1) ...",
                                "Selecting previously unselected package make.",
                                "Preparing to unpack .../43-make_4.3-4.1build2_amd64.deb ...",
                                "Unpacking make (4.3-4.1build2) ...",
                                "Selecting previously unselected package libdpkg-perl.",
                                "Preparing to unpack .../44-libdpkg-perl_1.22.6ubuntu6.5_all.deb ...",
                                "Unpacking libdpkg-perl (1.22.6ubuntu6.5) ...",
                                "Selecting previously unselected package bzip2.",
                                "Preparing to unpack .../45-bzip2_1.0.8-5.1build0.1_amd64.deb ...",
                                "Unpacking bzip2 (1.0.8-5.1build0.1) ...",
                                "Selecting previously unselected package patch.",
                                "Preparing to unpack .../46-patch_2.7.6-7build3_amd64.deb ...",
                                "Unpacking patch (2.7.6-7build3) ...",
                                "Selecting previously unselected package lto-disabled-list.",
                                "Preparing to unpack .../47-lto-disabled-list_47_all.deb ...",
                                "Unpacking lto-disabled-list (47) ...",
                                "Selecting previously unselected package dpkg-dev.",
                                "Preparing to unpack .../48-dpkg-dev_1.22.6ubuntu6.5_all.deb ...",
                                "Unpacking dpkg-dev (1.22.6ubuntu6.5) ...",
                                "Selecting previously unselected package build-essential.",
                                "Preparing to unpack .../49-build-essential_12.10ubuntu1_amd64.deb ...",
                                "Unpacking build-essential (12.10ubuntu1) ...",
                                "Selecting previously unselected package libpkgconf3:amd64.",
                                "Preparing to unpack .../50-libpkgconf3_1.8.1-2build1_amd64.deb ...",
                                "Unpacking libpkgconf3:amd64 (1.8.1-2build1) ...",
                                "Selecting previously unselected package libssl-dev:amd64.",
                                "Preparing to unpack .../51-libssl-dev_3.0.13-0ubuntu3.7_amd64.deb ...",
                                "Unpacking libssl-dev:amd64 (3.0.13-0ubuntu3.7) ...",
                                "Selecting previously unselected package pkgconf-bin.",
                                "Preparing to unpack .../52-pkgconf-bin_1.8.1-2build1_amd64.deb ...",
                                "Unpacking pkgconf-bin (1.8.1-2build1) ...",
                                "Selecting previously unselected package pkgconf:amd64.",
                                "Preparing to unpack .../53-pkgconf_1.8.1-2build1_amd64.deb ...",
                                "Unpacking pkgconf:amd64 (1.8.1-2build1) ...",
                                "Selecting previously unselected package pkg-config:amd64.",
                                "Preparing to unpack .../54-pkg-config_1.8.1-2build1_amd64.deb ...",
                                "Unpacking pkg-config:amd64 (1.8.1-2build1) ...",
                                "Setting up lto-disabled-list (47) ...",
                                "Setting up binutils-common:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up linux-libc-dev:amd64 (6.8.0-107.107) ...",
                                "Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up bzip2 (1.0.8-5.1build0.1) ...",
                                "Setting up libsframe1:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up libjansson4:amd64 (2.14-2build2) ...",
                                "Setting up libpkgconf3:amd64 (1.8.1-2build1) ...",
                                "Setting up rpcsvc-proto (1.4.2-0ubuntu7) ...",
                                "Setting up gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up make (4.3-4.1build2) ...",
                                "Setting up libmpfr6:amd64 (4.2.1-1build1.1) ...",
                                "Setting up xz-utils (5.6.1+really5.4.5-1ubuntu0.2) ...",
                                "update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode",
                                "Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libssl-dev:amd64 (3.0.13-0ubuntu3.7) ...",
                                "Setting up libmpc3:amd64 (1.3.1-1build1.1) ...",
                                "Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up patch (2.7.6-7build3) ...",
                                "Setting up pkgconf-bin (1.8.1-2build1) ...",
                                "Setting up libdpkg-perl (1.22.6ubuntu6.5) ...",
                                "Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...",
                                "Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libbinutils:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up libisl23:amd64 (0.26-3build1.1) ...",
                                "Setting up libc-dev-bin (2.39-0ubuntu8.7) ...",
                                "Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04.1) ...",
                                "Setting up libctf0:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up pkgconf:amd64 (1.8.1-2build1) ...",
                                "Setting up libgprofng0:amd64 (2.42-4ubuntu2.10) ...",
                                "Setting up pkg-config:amd64 (1.8.1-2build1) ...",
                                "Setting up libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up libc6-dev:amd64 (2.39-0ubuntu8.7) ...",
                                "Setting up libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2.10) ...",
                                "Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Setting up cpp-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up binutils (2.42-4ubuntu2.10) ...",
                                "Setting up dpkg-dev (1.22.6ubuntu6.5) ...",
                                "Setting up gcc-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up cpp (4:13.2.0-7ubuntu1) ...",
                                "Setting up g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Setting up gcc (4:13.2.0-7ubuntu1) ...",
                                "Setting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...",
                                "Setting up g++-13 (13.3.0-6ubuntu2~24.04.1) ...",
                                "Setting up g++ (4:13.2.0-7ubuntu1) ...",
                                "update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode",
                                "Setting up build-essential (12.10ubuntu1) ...",
                                "Processing triggers for libc-bin (2.39-0ubuntu8.7) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:42:48.832543Z",
                            "start": "2026-04-02T12:42:25.323911Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000010",
                        "name": "Install build dependencies"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.command",
                            "changed": true,
                            "cmd": [
                                "uv",
                                "run",
                                "python3",
                                "--version"
                            ],
                            "delta": "0:01:59.145183",
                            "end": "2026-04-02 12:44:48.350967",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "uv run python3 --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-a854-e526-000000000011-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:42:49.205784",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Using CPython 3.12.3 interpreter at: /usr/bin/python3\nCreating virtual environment at: .venv\n   Building magnum-cluster-api @ file:///home/zuul/src/github.com/vexxhost/magnum-cluster-api\nDownloading networkx (1.6MiB)\nDownloading netaddr (2.2MiB)\nDownloading openstacksdk (1.7MiB)\nDownloading python-openstackclient (1.1MiB)\nDownloading sqlalchemy (3.1MiB)\nDownloading babel (9.7MiB)\nDownloading cryptography (4.0MiB)\nDownloading kubernetes (1.9MiB)\nDownloading setuptools (1.2MiB)\n   Building simplegeneric==0.8.1\n   Building pyperclip==1.9.0\n   Building logutils==0.3.5\n   Building haproxyadmin==0.2.4\n Downloaded netaddr\n Downloaded python-openstackclient\n Downloaded setuptools\n Downloaded sqlalchemy\n Downloaded cryptography\n Downloaded networkx\n Downloaded kubernetes\n Downloaded openstacksdk\n Downloaded babel\n      Built pyperclip==1.9.0\n      Built simplegeneric==0.8.1\n      Built logutils==0.3.5\n      Built haproxyadmin==0.2.4\n      Built magnum-cluster-api @ file:///home/zuul/src/github.com/vexxhost/magnum-cluster-api\nInstalled 155 packages in 115ms\nPython 3.12.3",
                            "stdout_lines": [
                                "Using CPython 3.12.3 interpreter at: /usr/bin/python3",
                                "Creating virtual environment at: .venv",
                                "   Building magnum-cluster-api @ file:///home/zuul/src/github.com/vexxhost/magnum-cluster-api",
                                "Downloading networkx (1.6MiB)",
                                "Downloading netaddr (2.2MiB)",
                                "Downloading openstacksdk (1.7MiB)",
                                "Downloading python-openstackclient (1.1MiB)",
                                "Downloading sqlalchemy (3.1MiB)",
                                "Downloading babel (9.7MiB)",
                                "Downloading cryptography (4.0MiB)",
                                "Downloading kubernetes (1.9MiB)",
                                "Downloading setuptools (1.2MiB)",
                                "   Building simplegeneric==0.8.1",
                                "   Building pyperclip==1.9.0",
                                "   Building logutils==0.3.5",
                                "   Building haproxyadmin==0.2.4",
                                " Downloaded netaddr",
                                " Downloaded python-openstackclient",
                                " Downloaded setuptools",
                                " Downloaded sqlalchemy",
                                " Downloaded cryptography",
                                " Downloaded networkx",
                                " Downloaded kubernetes",
                                " Downloaded openstacksdk",
                                " Downloaded babel",
                                "      Built pyperclip==1.9.0",
                                "      Built simplegeneric==0.8.1",
                                "      Built logutils==0.3.5",
                                "      Built haproxyadmin==0.2.4",
                                "      Built magnum-cluster-api @ file:///home/zuul/src/github.com/vexxhost/magnum-cluster-api",
                                "Installed 155 packages in 115ms",
                                "Python 3.12.3"
                            ],
                            "zuul_log_id": "0242ac17-0011-a854-e526-000000000011-1-ubuntunoble"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:48.621329Z",
                            "start": "2026-04-02T12:42:48.995963Z"
                        },
                        "id": "0242ac17-0011-a854-e526-000000000011",
                        "name": "Run no-op command to build module"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 13,
            "failures": 0,
            "ignored": 0,
            "ok": 18,
            "rescued": 0,
            "skipped": 7,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "4",
    "phase": "pre",
    "playbook": "github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/unit/pre.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:44:50.932605Z",
                    "start": "2026-04-02T12:44:49.378807Z"
                },
                "id": "0242ac17-0011-161d-4d0d-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "src/github.com/vexxhost/magnum-cluster-api/hack/setup-helm.sh",
                            "delta": "0:00:00.807960",
                            "end": "2026-04-02 12:44:50.624165",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "src/github.com/vexxhost/magnum-cluster-api/hack/setup-helm.sh",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-161d-4d0d-000000000004-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:44:49.816205",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ HELM_VERSION=v3.10.3\n+ curl -Lo /tmp/helm.tar.gz https://get.helm.sh/helm-v3.10.3-linux-amd64.tar.gz\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n\r  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r 31 13.8M   31 4480k    0     0  13.7M      0  0:00:01 --:--:--  0:00:01 13.7M\r100 13.8M  100 13.8M    0     0  31.7M      0 --:--:-- --:--:-- --:--:-- 31.6M\n+ tar -zxvf /tmp/helm.tar.gz -C /tmp\nlinux-amd64/\nlinux-amd64/helm\nlinux-amd64/LICENSE\nlinux-amd64/README.md\n+ sudo mv /tmp/linux-amd64/helm /usr/local/bin/helm\n+ rm -rf /tmp/helm.tar.gz /tmp/linux-amd64/",
                            "stdout_lines": [
                                "+ HELM_VERSION=v3.10.3",
                                "+ curl -Lo /tmp/helm.tar.gz https://get.helm.sh/helm-v3.10.3-linux-amd64.tar.gz",
                                "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current",
                                "                                 Dload  Upload   Total   Spent    Left  Speed",
                                "",
                                "  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0",
                                " 31 13.8M   31 4480k    0     0  13.7M      0  0:00:01 --:--:--  0:00:01 13.7M",
                                "100 13.8M  100 13.8M    0     0  31.7M      0 --:--:-- --:--:-- --:--:-- 31.6M",
                                "+ tar -zxvf /tmp/helm.tar.gz -C /tmp",
                                "linux-amd64/",
                                "linux-amd64/helm",
                                "linux-amd64/LICENSE",
                                "linux-amd64/README.md",
                                "+ sudo mv /tmp/linux-amd64/helm /usr/local/bin/helm",
                                "+ rm -rf /tmp/helm.tar.gz /tmp/linux-amd64/"
                            ],
                            "zuul_log_id": "0242ac17-0011-161d-4d0d-000000000004-1-ubuntunoble"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:50.932605Z",
                            "start": "2026-04-02T12:44:49.410847Z"
                        },
                        "id": "0242ac17-0011-161d-4d0d-000000000004",
                        "name": ""
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "0",
    "phase": "run",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:50:07.078612Z",
                    "start": "2026-04-02T12:44:51.796543Z"
                },
                "id": "0242ac17-0011-01ad-a8c7-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "sudo",
                                "-n",
                                "true"
                            ],
                            "delta": "0:00:00.018803",
                            "end": "2026-04-02 12:44:52.258699",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "sudo -n true",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000008-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:44:52.239896",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000008-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:52.348366Z",
                            "start": "2026-04-02T12:44:51.830530Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000008",
                        "name": "Check if zuul is sudoer"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "rm",
                                "-rf",
                                "/etc/sudoers.d/zuul",
                                "/etc/sudoers.d/90-cloud-init-users"
                            ],
                            "delta": "0:00:00.007333",
                            "end": "2026-04-02 12:44:52.613301",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "rm -rf /etc/sudoers.d/zuul /etc/sudoers.d/90-cloud-init-users",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000009-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:44:52.605968",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000009-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:53.300711Z",
                            "start": "2026-04-02T12:44:52.377781Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000009",
                        "name": "Remove sudo access for zuul user."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "! sudo -n true",
                            "delta": "0:00:00.016339",
                            "end": "2026-04-02 12:44:53.576763",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "! sudo -n true",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-00000000000a-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:44:53.560424",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "sudo: a password is required",
                            "stdout_lines": [
                                "sudo: a password is required"
                            ],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-00000000000a-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:53.867109Z",
                            "start": "2026-04-02T12:44:53.343289Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-00000000000a",
                        "name": "Prove that general sudo access is actually revoked."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:53.911234Z",
                            "start": "2026-04-02T12:44:53.885967Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-00000000000e",
                        "name": "Check to see if the constraints file exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "fail",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined and not stat_results.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:53.955687Z",
                            "start": "2026-04-02T12:44:53.920709Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-00000000000f",
                        "name": "Fail if constraints file is missing"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:54.003014Z",
                            "start": "2026-04-02T12:44:53.967418Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000010",
                        "name": "Record file location"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "siblings.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:44:54.046741Z",
                            "start": "2026-04-02T12:44:54.012567Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000011",
                        "name": "Install tox siblings"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--notest",
                                "-eunit",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:02:47.871258",
                            "end": "2026-04-02 12:47:43.586766",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox  --notest  -eunit  -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000053-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:44:55.715508",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: 187 D setup logging to DEBUG on pid 6441 [tox/report.py:229]\nunit: 218 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\nunit: 220 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]\nunit: 221 D filesystem is case-sensitive [python_discovery/_compat.py:18]\nunit: 225 D get interpreter info via cmd: /usr/bin/python3.12 /home/zuul/.local/tox/lib/python3.12/site-packages/python_discovery/_py_info.py c5d5ea07e88c3da3f8922673c2861e26 118484a56391bba3403c4223545e2ebc [python_discovery/_cached_py_info.py:198]\nunit: 285 D wrote python info of /usr/bin/python3.12 at /home/zuul/.cache/virtualenv/py_info/4/f0d7a494a3f776233427cb85a7e198c7cf4913b50a203c6febc678cc4f5bf265.json [virtualenv/app_data/via_disk_folder.py:159]\nunit: 286 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]\nunit: 286 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]\nunit: 288 D symlink on filesystem does work [virtualenv/info.py:51]\nunit: 288 D filesystem is case-sensitive [virtualenv/info.py:28]\nunit: 313 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]\nunit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin [virtualenv/util/path/_sync.py:18]\nunit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/include [virtualenv/util/path/_sync.py:18]\nunit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages [virtualenv/util/path/_sync.py:18]\nunit: 314 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]\nunit: 314 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit [virtualenv/create/pyenv_cfg.py:51]\nunit: 314 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]\nunit: 315 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]\nunit: 315 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\nunit: 315 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\nunit: 315 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\nunit: 315 D symlink /usr/bin/python3.12 to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python [virtualenv/util/path/_sync.py:38]\nunit: 315 D create virtualenv import hook file /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:118]\nunit: 315 D create /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:121]\nunit: 316 D ============================== target debug ============================== [virtualenv/run/session.py:79]\nunit: 316 D debug via /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:263]\nunit: 316 D {\n  \"sys\": {\n    \"executable\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python\",\n    \"_base_executable\": \"/usr/bin/python3.12\",\n    \"prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit\",\n    \"base_prefix\": \"/usr\",\n    \"real_prefix\": null,\n    \"exec_prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit\",\n    \"base_exec_prefix\": \"/usr\",\n    \"path\": [\n      \"/usr/lib/python312.zip\",\n      \"/usr/lib/python3.12\",\n      \"/usr/lib/python3.12/lib-dynload\",\n      \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages\"\n    ],\n    \"meta_path\": [\n      \"<class '_virtualenv._Finder'>\",\n      \"<class '_frozen_importlib.BuiltinImporter'>\",\n      \"<class '_frozen_importlib.FrozenImporter'>\",\n      \"<class '_frozen_importlib_external.PathFinder'>\"\n    ],\n    \"fs_encoding\": \"utf-8\",\n    \"io_encoding\": \"utf-8\"\n  },\n  \"version\": \"3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]\",\n  \"makefile_filename\": \"/usr/lib/python3.12/config-3.12-x86_64-linux-gnu/Makefile\",\n  \"os\": \"<module 'os' (frozen)>\",\n  \"site\": \"<module 'site' (frozen)>\",\n  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.12/datetime.py'>\",\n  \"math\": \"<module 'math' (built-in)>\",\n  \"json\": \"<module 'json' from '/usr/lib/python3.12/json/__init__.py'>\"\n} [virtualenv/run/session.py:80]\nunit: 356 I add seed packages via FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]\nunit: 358 D install pip from wheel /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/seed/wheels/embed/pip-26.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]\nunit: 359 D build install image for pip-26.0.1-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:53]\nunit: 455 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip [virtualenv/util/path/_sync.py:46]\nunit: 507 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.dist-info to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip-26.0.1.dist-info [virtualenv/util/path/_sync.py:46]\nunit: 512 D copy /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.virtualenv to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip-26.0.1.virtualenv [virtualenv/util/path/_sync.py:46]\nunit: 513 D generated console scripts pip pip3 pip-3.12 pip3.12 [virtualenv/seed/embed/via_app_data/pip_install/base.py:49]\nunit: 513 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:90]\nunit: 520 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]\nunit: 521 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\nunit: 521 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\nunit: 524 W install_deps> python -I -m pip install fixtures lark oslotest pytest pytest-mock responses stestr [tox/tox_env/api.py:515]\nCollecting fixtures\n  Downloading fixtures-4.3.2-py3-none-any.whl.metadata (22 kB)\nCollecting lark\n  Downloading lark-1.3.1-py3-none-any.whl.metadata (1.8 kB)\nCollecting oslotest\n  Downloading oslotest-6.1.0-py3-none-any.whl.metadata (1.8 kB)\nCollecting pytest\n  Downloading pytest-9.0.2-py3-none-any.whl.metadata (7.6 kB)\nCollecting pytest-mock\n  Downloading pytest_mock-3.15.1-py3-none-any.whl.metadata (3.9 kB)\nCollecting responses\n  Downloading responses-0.26.0-py3-none-any.whl.metadata (48 kB)\nCollecting stestr\n  Downloading stestr-4.2.1-py3-none-any.whl.metadata (7.7 kB)\nCollecting testtools>=2.2.0 (from oslotest)\n  Downloading testtools-2.8.7-py3-none-any.whl.metadata (5.4 kB)\nCollecting iniconfig>=1.0.1 (from pytest)\n  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting packaging>=22 (from pytest)\n  Using cached packaging-26.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting pluggy<2,>=1.5 (from pytest)\n  Using cached pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\nCollecting pygments>=2.7.2 (from pytest)\n  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting requests<3.0,>=2.30.0 (from responses)\n  Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB)\nCollecting urllib3<3.0,>=1.25.10 (from responses)\n  Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB)\nCollecting pyyaml (from responses)\n  Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)\nCollecting charset_normalizer<4,>=2 (from requests<3.0,>=2.30.0->responses)\n  Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)\nCollecting idna<4,>=2.5 (from requests<3.0,>=2.30.0->responses)\n  Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)\nCollecting certifi>=2023.5.7 (from requests<3.0,>=2.30.0->responses)\n  Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB)\nCollecting cliff>=2.8.0 (from stestr)\n  Downloading cliff-4.13.2-py3-none-any.whl.metadata (2.1 kB)\nCollecting python-subunit>=1.4.0 (from stestr)\n  Downloading python_subunit-1.4.5-py3-none-any.whl.metadata (22 kB)\nCollecting voluptuous>=0.8.9 (from stestr)\n  Downloading voluptuous-0.16.0-py3-none-any.whl.metadata (20 kB)\nCollecting tomlkit>=0.11.6 (from stestr)\n  Downloading tomlkit-0.14.0-py3-none-any.whl.metadata (2.8 kB)\nCollecting autopage>=0.4.0 (from cliff>=2.8.0->stestr)\n  Downloading autopage-0.6.0-py3-none-any.whl.metadata (8.1 kB)\nCollecting cmd2>=1.0.0 (from cliff>=2.8.0->stestr)\n  Downloading cmd2-3.4.0-py3-none-any.whl.metadata (16 kB)\nCollecting PrettyTable>=0.7.2 (from cliff>=2.8.0->stestr)\n  Downloading prettytable-3.17.0-py3-none-any.whl.metadata (34 kB)\nCollecting stevedore>=5.6.0 (from cliff>=2.8.0->stestr)\n  Downloading stevedore-5.7.0-py3-none-any.whl.metadata (2.4 kB)\nCollecting pyperclip>=1.8.2 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)\n  Downloading pyperclip-1.11.0-py3-none-any.whl.metadata (2.4 kB)\nCollecting rich>=14.3.0 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)\n  Downloading rich-14.3.3-py3-none-any.whl.metadata (18 kB)\nCollecting rich-argparse>=1.7.1 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)\n  Downloading rich_argparse-1.7.2-py3-none-any.whl.metadata (14 kB)\nCollecting wcwidth (from PrettyTable>=0.7.2->cliff>=2.8.0->stestr)\n  Downloading wcwidth-0.6.0-py3-none-any.whl.metadata (30 kB)\nCollecting iso8601 (from python-subunit>=1.4.0->stestr)\n  Downloading iso8601-2.1.0-py3-none-any.whl.metadata (3.7 kB)\nCollecting markdown-it-py>=2.2.0 (from rich>=14.3.0->cmd2>=1.0.0->cliff>=2.8.0->stestr)\n  Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)\nCollecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=14.3.0->cmd2>=1.0.0->cliff>=2.8.0->stestr)\n  Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\nDownloading fixtures-4.3.2-py3-none-any.whl (41 kB)\nDownloading lark-1.3.1-py3-none-any.whl (113 kB)\nDownloading oslotest-6.1.0-py3-none-any.whl (30 kB)\nDownloading pytest-9.0.2-py3-none-any.whl (374 kB)\nUsing cached pluggy-1.6.0-py3-none-any.whl (20 kB)\nDownloading pytest_mock-3.15.1-py3-none-any.whl (10 kB)\nDownloading responses-0.26.0-py3-none-any.whl (35 kB)\nDownloading requests-2.33.1-py3-none-any.whl (64 kB)\nDownloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)\nDownloading idna-3.11-py3-none-any.whl (71 kB)\nDownloading urllib3-2.6.3-py3-none-any.whl (131 kB)\nDownloading stestr-4.2.1-py3-none-any.whl (118 kB)\nDownloading certifi-2026.2.25-py3-none-any.whl (153 kB)\nDownloading cliff-4.13.2-py3-none-any.whl (86 kB)\nDownloading autopage-0.6.0-py3-none-any.whl (30 kB)\nDownloading cmd2-3.4.0-py3-none-any.whl (148 kB)\nDownloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)\nUsing cached packaging-26.0-py3-none-any.whl (74 kB)\nDownloading prettytable-3.17.0-py3-none-any.whl (34 kB)\nDownloading pygments-2.20.0-py3-none-any.whl (1.2 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.2/1.2 MB 55.4 MB/s  0:00:00\nDownloading pyperclip-1.11.0-py3-none-any.whl (11 kB)\nDownloading python_subunit-1.4.5-py3-none-any.whl (102 kB)\nDownloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 807.9/807.9 kB 40.0 MB/s  0:00:00\nDownloading rich-14.3.3-py3-none-any.whl (310 kB)\nDownloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)\nDownloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\nDownloading rich_argparse-1.7.2-py3-none-any.whl (25 kB)\nDownloading stevedore-5.7.0-py3-none-any.whl (54 kB)\nDownloading testtools-2.8.7-py3-none-any.whl (109 kB)\nDownloading tomlkit-0.14.0-py3-none-any.whl (39 kB)\nDownloading voluptuous-0.16.0-py3-none-any.whl (31 kB)\nDownloading iso8601-2.1.0-py3-none-any.whl (7.5 kB)\nDownloading wcwidth-0.6.0-py3-none-any.whl (94 kB)\nInstalling collected packages: pyperclip, wcwidth, voluptuous, urllib3, tomlkit, testtools, stevedore, pyyaml, pygments, pluggy, packaging, mdurl, lark, iso8601, iniconfig, idna, fixtures, charset_normalizer, certifi, autopage, requests, python-subunit, pytest, PrettyTable, oslotest, markdown-it-py, rich, responses, pytest-mock, rich-argparse, cmd2, cliff, stestr\n\nSuccessfully installed PrettyTable-3.17.0 autopage-0.6.0 certifi-2026.2.25 charset_normalizer-3.4.7 cliff-4.13.2 cmd2-3.4.0 fixtures-4.3.2 idna-3.11 iniconfig-2.3.0 iso8601-2.1.0 lark-1.3.1 markdown-it-py-4.0.0 mdurl-0.1.2 oslotest-6.1.0 packaging-26.0 pluggy-1.6.0 pygments-2.20.0 pyperclip-1.11.0 pytest-9.0.2 pytest-mock-3.15.1 python-subunit-1.4.5 pyyaml-6.0.3 requests-2.33.1 responses-0.26.0 rich-14.3.3 rich-argparse-1.7.2 stestr-4.2.1 stevedore-5.7.0 testtools-2.8.7 tomlkit-0.14.0 urllib3-2.6.3 voluptuous-0.16.0 wcwidth-0.6.0\nunit: 6658 I exit 0 (6.13 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install fixtures lark oslotest pytest pytest-mock responses stestr pid=6452 [tox/execute/api.py:311]\n.pkg: 6666 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\n.pkg: 6667 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]\n.pkg: 6667 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]\n.pkg: 6667 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]\n.pkg: 6668 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]\n.pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin [virtualenv/util/path/_sync.py:18]\n.pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/include [virtualenv/util/path/_sync.py:18]\n.pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages [virtualenv/util/path/_sync.py:18]\n.pkg: 6669 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]\n.pkg: 6669 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6669 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6670 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6670 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6670 D symlink /usr/bin/python3.12 to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python [virtualenv/util/path/_sync.py:38]\n.pkg: 6670 D create virtualenv import hook file /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:118]\n.pkg: 6670 D create /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:121]\n.pkg: 6670 D ============================== target debug ============================== [virtualenv/run/session.py:79]\n.pkg: 6671 D debug via /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:263]\n.pkg: 6670 D {\n  \"sys\": {\n    \"executable\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python\",\n    \"_base_executable\": \"/usr/bin/python3.12\",\n    \"prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg\",\n    \"base_prefix\": \"/usr\",\n    \"real_prefix\": null,\n    \"exec_prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg\",\n    \"base_exec_prefix\": \"/usr\",\n    \"path\": [\n      \"/usr/lib/python312.zip\",\n      \"/usr/lib/python3.12\",\n      \"/usr/lib/python3.12/lib-dynload\",\n      \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages\"\n    ],\n    \"meta_path\": [\n      \"<class '_virtualenv._Finder'>\",\n      \"<class '_frozen_importlib.BuiltinImporter'>\",\n      \"<class '_frozen_importlib.FrozenImporter'>\",\n      \"<class '_frozen_importlib_external.PathFinder'>\"\n    ],\n    \"fs_encoding\": \"utf-8\",\n    \"io_encoding\": \"utf-8\"\n  },\n  \"version\": \"3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]\",\n  \"makefile_filename\": \"/usr/lib/python3.12/config-3.12-x86_64-linux-gnu/Makefile\",\n  \"os\": \"<module 'os' (frozen)>\",\n  \"site\": \"<module 'site' (frozen)>\",\n  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.12/datetime.py'>\",\n  \"math\": \"<module 'math' (built-in)>\",\n  \"json\": \"<module 'json' from '/usr/lib/python3.12/json/__init__.py'>\"\n} [virtualenv/run/session.py:80]\n.pkg: 6710 I add seed packages via FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]\n.pkg: 6712 D install pip from wheel /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/seed/wheels/embed/pip-26.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]\n.pkg: 6715 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip [virtualenv/util/path/_sync.py:46]\n.pkg: 6773 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.dist-info to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip-26.0.1.dist-info [virtualenv/util/path/_sync.py:46]\n.pkg: 6778 D copy /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.virtualenv to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip-26.0.1.virtualenv [virtualenv/util/path/_sync.py:46]\n.pkg: 6779 D generated console scripts pip-3.12 pip3.12 pip3 pip [virtualenv/seed/embed/via_app_data/pip_install/base.py:49]\n.pkg: 6779 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:90]\n.pkg: 6783 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]\n.pkg: 6784 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6784 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6785 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6785 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]\n.pkg: 6787 W install_requires> python -I -m pip install 'maturin<2.0,>=1.0' [tox/tox_env/api.py:515]\nCollecting maturin<2.0,>=1.0\n  Downloading maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.metadata (16 kB)\nDownloading maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (10.2 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 10.2/10.2 MB 24.8 MB/s  0:00:00\nInstalling collected packages: maturin\nSuccessfully installed maturin-1.12.6\n.pkg: 8735 I exit 0 (1.95 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install 'maturin<2.0,>=1.0' pid=6595 [tox/execute/api.py:311]\n.pkg: 8738 W _optional_hooks> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command _optional_hooks with args {}\nBackend: Wrote response {'return': {'get_requires_for_build_sdist': True, 'prepare_metadata_for_build_wheel': True, 'get_requires_for_build_wheel': True, 'build_editable': True, 'get_requires_for_build_editable': True, 'prepare_metadata_for_build_editable': True}} to /tmp/pep517__optional_hooks-fmihjrhk.json\n.pkg: 8794 I exit None (0.05 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]\n.pkg: 8795 W get_requires_for_build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command get_requires_for_build_sdist with args {'config_settings': None}\nBackend: Wrote response {'return': []} to /tmp/pep517_get_requires_for_build_sdist-albepq3a.json\n.pkg: 8800 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]\n.pkg: 8802 W build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command build_sdist with args {'sdist_directory': '/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist', 'config_settings': None}\nRunning `maturin pep517 write-sdist --sdist-directory /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist`\n\ud83d\udce6 Including license file `LICENSE`\n\ud83c\udf79 Building a mixed python/rust project\n\ud83d\udd17 Found pyo3 bindings with abi3 support\n\ud83d\udce1 Using build options features from pyproject.toml\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/helm/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/serde_gtmpl/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/cluster_feature_derive/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\n\ud83d\udce6 Built source distribution to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist/magnum_cluster_api-0.36.1.tar.gz\nmagnum_cluster_api-0.36.1.tar.gz\nBackend: Wrote response {'return': 'magnum_cluster_api-0.36.1.tar.gz'} to /tmp/pep517_build_sdist-sibr53oh.json\n.pkg: 9808 I exit None (1.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]\n.pkg: 9815 D package .tmp/package/1/magnum_cluster_api-0.36.1.tar.gz copied to .pkg/dist/magnum_cluster_api-0.36.1.tar.gz (/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox) [tox/util/file_view.py:30]\nunit: 9816 W install_package_deps> python -I -m pip install certifi 'click>=8.0.4' 'diskcache>=5.6.1' 'eventlet>=0.33.1' 'haproxyadmin>=0.2.4' 'kubernetes>=24.2.0' 'magnum>=15.0.0' 'oslo.concurrency>=4.5.0' 'oslo.config>=8.8.0' 'oslo.context>=4.1.0' 'oslo.log>=4.7.0' 'oslo.privsep>=2.7.0' 'oslo.service>=2.8.0' 'platformdirs>=2.4.0' pykube-ng 'pyroute2>=0.3.4' python-heatclient 'python-manilaclient>=3.3.2' 'requests>=2.27.1' 'semver>=2.0.0' 'sherlock>=0.4.1' shortuuid [tox/tox_env/api.py:515]\nRequirement already satisfied: certifi in ./.tox/unit/lib/python3.12/site-packages (2026.2.25)\nCollecting click>=8.0.4\n  Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB)\nCollecting diskcache>=5.6.1\n  Downloading diskcache-5.6.3-py3-none-any.whl.metadata (20 kB)\nCollecting eventlet>=0.33.1\n  Downloading eventlet-0.41.0-py3-none-any.whl.metadata (5.4 kB)\nCollecting haproxyadmin>=0.2.4\n  Downloading haproxyadmin-0.2.4.tar.gz (59 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting kubernetes>=24.2.0\n  Downloading kubernetes-35.0.0-py2.py3-none-any.whl.metadata (1.7 kB)\nCollecting magnum>=15.0.0\n  Downloading magnum-22.0.0-py3-none-any.whl.metadata (4.7 kB)\nCollecting oslo.concurrency>=4.5.0\n  Downloading oslo_concurrency-7.4.0-py3-none-any.whl.metadata (2.2 kB)\nCollecting oslo.config>=8.8.0\n  Downloading oslo_config-10.3.0-py3-none-any.whl.metadata (2.3 kB)\nCollecting oslo.context>=4.1.0\n  Downloading oslo_context-6.3.0-py3-none-any.whl.metadata (2.3 kB)\nCollecting oslo.log>=4.7.0\n  Downloading oslo_log-8.1.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting oslo.privsep>=2.7.0\n  Downloading oslo_privsep-3.10.1-py3-none-any.whl.metadata (2.7 kB)\nCollecting oslo.service>=2.8.0\n  Downloading oslo_service-4.5.1-py3-none-any.whl.metadata (2.8 kB)\nCollecting platformdirs>=2.4.0\n  Using cached platformdirs-4.9.4-py3-none-any.whl.metadata (4.7 kB)\nCollecting pykube-ng\n  Downloading pykube_ng-23.6.0-py3-none-any.whl.metadata (8.0 kB)\nCollecting pyroute2>=0.3.4\n  Downloading pyroute2-0.9.5-py3-none-any.whl.metadata (8.8 kB)\nCollecting python-heatclient\n  Downloading python_heatclient-5.1.0-py3-none-any.whl.metadata (3.1 kB)\nCollecting python-manilaclient>=3.3.2\n  Downloading python_manilaclient-6.0.0-py3-none-any.whl.metadata (5.5 kB)\nRequirement already satisfied: requests>=2.27.1 in ./.tox/unit/lib/python3.12/site-packages (2.33.1)\nCollecting semver>=2.0.0\n  Downloading semver-3.0.4-py3-none-any.whl.metadata (6.8 kB)\nCollecting sherlock>=0.4.1\n  Downloading sherlock-0.4.1-py3-none-any.whl.metadata (8.9 kB)\nCollecting shortuuid\n  Downloading shortuuid-1.0.13-py3-none-any.whl.metadata (5.8 kB)\nCollecting dnspython>=1.15.0 (from eventlet>=0.33.1)\n  Downloading dnspython-2.8.0-py3-none-any.whl.metadata (5.7 kB)\nCollecting greenlet>=1.0 (from eventlet>=0.33.1)\n  Downloading greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.7 kB)\nCollecting six (from haproxyadmin>=0.2.4)\n  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)\nCollecting python-dateutil>=2.5.3 (from kubernetes>=24.2.0)\n  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)\nRequirement already satisfied: pyyaml>=5.4.1 in ./.tox/unit/lib/python3.12/site-packages (from kubernetes>=24.2.0) (6.0.3)\nCollecting websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 (from kubernetes>=24.2.0)\n  Downloading websocket_client-1.9.0-py3-none-any.whl.metadata (8.3 kB)\nCollecting requests-oauthlib (from kubernetes>=24.2.0)\n  Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl.metadata (11 kB)\nRequirement already satisfied: urllib3!=2.6.0,>=1.24.2 in ./.tox/unit/lib/python3.12/site-packages (from kubernetes>=24.2.0) (2.6.3)\nCollecting durationpy>=0.7 (from kubernetes>=24.2.0)\n  Downloading durationpy-0.10-py3-none-any.whl.metadata (340 bytes)\nCollecting SQLAlchemy>=1.2.0 (from magnum>=15.0.0)\n  Downloading sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB)\nCollecting WSME>=0.8.0 (from magnum>=15.0.0)\n  Downloading WSME-0.12.1-py3-none-any.whl.metadata (3.7 kB)\nCollecting WebOb>=1.8.1 (from magnum>=15.0.0)\n  Downloading WebOb-1.8.9-py2.py3-none-any.whl.metadata (11 kB)\nCollecting alembic>=0.9.6 (from magnum>=15.0.0)\n  Downloading alembic-1.18.4-py3-none-any.whl.metadata (7.2 kB)\nRequirement already satisfied: cliff>=4.0.0 in ./.tox/unit/lib/python3.12/site-packages (from magnum>=15.0.0) (4.13.2)\nCollecting decorator>=3.4.0 (from magnum>=15.0.0)\n  Downloading decorator-5.2.1-py3-none-any.whl.metadata (3.9 kB)\nCollecting jsonpatch!=1.20,>=1.16 (from magnum>=15.0.0)\n  Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)\nCollecting keystoneauth1>=3.14.0 (from magnum>=15.0.0)\n  Downloading keystoneauth1-5.13.1-py3-none-any.whl.metadata (2.9 kB)\nCollecting keystonemiddleware>=9.0.0 (from magnum>=15.0.0)\n  Downloading keystonemiddleware-12.0.0-py3-none-any.whl.metadata (4.1 kB)\nCollecting netaddr>=0.7.18 (from magnum>=15.0.0)\n  Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB)\nCollecting oslo.db>=8.2.0 (from magnum>=15.0.0)\n  Downloading oslo_db-18.0.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting oslo.i18n>=5.0.0 (from magnum>=15.0.0)\n  Downloading oslo_i18n-6.7.2-py3-none-any.whl.metadata (2.0 kB)\nCollecting oslo.messaging>=14.1.0 (from magnum>=15.0.0)\n  Downloading oslo_messaging-17.3.0-py3-none-any.whl.metadata (2.6 kB)\nCollecting oslo.middleware>=4.1.0 (from magnum>=15.0.0)\n  Downloading oslo_middleware-8.0.0-py3-none-any.whl.metadata (2.4 kB)\nCollecting oslo.policy>=4.5.0 (from magnum>=15.0.0)\n  Downloading oslo_policy-5.0.0-py3-none-any.whl.metadata (2.2 kB)\nCollecting oslo.reports>=2.1.0 (from magnum>=15.0.0)\n  Downloading oslo_reports-3.7.0-py3-none-any.whl.metadata (3.8 kB)\nCollecting oslo.serialization>=3.2.0 (from magnum>=15.0.0)\n  Downloading oslo_serialization-5.9.1-py3-none-any.whl.metadata (2.1 kB)\nCollecting oslo.upgradecheck>=1.3.0 (from magnum>=15.0.0)\n  Downloading oslo_upgradecheck-2.7.1-py3-none-any.whl.metadata (1.8 kB)\nCollecting oslo.utils>=4.2.0 (from magnum>=15.0.0)\n  Downloading oslo_utils-10.0.0-py3-none-any.whl.metadata (2.1 kB)\nCollecting oslo.versionedobjects>=2.1.0 (from magnum>=15.0.0)\n  Downloading oslo_versionedobjects-3.9.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting pbr>=5.5.0 (from magnum>=15.0.0)\n  Using cached pbr-7.0.3-py2.py3-none-any.whl.metadata (3.8 kB)\nCollecting pecan>=1.3.3 (from magnum>=15.0.0)\n  Downloading pecan-1.8.0-py3-none-any.whl.metadata (1.6 kB)\nCollecting pycadf!=2.0.0,>=1.1.0 (from magnum>=15.0.0)\n  Downloading pycadf-4.0.1-py3-none-any.whl.metadata (2.2 kB)\nCollecting python-barbicanclient>=5.0.0 (from magnum>=15.0.0)\n  Downloading python_barbicanclient-7.3.0-py3-none-any.whl.metadata (11 kB)\nCollecting python-cinderclient>=7.1.0 (from magnum>=15.0.0)\n  Downloading python_cinderclient-9.9.0-py3-none-any.whl.metadata (19 kB)\nCollecting python-glanceclient>=3.2.0 (from magnum>=15.0.0)\n  Downloading python_glanceclient-4.11.0-py3-none-any.whl.metadata (4.0 kB)\nCollecting python-neutronclient>=7.2.0 (from magnum>=15.0.0)\n  Downloading python_neutronclient-11.8.0-py3-none-any.whl.metadata (3.5 kB)\nCollecting python-novaclient>=17.2.0 (from magnum>=15.0.0)\n  Downloading python_novaclient-18.12.0-py3-none-any.whl.metadata (3.2 kB)\nCollecting python-keystoneclient>=3.20.0 (from magnum>=15.0.0)\n  Downloading python_keystoneclient-5.8.0-py3-none-any.whl.metadata (3.8 kB)\nCollecting python-octaviaclient>=2.1.0 (from magnum>=15.0.0)\n  Downloading python_octaviaclient-3.13.0-py3-none-any.whl.metadata (3.0 kB)\nCollecting setuptools!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=30.0.0 (from magnum>=15.0.0)\n  Using cached setuptools-82.0.1-py3-none-any.whl.metadata (6.5 kB)\nRequirement already satisfied: stevedore>=3.3.0 in ./.tox/unit/lib/python3.12/site-packages (from magnum>=15.0.0) (5.7.0)\nCollecting taskflow>=2.16.0 (from magnum>=15.0.0)\n  Downloading taskflow-6.2.0-py3-none-any.whl.metadata (4.5 kB)\nCollecting cryptography>=2.1.4 (from magnum>=15.0.0)\n  Downloading cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)\nCollecting Werkzeug>=0.9 (from magnum>=15.0.0)\n  Downloading werkzeug-3.1.7-py3-none-any.whl.metadata (4.0 kB)\nCollecting fasteners>=0.7.0 (from oslo.concurrency>=4.5.0)\n  Downloading fasteners-0.20-py3-none-any.whl.metadata (4.8 kB)\nCollecting debtcollector>=3.0.0 (from oslo.concurrency>=4.5.0)\n  Downloading debtcollector-3.1.0-py3-none-any.whl.metadata (2.6 kB)\nCollecting rfc3986>=1.2.0 (from oslo.config>=8.8.0)\n  Downloading rfc3986-2.0.0-py2.py3-none-any.whl.metadata (6.6 kB)\nCollecting typing-extensions>=4.12.0 (from oslo.context>=4.1.0)\n  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting cffi>=1.14.0 (from oslo.privsep>=2.7.0)\n  Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB)\nCollecting msgpack>=0.6.0 (from oslo.privsep>=2.7.0)\n  Downloading msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.1 kB)\nCollecting PasteDeploy>=1.5.0 (from oslo.service>=2.8.0)\n  Downloading PasteDeploy-3.1.0-py3-none-any.whl.metadata (2.7 kB)\nCollecting Routes>=2.3.1 (from oslo.service>=2.8.0)\n  Downloading Routes-2.5.1-py2.py3-none-any.whl.metadata (25 kB)\nCollecting Paste>=2.0.2 (from oslo.service>=2.8.0)\n  Downloading Paste-3.10.1-py3-none-any.whl.metadata (5.3 kB)\nCollecting Yappi>=1.0 (from oslo.service>=2.8.0)\n  Downloading yappi-1.7.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (11 kB)\nRequirement already satisfied: iso8601>=0.1.11 in ./.tox/unit/lib/python3.12/site-packages (from python-heatclient) (2.1.0)\nCollecting osc-lib>=1.14.0 (from python-heatclient)\n  Downloading osc_lib-4.4.0-py3-none-any.whl.metadata (3.8 kB)\nRequirement already satisfied: PrettyTable>=0.7.2 in ./.tox/unit/lib/python3.12/site-packages (from python-heatclient) (3.17.0)\nCollecting python-swiftclient>=3.2.0 (from python-heatclient)\n  Downloading python_swiftclient-4.10.0-py3-none-any.whl.metadata (3.9 kB)\nRequirement already satisfied: charset_normalizer<4,>=2 in ./.tox/unit/lib/python3.12/site-packages (from requests>=2.27.1) (3.4.7)\nRequirement already satisfied: idna<4,>=2.5 in ./.tox/unit/lib/python3.12/site-packages (from requests>=2.27.1) (3.11)\nCollecting Mako (from alembic>=0.9.6->magnum>=15.0.0)\n  Downloading mako-1.3.10-py3-none-any.whl.metadata (2.9 kB)\nCollecting pycparser (from cffi>=1.14.0->oslo.privsep>=2.7.0)\n  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)\nRequirement already satisfied: autopage>=0.4.0 in ./.tox/unit/lib/python3.12/site-packages (from cliff>=4.0.0->magnum>=15.0.0) (0.6.0)\nRequirement already satisfied: cmd2>=1.0.0 in ./.tox/unit/lib/python3.12/site-packages (from cliff>=4.0.0->magnum>=15.0.0) (3.4.0)\nRequirement already satisfied: pyperclip>=1.8.2 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (1.11.0)\nRequirement already satisfied: rich>=14.3.0 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (14.3.3)\nRequirement already satisfied: rich-argparse>=1.7.1 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (1.7.2)\nCollecting wrapt>=2.1.0 (from debtcollector>=3.0.0->oslo.concurrency>=4.5.0)\n  Downloading wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (7.4 kB)\nCollecting jsonpointer>=1.9 (from jsonpatch!=1.20,>=1.16->magnum>=15.0.0)\n  Downloading jsonpointer-3.1.1-py3-none-any.whl.metadata (2.4 kB)\nCollecting os-service-types>=1.2.0 (from keystoneauth1>=3.14.0->magnum>=15.0.0)\n  Downloading os_service_types-1.8.2-py3-none-any.whl.metadata (1.9 kB)\nCollecting oslo.cache>=3.11.0 (from keystonemiddleware>=9.0.0->magnum>=15.0.0)\n  Downloading oslo_cache-4.1.1-py3-none-any.whl.metadata (2.5 kB)\nCollecting PyJWT>=2.4.0 (from keystonemiddleware>=9.0.0->magnum>=15.0.0)\n  Downloading pyjwt-2.12.1-py3-none-any.whl.metadata (4.1 kB)\nCollecting openstacksdk>=0.15.0 (from osc-lib>=1.14.0->python-heatclient)\n  Downloading openstacksdk-4.10.0-py3-none-any.whl.metadata (12 kB)\nCollecting dogpile.cache>=0.6.5 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)\n  Downloading dogpile_cache-1.5.0-py3-none-any.whl.metadata (5.5 kB)\nCollecting jmespath>=0.9.0 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)\n  Downloading jmespath-1.1.0-py3-none-any.whl.metadata (7.6 kB)\nCollecting psutil>=3.2.2 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)\n  Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB)\nCollecting requestsexceptions>=1.2.0 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)\n  Downloading requestsexceptions-1.4.0-py2.py3-none-any.whl.metadata (1.2 kB)\nCollecting testresources>=2.0.0 (from oslo.db>=8.2.0->magnum>=15.0.0)\n  Downloading testresources-2.0.2.tar.gz (45 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Installing backend dependencies: started\n  Installing backend dependencies: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting testscenarios>=0.4 (from oslo.db>=8.2.0->magnum>=15.0.0)\n  Downloading testscenarios-0.5.0-py2.py3-none-any.whl.metadata (12 kB)\nCollecting futurist>=1.2.0 (from oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading futurist-3.3.0-py3-none-any.whl.metadata (2.1 kB)\nCollecting cachetools>=2.0.0 (from oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Using cached cachetools-7.0.5-py3-none-any.whl.metadata (5.6 kB)\nCollecting amqp>=2.5.2 (from oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading amqp-5.3.1-py3-none-any.whl.metadata (8.9 kB)\nCollecting kombu>=4.6.8 (from oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading kombu-5.6.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting oslo.metrics>=0.2.1 (from oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading oslo_metrics-0.15.1-py3-none-any.whl.metadata (1.5 kB)\nCollecting vine<6.0.0,>=5.0.0 (from amqp>=2.5.2->oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)\nCollecting tzdata>=2025.2 (from kombu>=4.6.8->oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading tzdata-2025.3-py2.py3-none-any.whl.metadata (1.4 kB)\nRequirement already satisfied: packaging in ./.tox/unit/lib/python3.12/site-packages (from kombu>=4.6.8->oslo.messaging>=14.1.0->magnum>=15.0.0) (26.0)\nCollecting prometheus-client>=0.6.0 (from oslo.metrics>=0.2.1->oslo.messaging>=14.1.0->magnum>=15.0.0)\n  Downloading prometheus_client-0.24.1-py3-none-any.whl.metadata (2.1 kB)\nCollecting bcrypt>=3.1.3 (from oslo.middleware>=4.1.0->magnum>=15.0.0)\n  Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (10 kB)\nCollecting Jinja2>=2.10 (from oslo.middleware>=4.1.0->magnum>=15.0.0)\n  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\nCollecting statsd>=3.2.1 (from oslo.middleware>=4.1.0->magnum>=15.0.0)\n  Downloading statsd-4.0.1-py2.py3-none-any.whl.metadata (2.9 kB)\nCollecting MarkupSafe>=2.0 (from Jinja2>=2.10->oslo.middleware>=4.1.0->magnum>=15.0.0)\n  Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)\nCollecting pyparsing>=2.1.0 (from oslo.utils>=4.2.0->magnum>=15.0.0)\n  Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)\nRequirement already satisfied: wcwidth in ./.tox/unit/lib/python3.12/site-packages (from PrettyTable>=0.7.2->python-heatclient) (0.6.0)\nCollecting warlock>=1.2.0 (from python-glanceclient>=3.2.0->magnum>=15.0.0)\n  Downloading warlock-2.1.0-py3-none-any.whl.metadata (4.0 kB)\nCollecting pyOpenSSL>=17.1.0 (from python-glanceclient>=3.2.0->magnum>=15.0.0)\n  Downloading pyopenssl-26.0.0-py3-none-any.whl.metadata (18 kB)\nCollecting python-openstackclient>=3.12.0 (from python-octaviaclient>=2.1.0->magnum>=15.0.0)\n  Downloading python_openstackclient-9.0.0-py3-none-any.whl.metadata (10 kB)\nRequirement already satisfied: markdown-it-py>=2.2.0 in ./.tox/unit/lib/python3.12/site-packages (from rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (4.0.0)\nRequirement already satisfied: pygments<3.0.0,>=2.13.0 in ./.tox/unit/lib/python3.12/site-packages (from rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (2.20.0)\nRequirement already satisfied: mdurl~=0.1 in ./.tox/unit/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (0.1.2)\nCollecting repoze.lru>=0.3 (from Routes>=2.3.1->oslo.service>=2.8.0)\n  Downloading repoze.lru-0.7-py3-none-any.whl.metadata (1.1 kB)\nCollecting networkx>=2.1.0 (from taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)\nCollecting jsonschema>=3.2.0 (from taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)\nCollecting automaton>=1.9.0 (from taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading automaton-3.4.0-py3-none-any.whl.metadata (2.3 kB)\nCollecting tenacity>=6.0.0 (from taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading tenacity-9.1.4-py3-none-any.whl.metadata (1.2 kB)\nCollecting pydot>=1.2.4 (from taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading pydot-4.0.1-py3-none-any.whl.metadata (11 kB)\nCollecting attrs>=22.2.0 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)\nCollecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB)\nCollecting referencing>=0.28.4 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB)\nCollecting rpds-py>=0.25.0 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)\n  Downloading rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)\nRequirement already satisfied: testtools in ./.tox/unit/lib/python3.12/site-packages (from testscenarios>=0.4->oslo.db>=8.2.0->magnum>=15.0.0) (2.8.7)\nCollecting simplegeneric (from WSME>=0.8.0->magnum>=15.0.0)\n  Downloading simplegeneric-0.8.1.zip (12 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nCollecting pytz (from WSME>=0.8.0->magnum>=15.0.0)\n  Downloading pytz-2026.1.post1-py2.py3-none-any.whl.metadata (22 kB)\nCollecting importlib-metadata>=4.4 (from WSME>=0.8.0->magnum>=15.0.0)\n  Downloading importlib_metadata-9.0.0-py3-none-any.whl.metadata (4.5 kB)\nCollecting zipp>=3.20 (from importlib-metadata>=4.4->WSME>=0.8.0->magnum>=15.0.0)\n  Downloading zipp-3.23.0-py3-none-any.whl.metadata (3.6 kB)\nCollecting oauthlib>=3.0.0 (from requests-oauthlib->kubernetes>=24.2.0)\n  Downloading oauthlib-3.3.1-py3-none-any.whl.metadata (7.9 kB)\nDownloading click-8.3.1-py3-none-any.whl (108 kB)\nDownloading diskcache-5.6.3-py3-none-any.whl (45 kB)\nDownloading eventlet-0.41.0-py3-none-any.whl (364 kB)\nDownloading kubernetes-35.0.0-py2.py3-none-any.whl (2.0 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.0/2.0 MB 13.3 MB/s  0:00:00\nDownloading magnum-22.0.0-py3-none-any.whl (763 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 763.5/763.5 kB 14.6 MB/s  0:00:00\nDownloading oslo_concurrency-7.4.0-py3-none-any.whl (48 kB)\nDownloading oslo_config-10.3.0-py3-none-any.whl (132 kB)\nDownloading oslo_context-6.3.0-py3-none-any.whl (20 kB)\nDownloading oslo_log-8.1.0-py3-none-any.whl (77 kB)\nDownloading oslo_privsep-3.10.1-py3-none-any.whl (41 kB)\nDownloading oslo_service-4.5.1-py3-none-any.whl (114 kB)\nUsing cached platformdirs-4.9.4-py3-none-any.whl (21 kB)\nDownloading pykube_ng-23.6.0-py3-none-any.whl (26 kB)\nDownloading pyroute2-0.9.5-py3-none-any.whl (480 kB)\nDownloading python_heatclient-5.1.0-py3-none-any.whl (212 kB)\nDownloading python_manilaclient-6.0.0-py3-none-any.whl (410 kB)\nDownloading semver-3.0.4-py3-none-any.whl (17 kB)\nDownloading sherlock-0.4.1-py3-none-any.whl (16 kB)\nDownloading shortuuid-1.0.13-py3-none-any.whl (10 kB)\nDownloading alembic-1.18.4-py3-none-any.whl (263 kB)\nDownloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB)\nDownloading cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.5/4.5 MB 20.6 MB/s  0:00:00\nDownloading debtcollector-3.1.0-py3-none-any.whl (24 kB)\nDownloading decorator-5.2.1-py3-none-any.whl (9.2 kB)\nDownloading dnspython-2.8.0-py3-none-any.whl (331 kB)\nDownloading durationpy-0.10-py3-none-any.whl (3.9 kB)\nDownloading fasteners-0.20-py3-none-any.whl (18 kB)\nDownloading greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (613 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 613.9/613.9 kB 17.1 MB/s  0:00:00\nDownloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)\nDownloading jsonpointer-3.1.1-py3-none-any.whl (7.7 kB)\nDownloading keystoneauth1-5.13.1-py3-none-any.whl (343 kB)\nDownloading keystonemiddleware-12.0.0-py3-none-any.whl (141 kB)\nDownloading msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (427 kB)\nDownloading netaddr-1.3.0-py3-none-any.whl (2.3 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.3/2.3 MB 33.7 MB/s  0:00:00\nDownloading os_service_types-1.8.2-py3-none-any.whl (24 kB)\nDownloading osc_lib-4.4.0-py3-none-any.whl (96 kB)\nDownloading openstacksdk-4.10.0-py3-none-any.whl (1.9 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.9/1.9 MB 28.0 MB/s  0:00:00\nDownloading dogpile_cache-1.5.0-py3-none-any.whl (64 kB)\nDownloading jmespath-1.1.0-py3-none-any.whl (20 kB)\nDownloading oslo_cache-4.1.1-py3-none-any.whl (65 kB)\nDownloading oslo_db-18.0.0-py3-none-any.whl (152 kB)\nDownloading oslo_i18n-6.7.2-py3-none-any.whl (47 kB)\nDownloading oslo_messaging-17.3.0-py3-none-any.whl (201 kB)\nDownloading amqp-5.3.1-py3-none-any.whl (50 kB)\nDownloading vine-5.1.0-py3-none-any.whl (9.6 kB)\nUsing cached cachetools-7.0.5-py3-none-any.whl (13 kB)\nDownloading futurist-3.3.0-py3-none-any.whl (43 kB)\nDownloading kombu-5.6.2-py3-none-any.whl (214 kB)\nDownloading oslo_metrics-0.15.1-py3-none-any.whl (14 kB)\nDownloading oslo_middleware-8.0.0-py3-none-any.whl (65 kB)\nDownloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB)\nDownloading jinja2-3.1.6-py3-none-any.whl (134 kB)\nDownloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)\nDownloading oslo_policy-5.0.0-py3-none-any.whl (89 kB)\nDownloading oslo_reports-3.7.0-py3-none-any.whl (53 kB)\nDownloading oslo_serialization-5.9.1-py3-none-any.whl (27 kB)\nDownloading oslo_upgradecheck-2.7.1-py3-none-any.whl (14 kB)\nDownloading oslo_utils-10.0.0-py3-none-any.whl (136 kB)\nDownloading oslo_versionedobjects-3.9.0-py3-none-any.whl (86 kB)\nDownloading Paste-3.10.1-py3-none-any.whl (289 kB)\nDownloading PasteDeploy-3.1.0-py3-none-any.whl (16 kB)\nUsing cached pbr-7.0.3-py2.py3-none-any.whl (131 kB)\nDownloading pecan-1.8.0-py3-none-any.whl (144 kB)\nDownloading mako-1.3.10-py3-none-any.whl (78 kB)\nDownloading prometheus_client-0.24.1-py3-none-any.whl (64 kB)\nDownloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB)\nDownloading pycadf-4.0.1-py3-none-any.whl (44 kB)\nDownloading pyjwt-2.12.1-py3-none-any.whl (29 kB)\nDownloading pyparsing-3.3.2-py3-none-any.whl (122 kB)\nDownloading python_barbicanclient-7.3.0-py3-none-any.whl (88 kB)\nDownloading python_cinderclient-9.9.0-py3-none-any.whl (256 kB)\nDownloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)\nDownloading python_glanceclient-4.11.0-py3-none-any.whl (208 kB)\nDownloading pyopenssl-26.0.0-py3-none-any.whl (57 kB)\nDownloading python_keystoneclient-5.8.0-py3-none-any.whl (397 kB)\nDownloading python_neutronclient-11.8.0-py3-none-any.whl (296 kB)\nDownloading python_novaclient-18.12.0-py3-none-any.whl (336 kB)\nDownloading python_octaviaclient-3.13.0-py3-none-any.whl (113 kB)\nDownloading python_openstackclient-9.0.0-py3-none-any.whl (1.1 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.1/1.1 MB 38.7 MB/s  0:00:00\nDownloading python_swiftclient-4.10.0-py3-none-any.whl (88 kB)\nDownloading requestsexceptions-1.4.0-py2.py3-none-any.whl (3.8 kB)\nDownloading rfc3986-2.0.0-py2.py3-none-any.whl (31 kB)\nDownloading Routes-2.5.1-py2.py3-none-any.whl (40 kB)\nDownloading repoze.lru-0.7-py3-none-any.whl (10 kB)\nUsing cached setuptools-82.0.1-py3-none-any.whl (1.0 MB)\nDownloading six-1.17.0-py2.py3-none-any.whl (11 kB)\nDownloading sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 3.3/3.3 MB 43.9 MB/s  0:00:00\nDownloading statsd-4.0.1-py2.py3-none-any.whl (13 kB)\nDownloading taskflow-6.2.0-py3-none-any.whl (490 kB)\nDownloading automaton-3.4.0-py3-none-any.whl (23 kB)\nDownloading jsonschema-4.26.0-py3-none-any.whl (90 kB)\nDownloading attrs-26.1.0-py3-none-any.whl (67 kB)\nDownloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)\nDownloading networkx-3.6.1-py3-none-any.whl (2.1 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.1/2.1 MB 55.6 MB/s  0:00:00\nDownloading pydot-4.0.1-py3-none-any.whl (37 kB)\nDownloading referencing-0.37.0-py3-none-any.whl (26 kB)\nDownloading rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394 kB)\nDownloading tenacity-9.1.4-py3-none-any.whl (28 kB)\nDownloading testscenarios-0.5.0-py2.py3-none-any.whl (21 kB)\nDownloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)\nDownloading tzdata-2025.3-py2.py3-none-any.whl (348 kB)\nDownloading warlock-2.1.0-py3-none-any.whl (10 kB)\nDownloading WebOb-1.8.9-py2.py3-none-any.whl (115 kB)\nDownloading websocket_client-1.9.0-py3-none-any.whl (82 kB)\nDownloading werkzeug-3.1.7-py3-none-any.whl (226 kB)\nDownloading wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (121 kB)\nDownloading WSME-0.12.1-py3-none-any.whl (59 kB)\nDownloading importlib_metadata-9.0.0-py3-none-any.whl (27 kB)\nDownloading yappi-1.7.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (82 kB)\nDownloading zipp-3.23.0-py3-none-any.whl (10 kB)\nDownloading pycparser-3.0-py3-none-any.whl (48 kB)\nDownloading pytz-2026.1.post1-py2.py3-none-any.whl (510 kB)\nDownloading requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)\nDownloading oauthlib-3.3.1-py3-none-any.whl (160 kB)\nBuilding wheels for collected packages: haproxyadmin, testresources, simplegeneric\n  Building wheel for haproxyadmin (pyproject.toml): started\n  Building wheel for haproxyadmin (pyproject.toml): finished with status 'done'\n  Created wheel for haproxyadmin: filename=haproxyadmin-0.2.4-py3-none-any.whl size=37208 sha256=d7410846da8f542b0c0f42cfc223c59e5011b67aa6e0464d5abc8af449b76f8e\n  Stored in directory: /home/zuul/.cache/pip/wheels/f8/a4/d2/ca8e7bcb86a3513744e388395fdc7c9b2d41bdffceb804f578\n  Building wheel for testresources (pyproject.toml): started\n  Building wheel for testresources (pyproject.toml): finished with status 'done'\n  Created wheel for testresources: filename=testresources-2.0.2-py2.py3-none-any.whl size=34284 sha256=f784cafc23ccb0f8a0811e697cb6cd309295e4bd0792a25dbda97ccce07085e0\n  Stored in directory: /home/zuul/.cache/pip/wheels/6f/bd/38/5f44565796c558350457d3ffee0ab83be96f3d99e262a219b9\n  Building wheel for simplegeneric (pyproject.toml): started\n  Building wheel for simplegeneric (pyproject.toml): finished with status 'done'\n  Created wheel for simplegeneric: filename=simplegeneric-0.8.1-py3-none-any.whl size=5103 sha256=62e11c549cd24042a471286c7efcb9b8f6216701eb4778b8bd2bfe84c037ee03\n  Stored in directory: /home/zuul/.cache/pip/wheels/bf/7f/ac/c96a7918d97103348ae720bdf93aa7f5458f5efb90718e9873\nSuccessfully built haproxyadmin testresources simplegeneric\nInstalling collected packages: statsd, simplegeneric, requestsexceptions, repoze.lru, pytz, durationpy, zipp, Yappi, wrapt, websocket-client, WebOb, vine, tzdata, typing-extensions, tenacity, six, shortuuid, sherlock, setuptools, semver, rpds-py, rfc3986, pyroute2, pyparsing, PyJWT, pycparser, psutil, prometheus-client, platformdirs, PasteDeploy, oauthlib, networkx, netaddr, msgpack, MarkupSafe, jsonpointer, jmespath, greenlet, fasteners, dnspython, diskcache, decorator, click, cachetools, bcrypt, attrs, Werkzeug, SQLAlchemy, Routes, requests-oauthlib, referencing, python-swiftclient, python-dateutil, pykube-ng, pydot, pbr, Paste, Mako, jsonpatch, Jinja2, importlib-metadata, haproxyadmin, eventlet, dogpile.cache, debtcollector, cffi, automaton, amqp, WSME, testscenarios, testresources, pecan, oslo.i18n, oslo.context, os-service-types, kubernetes, kombu, jsonschema-specifications, futurist, cryptography, alembic, pyOpenSSL, oslo.utils, oslo.config, keystoneauth1, jsonschema, warlock, python-cinderclient, oslo.serialization, oslo.middleware, oslo.db, oslo.concurrency, openstacksdk, taskflow, python-novaclient, python-keystoneclient, python-glanceclient, python-barbicanclient, pycadf, oslo.reports, oslo.policy, oslo.log, osc-lib, python-openstackclient, python-neutronclient, python-manilaclient, python-heatclient, oslo.upgradecheck, oslo.service, oslo.privsep, oslo.metrics, oslo.cache, python-octaviaclient, oslo.messaging, keystonemiddleware, oslo.versionedobjects, magnum\n\nSuccessfully installed Jinja2-3.1.6 Mako-1.3.10 MarkupSafe-3.0.3 Paste-3.10.1 PasteDeploy-3.1.0 PyJWT-2.12.1 Routes-2.5.1 SQLAlchemy-2.0.48 WSME-0.12.1 WebOb-1.8.9 Werkzeug-3.1.7 Yappi-1.7.6 alembic-1.18.4 amqp-5.3.1 attrs-26.1.0 automaton-3.4.0 bcrypt-5.0.0 cachetools-7.0.5 cffi-2.0.0 click-8.3.1 cryptography-46.0.6 debtcollector-3.1.0 decorator-5.2.1 diskcache-5.6.3 dnspython-2.8.0 dogpile.cache-1.5.0 durationpy-0.10 eventlet-0.41.0 fasteners-0.20 futurist-3.3.0 greenlet-3.3.2 haproxyadmin-0.2.4 importlib-metadata-9.0.0 jmespath-1.1.0 jsonpatch-1.33 jsonpointer-3.1.1 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 keystoneauth1-5.13.1 keystonemiddleware-12.0.0 kombu-5.6.2 kubernetes-35.0.0 magnum-22.0.0 msgpack-1.1.2 netaddr-1.3.0 networkx-3.6.1 oauthlib-3.3.1 openstacksdk-4.10.0 os-service-types-1.8.2 osc-lib-4.4.0 oslo.cache-4.1.1 oslo.concurrency-7.4.0 oslo.config-10.3.0 oslo.context-6.3.0 oslo.db-18.0.0 oslo.i18n-6.7.2 oslo.log-8.1.0 oslo.messaging-17.3.0 oslo.metrics-0.15.1 oslo.middleware-8.0.0 oslo.policy-5.0.0 oslo.privsep-3.10.1 oslo.reports-3.7.0 oslo.serialization-5.9.1 oslo.service-4.5.1 oslo.upgradecheck-2.7.1 oslo.utils-10.0.0 oslo.versionedobjects-3.9.0 pbr-7.0.3 pecan-1.8.0 platformdirs-4.9.4 prometheus-client-0.24.1 psutil-7.2.2 pyOpenSSL-26.0.0 pycadf-4.0.1 pycparser-3.0 pydot-4.0.1 pykube-ng-23.6.0 pyparsing-3.3.2 pyroute2-0.9.5 python-barbicanclient-7.3.0 python-cinderclient-9.9.0 python-dateutil-2.9.0.post0 python-glanceclient-4.11.0 python-heatclient-5.1.0 python-keystoneclient-5.8.0 python-manilaclient-6.0.0 python-neutronclient-11.8.0 python-novaclient-18.12.0 python-octaviaclient-3.13.0 python-openstackclient-9.0.0 python-swiftclient-4.10.0 pytz-2026.1.post1 referencing-0.37.0 repoze.lru-0.7 requests-oauthlib-2.0.0 requestsexceptions-1.4.0 rfc3986-2.0.0 rpds-py-0.30.0 semver-3.0.4 setuptools-82.0.1 sherlock-0.4.1 shortuuid-1.0.13 simplegeneric-0.8.1 six-1.17.0 statsd-4.0.1 taskflow-6.2.0 tenacity-9.1.4 testresources-2.0.2 testscenarios-0.5.0 typing-extensions-4.15.0 tzdata-2025.3 vine-5.1.0 warlock-2.1.0 websocket-client-1.9.0 wrapt-2.1.2 zipp-3.23.0\nunit: 49709 I exit 0 (39.89 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install certifi 'click>=8.0.4' 'diskcache>=5.6.1' 'eventlet>=0.33.1' 'haproxyadmin>=0.2.4' 'kubernetes>=24.2.0' 'magnum>=15.0.0' 'oslo.concurrency>=4.5.0' 'oslo.config>=8.8.0' 'oslo.context>=4.1.0' 'oslo.log>=4.7.0' 'oslo.privsep>=2.7.0' 'oslo.service>=2.8.0' 'platformdirs>=2.4.0' pykube-ng 'pyroute2>=0.3.4' python-heatclient 'python-manilaclient>=3.3.2' 'requests>=2.27.1' 'semver>=2.0.0' 'sherlock>=0.4.1' shortuuid pid=6809 [tox/execute/api.py:311]\nunit: 49710 W install_package> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/api.py:515]\nProcessing ./.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nBuilding wheels for collected packages: magnum-cluster-api\n  Building wheel for magnum-cluster-api (pyproject.toml): started\n  Building wheel for magnum-cluster-api (pyproject.toml): still running...\n  Building wheel for magnum-cluster-api (pyproject.toml): finished with status 'done'\n  Created wheel for magnum-cluster-api: filename=magnum_cluster_api-0.36.1-cp38-abi3-linux_x86_64.whl size=7522838 sha256=595719f94b6ac1b95c66858dde02c82fbfd841b0749811e1599d79e0392974d1\n  Stored in directory: /home/zuul/.cache/pip/wheels/72/fe/7b/6e6c4c0adccd095db1bd84d2ca0ca584fc8c4a38a0c6fe3a5b\nSuccessfully built magnum-cluster-api\nInstalling collected packages: magnum-cluster-api\nSuccessfully installed magnum-cluster-api-0.36.1\nunit: 167755 I exit 0 (118.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz pid=7441 [tox/execute/api.py:311]\n.pkg: 167756 W _exit> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command _exit with args {}\nBackend: Wrote response {'return': 0} to /tmp/pep517__exit-sy0ztzdx.json\n.pkg: 167759 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]\n.pkg: 167775 D delete package /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/python/virtual_env/package/pyproject.py:245]\n  unit: OK (167.56 seconds)\n  congratulations :) (167.59 seconds)",
                            "stdout_lines": [
                                "ROOT: 187 D setup logging to DEBUG on pid 6441 [tox/report.py:229]",
                                "unit: 218 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                "unit: 220 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]",
                                "unit: 221 D filesystem is case-sensitive [python_discovery/_compat.py:18]",
                                "unit: 225 D get interpreter info via cmd: /usr/bin/python3.12 /home/zuul/.local/tox/lib/python3.12/site-packages/python_discovery/_py_info.py c5d5ea07e88c3da3f8922673c2861e26 118484a56391bba3403c4223545e2ebc [python_discovery/_cached_py_info.py:198]",
                                "unit: 285 D wrote python info of /usr/bin/python3.12 at /home/zuul/.cache/virtualenv/py_info/4/f0d7a494a3f776233427cb85a7e198c7cf4913b50a203c6febc678cc4f5bf265.json [virtualenv/app_data/via_disk_folder.py:159]",
                                "unit: 286 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]",
                                "unit: 286 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]",
                                "unit: 288 D symlink on filesystem does work [virtualenv/info.py:51]",
                                "unit: 288 D filesystem is case-sensitive [virtualenv/info.py:28]",
                                "unit: 313 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]",
                                "unit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin [virtualenv/util/path/_sync.py:18]",
                                "unit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/include [virtualenv/util/path/_sync.py:18]",
                                "unit: 314 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages [virtualenv/util/path/_sync.py:18]",
                                "unit: 314 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]",
                                "unit: 314 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 314 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 315 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 315 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 315 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 315 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 315 D symlink /usr/bin/python3.12 to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python [virtualenv/util/path/_sync.py:38]",
                                "unit: 315 D create virtualenv import hook file /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:118]",
                                "unit: 315 D create /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:121]",
                                "unit: 316 D ============================== target debug ============================== [virtualenv/run/session.py:79]",
                                "unit: 316 D debug via /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:263]",
                                "unit: 316 D {",
                                "  \"sys\": {",
                                "    \"executable\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/bin/python\",",
                                "    \"_base_executable\": \"/usr/bin/python3.12\",",
                                "    \"prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit\",",
                                "    \"base_prefix\": \"/usr\",",
                                "    \"real_prefix\": null,",
                                "    \"exec_prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit\",",
                                "    \"base_exec_prefix\": \"/usr\",",
                                "    \"path\": [",
                                "      \"/usr/lib/python312.zip\",",
                                "      \"/usr/lib/python3.12\",",
                                "      \"/usr/lib/python3.12/lib-dynload\",",
                                "      \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages\"",
                                "    ],",
                                "    \"meta_path\": [",
                                "      \"<class '_virtualenv._Finder'>\",",
                                "      \"<class '_frozen_importlib.BuiltinImporter'>\",",
                                "      \"<class '_frozen_importlib.FrozenImporter'>\",",
                                "      \"<class '_frozen_importlib_external.PathFinder'>\"",
                                "    ],",
                                "    \"fs_encoding\": \"utf-8\",",
                                "    \"io_encoding\": \"utf-8\"",
                                "  },",
                                "  \"version\": \"3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]\",",
                                "  \"makefile_filename\": \"/usr/lib/python3.12/config-3.12-x86_64-linux-gnu/Makefile\",",
                                "  \"os\": \"<module 'os' (frozen)>\",",
                                "  \"site\": \"<module 'site' (frozen)>\",",
                                "  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.12/datetime.py'>\",",
                                "  \"math\": \"<module 'math' (built-in)>\",",
                                "  \"json\": \"<module 'json' from '/usr/lib/python3.12/json/__init__.py'>\"",
                                "} [virtualenv/run/session.py:80]",
                                "unit: 356 I add seed packages via FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]",
                                "unit: 358 D install pip from wheel /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/seed/wheels/embed/pip-26.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]",
                                "unit: 359 D build install image for pip-26.0.1-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:53]",
                                "unit: 455 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip [virtualenv/util/path/_sync.py:46]",
                                "unit: 507 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.dist-info to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip-26.0.1.dist-info [virtualenv/util/path/_sync.py:46]",
                                "unit: 512 D copy /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.virtualenv to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/pip-26.0.1.virtualenv [virtualenv/util/path/_sync.py:46]",
                                "unit: 513 D generated console scripts pip pip3 pip-3.12 pip3.12 [virtualenv/seed/embed/via_app_data/pip_install/base.py:49]",
                                "unit: 513 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:90]",
                                "unit: 520 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]",
                                "unit: 521 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 521 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                "unit: 524 W install_deps> python -I -m pip install fixtures lark oslotest pytest pytest-mock responses stestr [tox/tox_env/api.py:515]",
                                "Collecting fixtures",
                                "  Downloading fixtures-4.3.2-py3-none-any.whl.metadata (22 kB)",
                                "Collecting lark",
                                "  Downloading lark-1.3.1-py3-none-any.whl.metadata (1.8 kB)",
                                "Collecting oslotest",
                                "  Downloading oslotest-6.1.0-py3-none-any.whl.metadata (1.8 kB)",
                                "Collecting pytest",
                                "  Downloading pytest-9.0.2-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting pytest-mock",
                                "  Downloading pytest_mock-3.15.1-py3-none-any.whl.metadata (3.9 kB)",
                                "Collecting responses",
                                "  Downloading responses-0.26.0-py3-none-any.whl.metadata (48 kB)",
                                "Collecting stestr",
                                "  Downloading stestr-4.2.1-py3-none-any.whl.metadata (7.7 kB)",
                                "Collecting testtools>=2.2.0 (from oslotest)",
                                "  Downloading testtools-2.8.7-py3-none-any.whl.metadata (5.4 kB)",
                                "Collecting iniconfig>=1.0.1 (from pytest)",
                                "  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting packaging>=22 (from pytest)",
                                "  Using cached packaging-26.0-py3-none-any.whl.metadata (3.3 kB)",
                                "Collecting pluggy<2,>=1.5 (from pytest)",
                                "  Using cached pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting pygments>=2.7.2 (from pytest)",
                                "  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting requests<3.0,>=2.30.0 (from responses)",
                                "  Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting urllib3<3.0,>=1.25.10 (from responses)",
                                "  Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB)",
                                "Collecting pyyaml (from responses)",
                                "  Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)",
                                "Collecting charset_normalizer<4,>=2 (from requests<3.0,>=2.30.0->responses)",
                                "  Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)",
                                "Collecting idna<4,>=2.5 (from requests<3.0,>=2.30.0->responses)",
                                "  Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)",
                                "Collecting certifi>=2023.5.7 (from requests<3.0,>=2.30.0->responses)",
                                "  Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting cliff>=2.8.0 (from stestr)",
                                "  Downloading cliff-4.13.2-py3-none-any.whl.metadata (2.1 kB)",
                                "Collecting python-subunit>=1.4.0 (from stestr)",
                                "  Downloading python_subunit-1.4.5-py3-none-any.whl.metadata (22 kB)",
                                "Collecting voluptuous>=0.8.9 (from stestr)",
                                "  Downloading voluptuous-0.16.0-py3-none-any.whl.metadata (20 kB)",
                                "Collecting tomlkit>=0.11.6 (from stestr)",
                                "  Downloading tomlkit-0.14.0-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting autopage>=0.4.0 (from cliff>=2.8.0->stestr)",
                                "  Downloading autopage-0.6.0-py3-none-any.whl.metadata (8.1 kB)",
                                "Collecting cmd2>=1.0.0 (from cliff>=2.8.0->stestr)",
                                "  Downloading cmd2-3.4.0-py3-none-any.whl.metadata (16 kB)",
                                "Collecting PrettyTable>=0.7.2 (from cliff>=2.8.0->stestr)",
                                "  Downloading prettytable-3.17.0-py3-none-any.whl.metadata (34 kB)",
                                "Collecting stevedore>=5.6.0 (from cliff>=2.8.0->stestr)",
                                "  Downloading stevedore-5.7.0-py3-none-any.whl.metadata (2.4 kB)",
                                "Collecting pyperclip>=1.8.2 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)",
                                "  Downloading pyperclip-1.11.0-py3-none-any.whl.metadata (2.4 kB)",
                                "Collecting rich>=14.3.0 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)",
                                "  Downloading rich-14.3.3-py3-none-any.whl.metadata (18 kB)",
                                "Collecting rich-argparse>=1.7.1 (from cmd2>=1.0.0->cliff>=2.8.0->stestr)",
                                "  Downloading rich_argparse-1.7.2-py3-none-any.whl.metadata (14 kB)",
                                "Collecting wcwidth (from PrettyTable>=0.7.2->cliff>=2.8.0->stestr)",
                                "  Downloading wcwidth-0.6.0-py3-none-any.whl.metadata (30 kB)",
                                "Collecting iso8601 (from python-subunit>=1.4.0->stestr)",
                                "  Downloading iso8601-2.1.0-py3-none-any.whl.metadata (3.7 kB)",
                                "Collecting markdown-it-py>=2.2.0 (from rich>=14.3.0->cmd2>=1.0.0->cliff>=2.8.0->stestr)",
                                "  Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)",
                                "Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=14.3.0->cmd2>=1.0.0->cliff>=2.8.0->stestr)",
                                "  Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)",
                                "Downloading fixtures-4.3.2-py3-none-any.whl (41 kB)",
                                "Downloading lark-1.3.1-py3-none-any.whl (113 kB)",
                                "Downloading oslotest-6.1.0-py3-none-any.whl (30 kB)",
                                "Downloading pytest-9.0.2-py3-none-any.whl (374 kB)",
                                "Using cached pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Downloading pytest_mock-3.15.1-py3-none-any.whl (10 kB)",
                                "Downloading responses-0.26.0-py3-none-any.whl (35 kB)",
                                "Downloading requests-2.33.1-py3-none-any.whl (64 kB)",
                                "Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)",
                                "Downloading idna-3.11-py3-none-any.whl (71 kB)",
                                "Downloading urllib3-2.6.3-py3-none-any.whl (131 kB)",
                                "Downloading stestr-4.2.1-py3-none-any.whl (118 kB)",
                                "Downloading certifi-2026.2.25-py3-none-any.whl (153 kB)",
                                "Downloading cliff-4.13.2-py3-none-any.whl (86 kB)",
                                "Downloading autopage-0.6.0-py3-none-any.whl (30 kB)",
                                "Downloading cmd2-3.4.0-py3-none-any.whl (148 kB)",
                                "Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)",
                                "Using cached packaging-26.0-py3-none-any.whl (74 kB)",
                                "Downloading prettytable-3.17.0-py3-none-any.whl (34 kB)",
                                "Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.2/1.2 MB 55.4 MB/s  0:00:00",
                                "Downloading pyperclip-1.11.0-py3-none-any.whl (11 kB)",
                                "Downloading python_subunit-1.4.5-py3-none-any.whl (102 kB)",
                                "Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 807.9/807.9 kB 40.0 MB/s  0:00:00",
                                "Downloading rich-14.3.3-py3-none-any.whl (310 kB)",
                                "Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)",
                                "Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)",
                                "Downloading rich_argparse-1.7.2-py3-none-any.whl (25 kB)",
                                "Downloading stevedore-5.7.0-py3-none-any.whl (54 kB)",
                                "Downloading testtools-2.8.7-py3-none-any.whl (109 kB)",
                                "Downloading tomlkit-0.14.0-py3-none-any.whl (39 kB)",
                                "Downloading voluptuous-0.16.0-py3-none-any.whl (31 kB)",
                                "Downloading iso8601-2.1.0-py3-none-any.whl (7.5 kB)",
                                "Downloading wcwidth-0.6.0-py3-none-any.whl (94 kB)",
                                "Installing collected packages: pyperclip, wcwidth, voluptuous, urllib3, tomlkit, testtools, stevedore, pyyaml, pygments, pluggy, packaging, mdurl, lark, iso8601, iniconfig, idna, fixtures, charset_normalizer, certifi, autopage, requests, python-subunit, pytest, PrettyTable, oslotest, markdown-it-py, rich, responses, pytest-mock, rich-argparse, cmd2, cliff, stestr",
                                "",
                                "Successfully installed PrettyTable-3.17.0 autopage-0.6.0 certifi-2026.2.25 charset_normalizer-3.4.7 cliff-4.13.2 cmd2-3.4.0 fixtures-4.3.2 idna-3.11 iniconfig-2.3.0 iso8601-2.1.0 lark-1.3.1 markdown-it-py-4.0.0 mdurl-0.1.2 oslotest-6.1.0 packaging-26.0 pluggy-1.6.0 pygments-2.20.0 pyperclip-1.11.0 pytest-9.0.2 pytest-mock-3.15.1 python-subunit-1.4.5 pyyaml-6.0.3 requests-2.33.1 responses-0.26.0 rich-14.3.3 rich-argparse-1.7.2 stestr-4.2.1 stevedore-5.7.0 testtools-2.8.7 tomlkit-0.14.0 urllib3-2.6.3 voluptuous-0.16.0 wcwidth-0.6.0",
                                "unit: 6658 I exit 0 (6.13 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install fixtures lark oslotest pytest pytest-mock responses stestr pid=6452 [tox/execute/api.py:311]",
                                ".pkg: 6666 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                ".pkg: 6667 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]",
                                ".pkg: 6667 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]",
                                ".pkg: 6667 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]",
                                ".pkg: 6668 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]",
                                ".pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin [virtualenv/util/path/_sync.py:18]",
                                ".pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/include [virtualenv/util/path/_sync.py:18]",
                                ".pkg: 6669 D create folder /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages [virtualenv/util/path/_sync.py:18]",
                                ".pkg: 6669 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]",
                                ".pkg: 6669 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6669 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6670 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6670 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6670 D symlink /usr/bin/python3.12 to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python [virtualenv/util/path/_sync.py:38]",
                                ".pkg: 6670 D create virtualenv import hook file /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:118]",
                                ".pkg: 6670 D create /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:121]",
                                ".pkg: 6670 D ============================== target debug ============================== [virtualenv/run/session.py:79]",
                                ".pkg: 6671 D debug via /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:263]",
                                ".pkg: 6670 D {",
                                "  \"sys\": {",
                                "    \"executable\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/bin/python\",",
                                "    \"_base_executable\": \"/usr/bin/python3.12\",",
                                "    \"prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg\",",
                                "    \"base_prefix\": \"/usr\",",
                                "    \"real_prefix\": null,",
                                "    \"exec_prefix\": \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg\",",
                                "    \"base_exec_prefix\": \"/usr\",",
                                "    \"path\": [",
                                "      \"/usr/lib/python312.zip\",",
                                "      \"/usr/lib/python3.12\",",
                                "      \"/usr/lib/python3.12/lib-dynload\",",
                                "      \"/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages\"",
                                "    ],",
                                "    \"meta_path\": [",
                                "      \"<class '_virtualenv._Finder'>\",",
                                "      \"<class '_frozen_importlib.BuiltinImporter'>\",",
                                "      \"<class '_frozen_importlib.FrozenImporter'>\",",
                                "      \"<class '_frozen_importlib_external.PathFinder'>\"",
                                "    ],",
                                "    \"fs_encoding\": \"utf-8\",",
                                "    \"io_encoding\": \"utf-8\"",
                                "  },",
                                "  \"version\": \"3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]\",",
                                "  \"makefile_filename\": \"/usr/lib/python3.12/config-3.12-x86_64-linux-gnu/Makefile\",",
                                "  \"os\": \"<module 'os' (frozen)>\",",
                                "  \"site\": \"<module 'site' (frozen)>\",",
                                "  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.12/datetime.py'>\",",
                                "  \"math\": \"<module 'math' (built-in)>\",",
                                "  \"json\": \"<module 'json' from '/usr/lib/python3.12/json/__init__.py'>\"",
                                "} [virtualenv/run/session.py:80]",
                                ".pkg: 6710 I add seed packages via FromAppData(download=False, pip=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]",
                                ".pkg: 6712 D install pip from wheel /home/zuul/.local/tox/lib/python3.12/site-packages/virtualenv/seed/wheels/embed/pip-26.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]",
                                ".pkg: 6715 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip [virtualenv/util/path/_sync.py:46]",
                                ".pkg: 6773 D copy directory /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.dist-info to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip-26.0.1.dist-info [virtualenv/util/path/_sync.py:46]",
                                ".pkg: 6778 D copy /home/zuul/.cache/virtualenv/wheel/3.12/image/1/CopyPipInstall/pip-26.0.1-py3-none-any/pip-26.0.1.virtualenv to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/lib/python3.12/site-packages/pip-26.0.1.virtualenv [virtualenv/util/path/_sync.py:46]",
                                ".pkg: 6779 D generated console scripts pip-3.12 pip3.12 pip3 pip [virtualenv/seed/embed/via_app_data/pip_install/base.py:49]",
                                ".pkg: 6779 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:90]",
                                ".pkg: 6783 D write /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:41]",
                                ".pkg: 6784 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tversion_info = 3.12.3.final.0 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tversion = 3.12.3 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \texecutable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tvirtualenv = 21.2.0 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6784 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6785 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6785 D \tbase-executable = /usr/bin/python3.12 [virtualenv/create/pyenv_cfg.py:51]",
                                ".pkg: 6787 W install_requires> python -I -m pip install 'maturin<2.0,>=1.0' [tox/tox_env/api.py:515]",
                                "Collecting maturin<2.0,>=1.0",
                                "  Downloading maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.metadata (16 kB)",
                                "Downloading maturin-1.12.6-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (10.2 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 10.2/10.2 MB 24.8 MB/s  0:00:00",
                                "Installing collected packages: maturin",
                                "Successfully installed maturin-1.12.6",
                                ".pkg: 8735 I exit 0 (1.95 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install 'maturin<2.0,>=1.0' pid=6595 [tox/execute/api.py:311]",
                                ".pkg: 8738 W _optional_hooks> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command _optional_hooks with args {}",
                                "Backend: Wrote response {'return': {'get_requires_for_build_sdist': True, 'prepare_metadata_for_build_wheel': True, 'get_requires_for_build_wheel': True, 'build_editable': True, 'get_requires_for_build_editable': True, 'prepare_metadata_for_build_editable': True}} to /tmp/pep517__optional_hooks-fmihjrhk.json",
                                ".pkg: 8794 I exit None (0.05 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]",
                                ".pkg: 8795 W get_requires_for_build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command get_requires_for_build_sdist with args {'config_settings': None}",
                                "Backend: Wrote response {'return': []} to /tmp/pep517_get_requires_for_build_sdist-albepq3a.json",
                                ".pkg: 8800 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]",
                                ".pkg: 8802 W build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command build_sdist with args {'sdist_directory': '/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist', 'config_settings': None}",
                                "Running `maturin pep517 write-sdist --sdist-directory /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist`",
                                "\ud83d\udce6 Including license file `LICENSE`",
                                "\ud83c\udf79 Building a mixed python/rust project",
                                "\ud83d\udd17 Found pyo3 bindings with abi3 support",
                                "\ud83d\udce1 Using build options features from pyproject.toml",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/helm/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/serde_gtmpl/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/cluster_feature_derive/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "\ud83d\udce6 Built source distribution to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist/magnum_cluster_api-0.36.1.tar.gz",
                                "magnum_cluster_api-0.36.1.tar.gz",
                                "Backend: Wrote response {'return': 'magnum_cluster_api-0.36.1.tar.gz'} to /tmp/pep517_build_sdist-sibr53oh.json",
                                ".pkg: 9808 I exit None (1.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]",
                                ".pkg: 9815 D package .tmp/package/1/magnum_cluster_api-0.36.1.tar.gz copied to .pkg/dist/magnum_cluster_api-0.36.1.tar.gz (/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox) [tox/util/file_view.py:30]",
                                "unit: 9816 W install_package_deps> python -I -m pip install certifi 'click>=8.0.4' 'diskcache>=5.6.1' 'eventlet>=0.33.1' 'haproxyadmin>=0.2.4' 'kubernetes>=24.2.0' 'magnum>=15.0.0' 'oslo.concurrency>=4.5.0' 'oslo.config>=8.8.0' 'oslo.context>=4.1.0' 'oslo.log>=4.7.0' 'oslo.privsep>=2.7.0' 'oslo.service>=2.8.0' 'platformdirs>=2.4.0' pykube-ng 'pyroute2>=0.3.4' python-heatclient 'python-manilaclient>=3.3.2' 'requests>=2.27.1' 'semver>=2.0.0' 'sherlock>=0.4.1' shortuuid [tox/tox_env/api.py:515]",
                                "Requirement already satisfied: certifi in ./.tox/unit/lib/python3.12/site-packages (2026.2.25)",
                                "Collecting click>=8.0.4",
                                "  Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB)",
                                "Collecting diskcache>=5.6.1",
                                "  Downloading diskcache-5.6.3-py3-none-any.whl.metadata (20 kB)",
                                "Collecting eventlet>=0.33.1",
                                "  Downloading eventlet-0.41.0-py3-none-any.whl.metadata (5.4 kB)",
                                "Collecting haproxyadmin>=0.2.4",
                                "  Downloading haproxyadmin-0.2.4.tar.gz (59 kB)",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Getting requirements to build wheel: started",
                                "  Getting requirements to build wheel: finished with status 'done'",
                                "  Installing backend dependencies: started",
                                "  Installing backend dependencies: finished with status 'done'",
                                "  Preparing metadata (pyproject.toml): started",
                                "  Preparing metadata (pyproject.toml): finished with status 'done'",
                                "Collecting kubernetes>=24.2.0",
                                "  Downloading kubernetes-35.0.0-py2.py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting magnum>=15.0.0",
                                "  Downloading magnum-22.0.0-py3-none-any.whl.metadata (4.7 kB)",
                                "Collecting oslo.concurrency>=4.5.0",
                                "  Downloading oslo_concurrency-7.4.0-py3-none-any.whl.metadata (2.2 kB)",
                                "Collecting oslo.config>=8.8.0",
                                "  Downloading oslo_config-10.3.0-py3-none-any.whl.metadata (2.3 kB)",
                                "Collecting oslo.context>=4.1.0",
                                "  Downloading oslo_context-6.3.0-py3-none-any.whl.metadata (2.3 kB)",
                                "Collecting oslo.log>=4.7.0",
                                "  Downloading oslo_log-8.1.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting oslo.privsep>=2.7.0",
                                "  Downloading oslo_privsep-3.10.1-py3-none-any.whl.metadata (2.7 kB)",
                                "Collecting oslo.service>=2.8.0",
                                "  Downloading oslo_service-4.5.1-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting platformdirs>=2.4.0",
                                "  Using cached platformdirs-4.9.4-py3-none-any.whl.metadata (4.7 kB)",
                                "Collecting pykube-ng",
                                "  Downloading pykube_ng-23.6.0-py3-none-any.whl.metadata (8.0 kB)",
                                "Collecting pyroute2>=0.3.4",
                                "  Downloading pyroute2-0.9.5-py3-none-any.whl.metadata (8.8 kB)",
                                "Collecting python-heatclient",
                                "  Downloading python_heatclient-5.1.0-py3-none-any.whl.metadata (3.1 kB)",
                                "Collecting python-manilaclient>=3.3.2",
                                "  Downloading python_manilaclient-6.0.0-py3-none-any.whl.metadata (5.5 kB)",
                                "Requirement already satisfied: requests>=2.27.1 in ./.tox/unit/lib/python3.12/site-packages (2.33.1)",
                                "Collecting semver>=2.0.0",
                                "  Downloading semver-3.0.4-py3-none-any.whl.metadata (6.8 kB)",
                                "Collecting sherlock>=0.4.1",
                                "  Downloading sherlock-0.4.1-py3-none-any.whl.metadata (8.9 kB)",
                                "Collecting shortuuid",
                                "  Downloading shortuuid-1.0.13-py3-none-any.whl.metadata (5.8 kB)",
                                "Collecting dnspython>=1.15.0 (from eventlet>=0.33.1)",
                                "  Downloading dnspython-2.8.0-py3-none-any.whl.metadata (5.7 kB)",
                                "Collecting greenlet>=1.0 (from eventlet>=0.33.1)",
                                "  Downloading greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.7 kB)",
                                "Collecting six (from haproxyadmin>=0.2.4)",
                                "  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting python-dateutil>=2.5.3 (from kubernetes>=24.2.0)",
                                "  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)",
                                "Requirement already satisfied: pyyaml>=5.4.1 in ./.tox/unit/lib/python3.12/site-packages (from kubernetes>=24.2.0) (6.0.3)",
                                "Collecting websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 (from kubernetes>=24.2.0)",
                                "  Downloading websocket_client-1.9.0-py3-none-any.whl.metadata (8.3 kB)",
                                "Collecting requests-oauthlib (from kubernetes>=24.2.0)",
                                "  Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl.metadata (11 kB)",
                                "Requirement already satisfied: urllib3!=2.6.0,>=1.24.2 in ./.tox/unit/lib/python3.12/site-packages (from kubernetes>=24.2.0) (2.6.3)",
                                "Collecting durationpy>=0.7 (from kubernetes>=24.2.0)",
                                "  Downloading durationpy-0.10-py3-none-any.whl.metadata (340 bytes)",
                                "Collecting SQLAlchemy>=1.2.0 (from magnum>=15.0.0)",
                                "  Downloading sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB)",
                                "Collecting WSME>=0.8.0 (from magnum>=15.0.0)",
                                "  Downloading WSME-0.12.1-py3-none-any.whl.metadata (3.7 kB)",
                                "Collecting WebOb>=1.8.1 (from magnum>=15.0.0)",
                                "  Downloading WebOb-1.8.9-py2.py3-none-any.whl.metadata (11 kB)",
                                "Collecting alembic>=0.9.6 (from magnum>=15.0.0)",
                                "  Downloading alembic-1.18.4-py3-none-any.whl.metadata (7.2 kB)",
                                "Requirement already satisfied: cliff>=4.0.0 in ./.tox/unit/lib/python3.12/site-packages (from magnum>=15.0.0) (4.13.2)",
                                "Collecting decorator>=3.4.0 (from magnum>=15.0.0)",
                                "  Downloading decorator-5.2.1-py3-none-any.whl.metadata (3.9 kB)",
                                "Collecting jsonpatch!=1.20,>=1.16 (from magnum>=15.0.0)",
                                "  Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)",
                                "Collecting keystoneauth1>=3.14.0 (from magnum>=15.0.0)",
                                "  Downloading keystoneauth1-5.13.1-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting keystonemiddleware>=9.0.0 (from magnum>=15.0.0)",
                                "  Downloading keystonemiddleware-12.0.0-py3-none-any.whl.metadata (4.1 kB)",
                                "Collecting netaddr>=0.7.18 (from magnum>=15.0.0)",
                                "  Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB)",
                                "Collecting oslo.db>=8.2.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_db-18.0.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting oslo.i18n>=5.0.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_i18n-6.7.2-py3-none-any.whl.metadata (2.0 kB)",
                                "Collecting oslo.messaging>=14.1.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_messaging-17.3.0-py3-none-any.whl.metadata (2.6 kB)",
                                "Collecting oslo.middleware>=4.1.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_middleware-8.0.0-py3-none-any.whl.metadata (2.4 kB)",
                                "Collecting oslo.policy>=4.5.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_policy-5.0.0-py3-none-any.whl.metadata (2.2 kB)",
                                "Collecting oslo.reports>=2.1.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_reports-3.7.0-py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting oslo.serialization>=3.2.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_serialization-5.9.1-py3-none-any.whl.metadata (2.1 kB)",
                                "Collecting oslo.upgradecheck>=1.3.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_upgradecheck-2.7.1-py3-none-any.whl.metadata (1.8 kB)",
                                "Collecting oslo.utils>=4.2.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_utils-10.0.0-py3-none-any.whl.metadata (2.1 kB)",
                                "Collecting oslo.versionedobjects>=2.1.0 (from magnum>=15.0.0)",
                                "  Downloading oslo_versionedobjects-3.9.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting pbr>=5.5.0 (from magnum>=15.0.0)",
                                "  Using cached pbr-7.0.3-py2.py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting pecan>=1.3.3 (from magnum>=15.0.0)",
                                "  Downloading pecan-1.8.0-py3-none-any.whl.metadata (1.6 kB)",
                                "Collecting pycadf!=2.0.0,>=1.1.0 (from magnum>=15.0.0)",
                                "  Downloading pycadf-4.0.1-py3-none-any.whl.metadata (2.2 kB)",
                                "Collecting python-barbicanclient>=5.0.0 (from magnum>=15.0.0)",
                                "  Downloading python_barbicanclient-7.3.0-py3-none-any.whl.metadata (11 kB)",
                                "Collecting python-cinderclient>=7.1.0 (from magnum>=15.0.0)",
                                "  Downloading python_cinderclient-9.9.0-py3-none-any.whl.metadata (19 kB)",
                                "Collecting python-glanceclient>=3.2.0 (from magnum>=15.0.0)",
                                "  Downloading python_glanceclient-4.11.0-py3-none-any.whl.metadata (4.0 kB)",
                                "Collecting python-neutronclient>=7.2.0 (from magnum>=15.0.0)",
                                "  Downloading python_neutronclient-11.8.0-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting python-novaclient>=17.2.0 (from magnum>=15.0.0)",
                                "  Downloading python_novaclient-18.12.0-py3-none-any.whl.metadata (3.2 kB)",
                                "Collecting python-keystoneclient>=3.20.0 (from magnum>=15.0.0)",
                                "  Downloading python_keystoneclient-5.8.0-py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting python-octaviaclient>=2.1.0 (from magnum>=15.0.0)",
                                "  Downloading python_octaviaclient-3.13.0-py3-none-any.whl.metadata (3.0 kB)",
                                "Collecting setuptools!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=30.0.0 (from magnum>=15.0.0)",
                                "  Using cached setuptools-82.0.1-py3-none-any.whl.metadata (6.5 kB)",
                                "Requirement already satisfied: stevedore>=3.3.0 in ./.tox/unit/lib/python3.12/site-packages (from magnum>=15.0.0) (5.7.0)",
                                "Collecting taskflow>=2.16.0 (from magnum>=15.0.0)",
                                "  Downloading taskflow-6.2.0-py3-none-any.whl.metadata (4.5 kB)",
                                "Collecting cryptography>=2.1.4 (from magnum>=15.0.0)",
                                "  Downloading cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)",
                                "Collecting Werkzeug>=0.9 (from magnum>=15.0.0)",
                                "  Downloading werkzeug-3.1.7-py3-none-any.whl.metadata (4.0 kB)",
                                "Collecting fasteners>=0.7.0 (from oslo.concurrency>=4.5.0)",
                                "  Downloading fasteners-0.20-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting debtcollector>=3.0.0 (from oslo.concurrency>=4.5.0)",
                                "  Downloading debtcollector-3.1.0-py3-none-any.whl.metadata (2.6 kB)",
                                "Collecting rfc3986>=1.2.0 (from oslo.config>=8.8.0)",
                                "  Downloading rfc3986-2.0.0-py2.py3-none-any.whl.metadata (6.6 kB)",
                                "Collecting typing-extensions>=4.12.0 (from oslo.context>=4.1.0)",
                                "  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)",
                                "Collecting cffi>=1.14.0 (from oslo.privsep>=2.7.0)",
                                "  Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB)",
                                "Collecting msgpack>=0.6.0 (from oslo.privsep>=2.7.0)",
                                "  Downloading msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.1 kB)",
                                "Collecting PasteDeploy>=1.5.0 (from oslo.service>=2.8.0)",
                                "  Downloading PasteDeploy-3.1.0-py3-none-any.whl.metadata (2.7 kB)",
                                "Collecting Routes>=2.3.1 (from oslo.service>=2.8.0)",
                                "  Downloading Routes-2.5.1-py2.py3-none-any.whl.metadata (25 kB)",
                                "Collecting Paste>=2.0.2 (from oslo.service>=2.8.0)",
                                "  Downloading Paste-3.10.1-py3-none-any.whl.metadata (5.3 kB)",
                                "Collecting Yappi>=1.0 (from oslo.service>=2.8.0)",
                                "  Downloading yappi-1.7.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (11 kB)",
                                "Requirement already satisfied: iso8601>=0.1.11 in ./.tox/unit/lib/python3.12/site-packages (from python-heatclient) (2.1.0)",
                                "Collecting osc-lib>=1.14.0 (from python-heatclient)",
                                "  Downloading osc_lib-4.4.0-py3-none-any.whl.metadata (3.8 kB)",
                                "Requirement already satisfied: PrettyTable>=0.7.2 in ./.tox/unit/lib/python3.12/site-packages (from python-heatclient) (3.17.0)",
                                "Collecting python-swiftclient>=3.2.0 (from python-heatclient)",
                                "  Downloading python_swiftclient-4.10.0-py3-none-any.whl.metadata (3.9 kB)",
                                "Requirement already satisfied: charset_normalizer<4,>=2 in ./.tox/unit/lib/python3.12/site-packages (from requests>=2.27.1) (3.4.7)",
                                "Requirement already satisfied: idna<4,>=2.5 in ./.tox/unit/lib/python3.12/site-packages (from requests>=2.27.1) (3.11)",
                                "Collecting Mako (from alembic>=0.9.6->magnum>=15.0.0)",
                                "  Downloading mako-1.3.10-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting pycparser (from cffi>=1.14.0->oslo.privsep>=2.7.0)",
                                "  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)",
                                "Requirement already satisfied: autopage>=0.4.0 in ./.tox/unit/lib/python3.12/site-packages (from cliff>=4.0.0->magnum>=15.0.0) (0.6.0)",
                                "Requirement already satisfied: cmd2>=1.0.0 in ./.tox/unit/lib/python3.12/site-packages (from cliff>=4.0.0->magnum>=15.0.0) (3.4.0)",
                                "Requirement already satisfied: pyperclip>=1.8.2 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (1.11.0)",
                                "Requirement already satisfied: rich>=14.3.0 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (14.3.3)",
                                "Requirement already satisfied: rich-argparse>=1.7.1 in ./.tox/unit/lib/python3.12/site-packages (from cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (1.7.2)",
                                "Collecting wrapt>=2.1.0 (from debtcollector>=3.0.0->oslo.concurrency>=4.5.0)",
                                "  Downloading wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (7.4 kB)",
                                "Collecting jsonpointer>=1.9 (from jsonpatch!=1.20,>=1.16->magnum>=15.0.0)",
                                "  Downloading jsonpointer-3.1.1-py3-none-any.whl.metadata (2.4 kB)",
                                "Collecting os-service-types>=1.2.0 (from keystoneauth1>=3.14.0->magnum>=15.0.0)",
                                "  Downloading os_service_types-1.8.2-py3-none-any.whl.metadata (1.9 kB)",
                                "Collecting oslo.cache>=3.11.0 (from keystonemiddleware>=9.0.0->magnum>=15.0.0)",
                                "  Downloading oslo_cache-4.1.1-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting PyJWT>=2.4.0 (from keystonemiddleware>=9.0.0->magnum>=15.0.0)",
                                "  Downloading pyjwt-2.12.1-py3-none-any.whl.metadata (4.1 kB)",
                                "Collecting openstacksdk>=0.15.0 (from osc-lib>=1.14.0->python-heatclient)",
                                "  Downloading openstacksdk-4.10.0-py3-none-any.whl.metadata (12 kB)",
                                "Collecting dogpile.cache>=0.6.5 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)",
                                "  Downloading dogpile_cache-1.5.0-py3-none-any.whl.metadata (5.5 kB)",
                                "Collecting jmespath>=0.9.0 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)",
                                "  Downloading jmespath-1.1.0-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting psutil>=3.2.2 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)",
                                "  Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB)",
                                "Collecting requestsexceptions>=1.2.0 (from openstacksdk>=0.15.0->osc-lib>=1.14.0->python-heatclient)",
                                "  Downloading requestsexceptions-1.4.0-py2.py3-none-any.whl.metadata (1.2 kB)",
                                "Collecting testresources>=2.0.0 (from oslo.db>=8.2.0->magnum>=15.0.0)",
                                "  Downloading testresources-2.0.2.tar.gz (45 kB)",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Getting requirements to build wheel: started",
                                "  Getting requirements to build wheel: finished with status 'done'",
                                "  Installing backend dependencies: started",
                                "  Installing backend dependencies: finished with status 'done'",
                                "  Preparing metadata (pyproject.toml): started",
                                "  Preparing metadata (pyproject.toml): finished with status 'done'",
                                "Collecting testscenarios>=0.4 (from oslo.db>=8.2.0->magnum>=15.0.0)",
                                "  Downloading testscenarios-0.5.0-py2.py3-none-any.whl.metadata (12 kB)",
                                "Collecting futurist>=1.2.0 (from oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading futurist-3.3.0-py3-none-any.whl.metadata (2.1 kB)",
                                "Collecting cachetools>=2.0.0 (from oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Using cached cachetools-7.0.5-py3-none-any.whl.metadata (5.6 kB)",
                                "Collecting amqp>=2.5.2 (from oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading amqp-5.3.1-py3-none-any.whl.metadata (8.9 kB)",
                                "Collecting kombu>=4.6.8 (from oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading kombu-5.6.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting oslo.metrics>=0.2.1 (from oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading oslo_metrics-0.15.1-py3-none-any.whl.metadata (1.5 kB)",
                                "Collecting vine<6.0.0,>=5.0.0 (from amqp>=2.5.2->oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)",
                                "Collecting tzdata>=2025.2 (from kombu>=4.6.8->oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading tzdata-2025.3-py2.py3-none-any.whl.metadata (1.4 kB)",
                                "Requirement already satisfied: packaging in ./.tox/unit/lib/python3.12/site-packages (from kombu>=4.6.8->oslo.messaging>=14.1.0->magnum>=15.0.0) (26.0)",
                                "Collecting prometheus-client>=0.6.0 (from oslo.metrics>=0.2.1->oslo.messaging>=14.1.0->magnum>=15.0.0)",
                                "  Downloading prometheus_client-0.24.1-py3-none-any.whl.metadata (2.1 kB)",
                                "Collecting bcrypt>=3.1.3 (from oslo.middleware>=4.1.0->magnum>=15.0.0)",
                                "  Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (10 kB)",
                                "Collecting Jinja2>=2.10 (from oslo.middleware>=4.1.0->magnum>=15.0.0)",
                                "  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting statsd>=3.2.1 (from oslo.middleware>=4.1.0->magnum>=15.0.0)",
                                "  Downloading statsd-4.0.1-py2.py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting MarkupSafe>=2.0 (from Jinja2>=2.10->oslo.middleware>=4.1.0->magnum>=15.0.0)",
                                "  Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)",
                                "Collecting pyparsing>=2.1.0 (from oslo.utils>=4.2.0->magnum>=15.0.0)",
                                "  Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)",
                                "Requirement already satisfied: wcwidth in ./.tox/unit/lib/python3.12/site-packages (from PrettyTable>=0.7.2->python-heatclient) (0.6.0)",
                                "Collecting warlock>=1.2.0 (from python-glanceclient>=3.2.0->magnum>=15.0.0)",
                                "  Downloading warlock-2.1.0-py3-none-any.whl.metadata (4.0 kB)",
                                "Collecting pyOpenSSL>=17.1.0 (from python-glanceclient>=3.2.0->magnum>=15.0.0)",
                                "  Downloading pyopenssl-26.0.0-py3-none-any.whl.metadata (18 kB)",
                                "Collecting python-openstackclient>=3.12.0 (from python-octaviaclient>=2.1.0->magnum>=15.0.0)",
                                "  Downloading python_openstackclient-9.0.0-py3-none-any.whl.metadata (10 kB)",
                                "Requirement already satisfied: markdown-it-py>=2.2.0 in ./.tox/unit/lib/python3.12/site-packages (from rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (4.0.0)",
                                "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in ./.tox/unit/lib/python3.12/site-packages (from rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (2.20.0)",
                                "Requirement already satisfied: mdurl~=0.1 in ./.tox/unit/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=14.3.0->cmd2>=1.0.0->cliff>=4.0.0->magnum>=15.0.0) (0.1.2)",
                                "Collecting repoze.lru>=0.3 (from Routes>=2.3.1->oslo.service>=2.8.0)",
                                "  Downloading repoze.lru-0.7-py3-none-any.whl.metadata (1.1 kB)",
                                "Collecting networkx>=2.1.0 (from taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)",
                                "Collecting jsonschema>=3.2.0 (from taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting automaton>=1.9.0 (from taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading automaton-3.4.0-py3-none-any.whl.metadata (2.3 kB)",
                                "Collecting tenacity>=6.0.0 (from taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading tenacity-9.1.4-py3-none-any.whl.metadata (1.2 kB)",
                                "Collecting pydot>=1.2.4 (from taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading pydot-4.0.1-py3-none-any.whl.metadata (11 kB)",
                                "Collecting attrs>=22.2.0 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)",
                                "Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting referencing>=0.28.4 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting rpds-py>=0.25.0 (from jsonschema>=3.2.0->taskflow>=2.16.0->magnum>=15.0.0)",
                                "  Downloading rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)",
                                "Requirement already satisfied: testtools in ./.tox/unit/lib/python3.12/site-packages (from testscenarios>=0.4->oslo.db>=8.2.0->magnum>=15.0.0) (2.8.7)",
                                "Collecting simplegeneric (from WSME>=0.8.0->magnum>=15.0.0)",
                                "  Downloading simplegeneric-0.8.1.zip (12 kB)",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Getting requirements to build wheel: started",
                                "  Getting requirements to build wheel: finished with status 'done'",
                                "  Preparing metadata (pyproject.toml): started",
                                "  Preparing metadata (pyproject.toml): finished with status 'done'",
                                "Collecting pytz (from WSME>=0.8.0->magnum>=15.0.0)",
                                "  Downloading pytz-2026.1.post1-py2.py3-none-any.whl.metadata (22 kB)",
                                "Collecting importlib-metadata>=4.4 (from WSME>=0.8.0->magnum>=15.0.0)",
                                "  Downloading importlib_metadata-9.0.0-py3-none-any.whl.metadata (4.5 kB)",
                                "Collecting zipp>=3.20 (from importlib-metadata>=4.4->WSME>=0.8.0->magnum>=15.0.0)",
                                "  Downloading zipp-3.23.0-py3-none-any.whl.metadata (3.6 kB)",
                                "Collecting oauthlib>=3.0.0 (from requests-oauthlib->kubernetes>=24.2.0)",
                                "  Downloading oauthlib-3.3.1-py3-none-any.whl.metadata (7.9 kB)",
                                "Downloading click-8.3.1-py3-none-any.whl (108 kB)",
                                "Downloading diskcache-5.6.3-py3-none-any.whl (45 kB)",
                                "Downloading eventlet-0.41.0-py3-none-any.whl (364 kB)",
                                "Downloading kubernetes-35.0.0-py2.py3-none-any.whl (2.0 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.0/2.0 MB 13.3 MB/s  0:00:00",
                                "Downloading magnum-22.0.0-py3-none-any.whl (763 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 763.5/763.5 kB 14.6 MB/s  0:00:00",
                                "Downloading oslo_concurrency-7.4.0-py3-none-any.whl (48 kB)",
                                "Downloading oslo_config-10.3.0-py3-none-any.whl (132 kB)",
                                "Downloading oslo_context-6.3.0-py3-none-any.whl (20 kB)",
                                "Downloading oslo_log-8.1.0-py3-none-any.whl (77 kB)",
                                "Downloading oslo_privsep-3.10.1-py3-none-any.whl (41 kB)",
                                "Downloading oslo_service-4.5.1-py3-none-any.whl (114 kB)",
                                "Using cached platformdirs-4.9.4-py3-none-any.whl (21 kB)",
                                "Downloading pykube_ng-23.6.0-py3-none-any.whl (26 kB)",
                                "Downloading pyroute2-0.9.5-py3-none-any.whl (480 kB)",
                                "Downloading python_heatclient-5.1.0-py3-none-any.whl (212 kB)",
                                "Downloading python_manilaclient-6.0.0-py3-none-any.whl (410 kB)",
                                "Downloading semver-3.0.4-py3-none-any.whl (17 kB)",
                                "Downloading sherlock-0.4.1-py3-none-any.whl (16 kB)",
                                "Downloading shortuuid-1.0.13-py3-none-any.whl (10 kB)",
                                "Downloading alembic-1.18.4-py3-none-any.whl (263 kB)",
                                "Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB)",
                                "Downloading cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.5/4.5 MB 20.6 MB/s  0:00:00",
                                "Downloading debtcollector-3.1.0-py3-none-any.whl (24 kB)",
                                "Downloading decorator-5.2.1-py3-none-any.whl (9.2 kB)",
                                "Downloading dnspython-2.8.0-py3-none-any.whl (331 kB)",
                                "Downloading durationpy-0.10-py3-none-any.whl (3.9 kB)",
                                "Downloading fasteners-0.20-py3-none-any.whl (18 kB)",
                                "Downloading greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (613 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 613.9/613.9 kB 17.1 MB/s  0:00:00",
                                "Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)",
                                "Downloading jsonpointer-3.1.1-py3-none-any.whl (7.7 kB)",
                                "Downloading keystoneauth1-5.13.1-py3-none-any.whl (343 kB)",
                                "Downloading keystonemiddleware-12.0.0-py3-none-any.whl (141 kB)",
                                "Downloading msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (427 kB)",
                                "Downloading netaddr-1.3.0-py3-none-any.whl (2.3 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.3/2.3 MB 33.7 MB/s  0:00:00",
                                "Downloading os_service_types-1.8.2-py3-none-any.whl (24 kB)",
                                "Downloading osc_lib-4.4.0-py3-none-any.whl (96 kB)",
                                "Downloading openstacksdk-4.10.0-py3-none-any.whl (1.9 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.9/1.9 MB 28.0 MB/s  0:00:00",
                                "Downloading dogpile_cache-1.5.0-py3-none-any.whl (64 kB)",
                                "Downloading jmespath-1.1.0-py3-none-any.whl (20 kB)",
                                "Downloading oslo_cache-4.1.1-py3-none-any.whl (65 kB)",
                                "Downloading oslo_db-18.0.0-py3-none-any.whl (152 kB)",
                                "Downloading oslo_i18n-6.7.2-py3-none-any.whl (47 kB)",
                                "Downloading oslo_messaging-17.3.0-py3-none-any.whl (201 kB)",
                                "Downloading amqp-5.3.1-py3-none-any.whl (50 kB)",
                                "Downloading vine-5.1.0-py3-none-any.whl (9.6 kB)",
                                "Using cached cachetools-7.0.5-py3-none-any.whl (13 kB)",
                                "Downloading futurist-3.3.0-py3-none-any.whl (43 kB)",
                                "Downloading kombu-5.6.2-py3-none-any.whl (214 kB)",
                                "Downloading oslo_metrics-0.15.1-py3-none-any.whl (14 kB)",
                                "Downloading oslo_middleware-8.0.0-py3-none-any.whl (65 kB)",
                                "Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB)",
                                "Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)",
                                "Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)",
                                "Downloading oslo_policy-5.0.0-py3-none-any.whl (89 kB)",
                                "Downloading oslo_reports-3.7.0-py3-none-any.whl (53 kB)",
                                "Downloading oslo_serialization-5.9.1-py3-none-any.whl (27 kB)",
                                "Downloading oslo_upgradecheck-2.7.1-py3-none-any.whl (14 kB)",
                                "Downloading oslo_utils-10.0.0-py3-none-any.whl (136 kB)",
                                "Downloading oslo_versionedobjects-3.9.0-py3-none-any.whl (86 kB)",
                                "Downloading Paste-3.10.1-py3-none-any.whl (289 kB)",
                                "Downloading PasteDeploy-3.1.0-py3-none-any.whl (16 kB)",
                                "Using cached pbr-7.0.3-py2.py3-none-any.whl (131 kB)",
                                "Downloading pecan-1.8.0-py3-none-any.whl (144 kB)",
                                "Downloading mako-1.3.10-py3-none-any.whl (78 kB)",
                                "Downloading prometheus_client-0.24.1-py3-none-any.whl (64 kB)",
                                "Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB)",
                                "Downloading pycadf-4.0.1-py3-none-any.whl (44 kB)",
                                "Downloading pyjwt-2.12.1-py3-none-any.whl (29 kB)",
                                "Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB)",
                                "Downloading python_barbicanclient-7.3.0-py3-none-any.whl (88 kB)",
                                "Downloading python_cinderclient-9.9.0-py3-none-any.whl (256 kB)",
                                "Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)",
                                "Downloading python_glanceclient-4.11.0-py3-none-any.whl (208 kB)",
                                "Downloading pyopenssl-26.0.0-py3-none-any.whl (57 kB)",
                                "Downloading python_keystoneclient-5.8.0-py3-none-any.whl (397 kB)",
                                "Downloading python_neutronclient-11.8.0-py3-none-any.whl (296 kB)",
                                "Downloading python_novaclient-18.12.0-py3-none-any.whl (336 kB)",
                                "Downloading python_octaviaclient-3.13.0-py3-none-any.whl (113 kB)",
                                "Downloading python_openstackclient-9.0.0-py3-none-any.whl (1.1 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.1/1.1 MB 38.7 MB/s  0:00:00",
                                "Downloading python_swiftclient-4.10.0-py3-none-any.whl (88 kB)",
                                "Downloading requestsexceptions-1.4.0-py2.py3-none-any.whl (3.8 kB)",
                                "Downloading rfc3986-2.0.0-py2.py3-none-any.whl (31 kB)",
                                "Downloading Routes-2.5.1-py2.py3-none-any.whl (40 kB)",
                                "Downloading repoze.lru-0.7-py3-none-any.whl (10 kB)",
                                "Using cached setuptools-82.0.1-py3-none-any.whl (1.0 MB)",
                                "Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)",
                                "Downloading sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 3.3/3.3 MB 43.9 MB/s  0:00:00",
                                "Downloading statsd-4.0.1-py2.py3-none-any.whl (13 kB)",
                                "Downloading taskflow-6.2.0-py3-none-any.whl (490 kB)",
                                "Downloading automaton-3.4.0-py3-none-any.whl (23 kB)",
                                "Downloading jsonschema-4.26.0-py3-none-any.whl (90 kB)",
                                "Downloading attrs-26.1.0-py3-none-any.whl (67 kB)",
                                "Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)",
                                "Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.1/2.1 MB 55.6 MB/s  0:00:00",
                                "Downloading pydot-4.0.1-py3-none-any.whl (37 kB)",
                                "Downloading referencing-0.37.0-py3-none-any.whl (26 kB)",
                                "Downloading rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394 kB)",
                                "Downloading tenacity-9.1.4-py3-none-any.whl (28 kB)",
                                "Downloading testscenarios-0.5.0-py2.py3-none-any.whl (21 kB)",
                                "Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)",
                                "Downloading tzdata-2025.3-py2.py3-none-any.whl (348 kB)",
                                "Downloading warlock-2.1.0-py3-none-any.whl (10 kB)",
                                "Downloading WebOb-1.8.9-py2.py3-none-any.whl (115 kB)",
                                "Downloading websocket_client-1.9.0-py3-none-any.whl (82 kB)",
                                "Downloading werkzeug-3.1.7-py3-none-any.whl (226 kB)",
                                "Downloading wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (121 kB)",
                                "Downloading WSME-0.12.1-py3-none-any.whl (59 kB)",
                                "Downloading importlib_metadata-9.0.0-py3-none-any.whl (27 kB)",
                                "Downloading yappi-1.7.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (82 kB)",
                                "Downloading zipp-3.23.0-py3-none-any.whl (10 kB)",
                                "Downloading pycparser-3.0-py3-none-any.whl (48 kB)",
                                "Downloading pytz-2026.1.post1-py2.py3-none-any.whl (510 kB)",
                                "Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)",
                                "Downloading oauthlib-3.3.1-py3-none-any.whl (160 kB)",
                                "Building wheels for collected packages: haproxyadmin, testresources, simplegeneric",
                                "  Building wheel for haproxyadmin (pyproject.toml): started",
                                "  Building wheel for haproxyadmin (pyproject.toml): finished with status 'done'",
                                "  Created wheel for haproxyadmin: filename=haproxyadmin-0.2.4-py3-none-any.whl size=37208 sha256=d7410846da8f542b0c0f42cfc223c59e5011b67aa6e0464d5abc8af449b76f8e",
                                "  Stored in directory: /home/zuul/.cache/pip/wheels/f8/a4/d2/ca8e7bcb86a3513744e388395fdc7c9b2d41bdffceb804f578",
                                "  Building wheel for testresources (pyproject.toml): started",
                                "  Building wheel for testresources (pyproject.toml): finished with status 'done'",
                                "  Created wheel for testresources: filename=testresources-2.0.2-py2.py3-none-any.whl size=34284 sha256=f784cafc23ccb0f8a0811e697cb6cd309295e4bd0792a25dbda97ccce07085e0",
                                "  Stored in directory: /home/zuul/.cache/pip/wheels/6f/bd/38/5f44565796c558350457d3ffee0ab83be96f3d99e262a219b9",
                                "  Building wheel for simplegeneric (pyproject.toml): started",
                                "  Building wheel for simplegeneric (pyproject.toml): finished with status 'done'",
                                "  Created wheel for simplegeneric: filename=simplegeneric-0.8.1-py3-none-any.whl size=5103 sha256=62e11c549cd24042a471286c7efcb9b8f6216701eb4778b8bd2bfe84c037ee03",
                                "  Stored in directory: /home/zuul/.cache/pip/wheels/bf/7f/ac/c96a7918d97103348ae720bdf93aa7f5458f5efb90718e9873",
                                "Successfully built haproxyadmin testresources simplegeneric",
                                "Installing collected packages: statsd, simplegeneric, requestsexceptions, repoze.lru, pytz, durationpy, zipp, Yappi, wrapt, websocket-client, WebOb, vine, tzdata, typing-extensions, tenacity, six, shortuuid, sherlock, setuptools, semver, rpds-py, rfc3986, pyroute2, pyparsing, PyJWT, pycparser, psutil, prometheus-client, platformdirs, PasteDeploy, oauthlib, networkx, netaddr, msgpack, MarkupSafe, jsonpointer, jmespath, greenlet, fasteners, dnspython, diskcache, decorator, click, cachetools, bcrypt, attrs, Werkzeug, SQLAlchemy, Routes, requests-oauthlib, referencing, python-swiftclient, python-dateutil, pykube-ng, pydot, pbr, Paste, Mako, jsonpatch, Jinja2, importlib-metadata, haproxyadmin, eventlet, dogpile.cache, debtcollector, cffi, automaton, amqp, WSME, testscenarios, testresources, pecan, oslo.i18n, oslo.context, os-service-types, kubernetes, kombu, jsonschema-specifications, futurist, cryptography, alembic, pyOpenSSL, oslo.utils, oslo.config, keystoneauth1, jsonschema, warlock, python-cinderclient, oslo.serialization, oslo.middleware, oslo.db, oslo.concurrency, openstacksdk, taskflow, python-novaclient, python-keystoneclient, python-glanceclient, python-barbicanclient, pycadf, oslo.reports, oslo.policy, oslo.log, osc-lib, python-openstackclient, python-neutronclient, python-manilaclient, python-heatclient, oslo.upgradecheck, oslo.service, oslo.privsep, oslo.metrics, oslo.cache, python-octaviaclient, oslo.messaging, keystonemiddleware, oslo.versionedobjects, magnum",
                                "",
                                "Successfully installed Jinja2-3.1.6 Mako-1.3.10 MarkupSafe-3.0.3 Paste-3.10.1 PasteDeploy-3.1.0 PyJWT-2.12.1 Routes-2.5.1 SQLAlchemy-2.0.48 WSME-0.12.1 WebOb-1.8.9 Werkzeug-3.1.7 Yappi-1.7.6 alembic-1.18.4 amqp-5.3.1 attrs-26.1.0 automaton-3.4.0 bcrypt-5.0.0 cachetools-7.0.5 cffi-2.0.0 click-8.3.1 cryptography-46.0.6 debtcollector-3.1.0 decorator-5.2.1 diskcache-5.6.3 dnspython-2.8.0 dogpile.cache-1.5.0 durationpy-0.10 eventlet-0.41.0 fasteners-0.20 futurist-3.3.0 greenlet-3.3.2 haproxyadmin-0.2.4 importlib-metadata-9.0.0 jmespath-1.1.0 jsonpatch-1.33 jsonpointer-3.1.1 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 keystoneauth1-5.13.1 keystonemiddleware-12.0.0 kombu-5.6.2 kubernetes-35.0.0 magnum-22.0.0 msgpack-1.1.2 netaddr-1.3.0 networkx-3.6.1 oauthlib-3.3.1 openstacksdk-4.10.0 os-service-types-1.8.2 osc-lib-4.4.0 oslo.cache-4.1.1 oslo.concurrency-7.4.0 oslo.config-10.3.0 oslo.context-6.3.0 oslo.db-18.0.0 oslo.i18n-6.7.2 oslo.log-8.1.0 oslo.messaging-17.3.0 oslo.metrics-0.15.1 oslo.middleware-8.0.0 oslo.policy-5.0.0 oslo.privsep-3.10.1 oslo.reports-3.7.0 oslo.serialization-5.9.1 oslo.service-4.5.1 oslo.upgradecheck-2.7.1 oslo.utils-10.0.0 oslo.versionedobjects-3.9.0 pbr-7.0.3 pecan-1.8.0 platformdirs-4.9.4 prometheus-client-0.24.1 psutil-7.2.2 pyOpenSSL-26.0.0 pycadf-4.0.1 pycparser-3.0 pydot-4.0.1 pykube-ng-23.6.0 pyparsing-3.3.2 pyroute2-0.9.5 python-barbicanclient-7.3.0 python-cinderclient-9.9.0 python-dateutil-2.9.0.post0 python-glanceclient-4.11.0 python-heatclient-5.1.0 python-keystoneclient-5.8.0 python-manilaclient-6.0.0 python-neutronclient-11.8.0 python-novaclient-18.12.0 python-octaviaclient-3.13.0 python-openstackclient-9.0.0 python-swiftclient-4.10.0 pytz-2026.1.post1 referencing-0.37.0 repoze.lru-0.7 requests-oauthlib-2.0.0 requestsexceptions-1.4.0 rfc3986-2.0.0 rpds-py-0.30.0 semver-3.0.4 setuptools-82.0.1 sherlock-0.4.1 shortuuid-1.0.13 simplegeneric-0.8.1 six-1.17.0 statsd-4.0.1 taskflow-6.2.0 tenacity-9.1.4 testresources-2.0.2 testscenarios-0.5.0 typing-extensions-4.15.0 tzdata-2025.3 vine-5.1.0 warlock-2.1.0 websocket-client-1.9.0 wrapt-2.1.2 zipp-3.23.0",
                                "unit: 49709 I exit 0 (39.89 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install certifi 'click>=8.0.4' 'diskcache>=5.6.1' 'eventlet>=0.33.1' 'haproxyadmin>=0.2.4' 'kubernetes>=24.2.0' 'magnum>=15.0.0' 'oslo.concurrency>=4.5.0' 'oslo.config>=8.8.0' 'oslo.context>=4.1.0' 'oslo.log>=4.7.0' 'oslo.privsep>=2.7.0' 'oslo.service>=2.8.0' 'platformdirs>=2.4.0' pykube-ng 'pyroute2>=0.3.4' python-heatclient 'python-manilaclient>=3.3.2' 'requests>=2.27.1' 'semver>=2.0.0' 'sherlock>=0.4.1' shortuuid pid=6809 [tox/execute/api.py:311]",
                                "unit: 49710 W install_package> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/api.py:515]",
                                "Processing ./.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Getting requirements to build wheel: started",
                                "  Getting requirements to build wheel: finished with status 'done'",
                                "  Preparing metadata (pyproject.toml): started",
                                "  Preparing metadata (pyproject.toml): finished with status 'done'",
                                "Building wheels for collected packages: magnum-cluster-api",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): started",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): still running...",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): finished with status 'done'",
                                "  Created wheel for magnum-cluster-api: filename=magnum_cluster_api-0.36.1-cp38-abi3-linux_x86_64.whl size=7522838 sha256=595719f94b6ac1b95c66858dde02c82fbfd841b0749811e1599d79e0392974d1",
                                "  Stored in directory: /home/zuul/.cache/pip/wheels/72/fe/7b/6e6c4c0adccd095db1bd84d2ca0ca584fc8c4a38a0c6fe3a5b",
                                "Successfully built magnum-cluster-api",
                                "Installing collected packages: magnum-cluster-api",
                                "Successfully installed magnum-cluster-api-0.36.1",
                                "unit: 167755 I exit 0 (118.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz pid=7441 [tox/execute/api.py:311]",
                                ".pkg: 167756 W _exit> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command _exit with args {}",
                                "Backend: Wrote response {'return': 0} to /tmp/pep517__exit-sy0ztzdx.json",
                                ".pkg: 167759 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=6634 [tox/execute/api.py:311]",
                                ".pkg: 167775 D delete package /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/1/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/python/virtual_env/package/pyproject.py:245]",
                                "  unit: OK (167.56 seconds)",
                                "  congratulations :) (167.59 seconds)"
                            ],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000053-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:44.098674Z",
                            "start": "2026-04-02T12:44:55.440229Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000053",
                        "name": "Run tox without tests"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "tempfile",
                            "changed": true,
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "path": null,
                                    "prefix": "ansible.",
                                    "state": "file",
                                    "suffix": ""
                                }
                            },
                            "mode": "0600",
                            "owner": "zuul",
                            "path": "/tmp/ansible.f9ld1sb3",
                            "size": 0,
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:44.426064Z",
                            "start": "2026-04-02T12:47:44.107397Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000054",
                        "name": "Create a tempfile to save tox showconfig"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version",
                                "--quiet"
                            ],
                            "delta": "0:00:00.283205",
                            "end": "2026-04-02 12:47:44.950785",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version --quiet",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000055-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:47:44.667580",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000055-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:45.006937Z",
                            "start": "2026-04-02T12:47:44.454193Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000055",
                        "name": "Detect tox version"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "/home/zuul/.local/tox/bin/tox   config   -eunit  > /tmp/ansible.f9ld1sb3",
                            "delta": "0:00:00.319260",
                            "end": "2026-04-02 12:47:45.574372",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox   config   -eunit  > /tmp/ansible.f9ld1sb3",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000056-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:47:45.255112",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000056-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:46.052723Z",
                            "start": "2026-04-02T12:47:45.033159Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000056",
                        "name": "Get tox envlist config"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "tox_install_sibling_packages",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "project_dir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "projects": [],
                                    "tox_constraints_file": null,
                                    "tox_package_name": null,
                                    "tox_show_config": "/tmp/ansible.f9ld1sb3"
                                }
                            },
                            "msg": "No name in setup.cfg, skipping siblings"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:46.630647Z",
                            "start": "2026-04-02T12:47:46.058060Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000057",
                        "name": "Install any sibling python packages"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/ansible.f9ld1sb3",
                                    "state": "absent"
                                },
                                "before": {
                                    "path": "/tmp/ansible.f9ld1sb3",
                                    "state": "file"
                                }
                            },
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/ansible.f9ld1sb3",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "absent",
                                    "unsafe_writes": false
                                }
                            },
                            "path": "/tmp/ansible.f9ld1sb3",
                            "state": "absent"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:47.002117Z",
                            "start": "2026-04-02T12:47:46.640096Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000058",
                        "name": "Remove tempfile"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "debug",
                            "changed": false,
                            "msg": "/home/zuul/.local/tox/bin/tox   -eunit  -vv --skip-missing-interpreters=false"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:47:47.054269Z",
                            "start": "2026-04-02T12:47:47.007856Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000012",
                        "name": "Emit tox command"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "-eunit",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:02:18.039414",
                            "end": "2026-04-02 12:50:05.333837",
                            "failed": true,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox   -eunit  -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/vexxhost/magnum-cluster-api",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000014-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-04-02 12:47:47.294423",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: 187 D setup logging to DEBUG on pid 11655 [tox/report.py:229]\nunit: 224 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\nunit: 228 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]\nunit: 228 D filesystem is case-sensitive [python_discovery/_compat.py:18]\nunit: 234 D got python info of /usr/bin/python3.12 from /home/zuul/.cache/virtualenv/py_info/4/f0d7a494a3f776233427cb85a7e198c7cf4913b50a203c6febc678cc4f5bf265.json [virtualenv/app_data/via_disk_folder.py:139]\nunit: 234 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]\nunit: 234 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]\nunit: 235 D symlink on filesystem does work [virtualenv/info.py:51]\nunit: 235 D filesystem is case-sensitive [virtualenv/info.py:28]\n.pkg: 263 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\n.pkg: 264 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]\n.pkg: 264 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]\n.pkg: 264 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]\n.pkg: 266 W _optional_hooks> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command _optional_hooks with args {}\nBackend: Wrote response {'return': {'get_requires_for_build_sdist': True, 'prepare_metadata_for_build_wheel': True, 'get_requires_for_build_wheel': True, 'build_editable': True, 'get_requires_for_build_editable': True, 'prepare_metadata_for_build_editable': True}} to /tmp/pep517__optional_hooks-z2lmknnz.json\n.pkg: 313 I exit None (0.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]\n.pkg: 314 W get_requires_for_build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command get_requires_for_build_sdist with args {'config_settings': None}\nBackend: Wrote response {'return': []} to /tmp/pep517_get_requires_for_build_sdist-nupiwjs5.json\n.pkg: 317 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]\n.pkg: 318 W build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command build_sdist with args {'sdist_directory': '/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist', 'config_settings': None}\nRunning `maturin pep517 write-sdist --sdist-directory /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist`\n\ud83d\udce6 Including license file `LICENSE`\n\ud83c\udf79 Building a mixed python/rust project\n\ud83d\udd17 Found pyo3 bindings with abi3 support\n\ud83d\udce1 Using build options features from pyproject.toml\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/serde_gtmpl/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/helm/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/cluster_feature_derive/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\nFrom `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/Cargo.toml`:\nwarning: manifest has no description, license, license-file, documentation, homepage or repository\n  |\n  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info\n\ud83d\udce6 Built source distribution to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist/magnum_cluster_api-0.36.1.tar.gz\nmagnum_cluster_api-0.36.1.tar.gz\nBackend: Wrote response {'return': 'magnum_cluster_api-0.36.1.tar.gz'} to /tmp/pep517_build_sdist-q11qb71_.json\n.pkg: 1358 I exit None (1.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]\n.pkg: 1366 D package .tmp/package/2/magnum_cluster_api-0.36.1.tar.gz copied to .pkg/dist/magnum_cluster_api-0.36.1.tar.gz (/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox) [tox/util/file_view.py:30]\nunit: 1367 W install_package> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/api.py:515]\nProcessing ./.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n  Preparing metadata (pyproject.toml): started\n  Preparing metadata (pyproject.toml): finished with status 'done'\nBuilding wheels for collected packages: magnum-cluster-api\n  Building wheel for magnum-cluster-api (pyproject.toml): started\n  Building wheel for magnum-cluster-api (pyproject.toml): still running...\n  Building wheel for magnum-cluster-api (pyproject.toml): finished with status 'done'\n  Created wheel for magnum-cluster-api: filename=magnum_cluster_api-0.36.1-cp38-abi3-linux_x86_64.whl size=7522839 sha256=10fa29bd215075bc61d2c7378732b1bc2b740091b6949fd6741a21dfd79bc4e3\n  Stored in directory: /home/zuul/.cache/pip/wheels/34/da/f9/cb759d2c4d485d6ccdbd7a0b0f5060e5893e22b149da909269\nSuccessfully built magnum-cluster-api\nInstalling collected packages: magnum-cluster-api\n  Attempting uninstall: magnum-cluster-api\n    Found existing installation: magnum-cluster-api 0.36.1\n    Uninstalling magnum-cluster-api-0.36.1:\n      Successfully uninstalled magnum-cluster-api-0.36.1\nSuccessfully installed magnum-cluster-api-0.36.1\nunit: 114581 I exit 0 (113.21 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz pid=11837 [tox/execute/api.py:311]\nunit: 114582 W commands[0]> pytest magnum_cluster_api/tests/unit/ [tox/tox_env/api.py:515]\n============================= test session starts ==============================\nplatform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0\ncachedir: .tox/unit/.pytest_cache\nrootdir: /home/zuul/src/github.com/vexxhost/magnum-cluster-api\nconfigfile: pyproject.toml\nplugins: mock-3.15.1\ncollected 185 items\n\nmagnum_cluster_api/tests/unit/cmd/test_image_loader.py ..                [  1%]\nmagnum_cluster_api/tests/unit/test_driver.py ........FFFFFFFF........... [ 15%]\n.........                                                                [ 20%]\nmagnum_cluster_api/tests/unit/test_go_template.py ...................... [ 32%]\n.................................................                        [ 58%]\nmagnum_cluster_api/tests/unit/test_helm.py ........                      [ 63%]\nmagnum_cluster_api/tests/unit/test_image_utils.py ..                     [ 64%]\nmagnum_cluster_api/tests/unit/test_images.py ..........................  [ 78%]\nmagnum_cluster_api/tests/unit/test_objects.py .......                    [ 82%]\nmagnum_cluster_api/tests/unit/test_resources.py ...............          [ 90%]\nmagnum_cluster_api/tests/unit/test_sync.py ..                            [ 91%]\nmagnum_cluster_api/tests/unit/test_utils.py .F..............             [100%]\n\n=================================== FAILURES ===================================\n_ TestDriver.test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=True] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd8cb0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a029cd10>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0278410>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": self.node_group.name,\n                    }\n                ],\n                after=[\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:385: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a026fe90>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd8cb0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a029cd10>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0278410>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:365: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=False] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd8e30>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a027c620>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a02915e0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": self.node_group.name,\n                    }\n                ],\n                after=[\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:385: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a0284800>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd8e30>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a027c620>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a02915e0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:365: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=True] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9010>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0292ea0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a018f5c0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": self.node_group.name,\n                    }\n                ],\n                after=[\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:385: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a01787a0>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9010>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0292ea0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a018f5c0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:365: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=False] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd90a0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0284d40>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01651f0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": self.node_group.name,\n                    }\n                ],\n                after=[\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:385: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a0165670>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd90a0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0284d40>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01651f0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:365: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=True] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9520>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a01782f0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a029e4b0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    {\n                        \"name\": self.node_group.name,\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                ],\n                after=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:430: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a029dfd0>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9520>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a01782f0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a029e4b0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:392: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=False] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd96a0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0178320>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01d0230>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    {\n                        \"name\": self.node_group.name,\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                ],\n                after=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:430: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a01cbaa0>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd96a0>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a0178320>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01d0230>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:392: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=True] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9880>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a01d3830>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0342360>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    {\n                        \"name\": self.node_group.name,\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                ],\n                after=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:430: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a033bf50>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9880>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a01d3830>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0342360>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:392: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=False] _\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9910>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a03423f0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0338aa0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n        with requests_mock as rsps:\n            self.setup_node_group_tests(\n                rsps,\n                before=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    {\n                        \"name\": self.node_group.name,\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                ],\n                after=[\n                    {\n                        \"name\": \"unrelated-machine-deployment\",\n                        \"replicas\": 1,\n                        \"metadata\": {\n                            \"annotations\": {},\n                        },\n                    },\n                    resources.mutate_machine_deployment(\n                        context,\n                        self.cluster,\n                        self.node_group,\n                        {\n                            \"name\": self.node_group.name,\n                        },\n                    ),\n                ],\n            )\n    \n>           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)\n\nmagnum_cluster_api/tests/unit/test_driver.py:430: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup\n    self._update_nodegroup(context, cluster, nodegroup)\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup\n    resources.migrate_machineset_failure_domain(\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain\n    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group\n    return list(mss)\n           ^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__\n    return iter(self.query_cache[\"objects\"])\n                ^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache\n    cache[\"response\"] = self.execute().json()\n                        ^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute\n    r = self.api.get(**kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get\n    return self.session.get(*args, **self.get_kwargs(**kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send\n    response = self._do_send(request, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send\n    return self._on_request(adapter, request, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>\nadapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a033b2c0>\nrequest = <PreparedRequest [GET]>, retries = None\nkwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}\nrequest_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'\nmatch = None\nmatch_failed_reasons = ['URL does not match', 'Method does not match']\nresp_callback = None\nerror_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"\n\n    def _on_request(\n        self,\n        adapter: \"HTTPAdapter\",\n        request: \"PreparedRequest\",\n        *,\n        retries: Optional[\"_Retry\"] = None,\n        **kwargs: Any,\n    ) -> \"models.Response\":\n        # add attributes params and req_kwargs to 'request' object for further match comparison\n        # original request object does not have these attributes\n        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]\n        request.req_kwargs = kwargs  # type: ignore[attr-defined]\n        request_url = str(request.url)\n        request.body = self._read_filelike_body(request.body)\n    \n        match, match_failed_reasons = self._find_match(request)\n        resp_callback = self.response_callback\n    \n        if match is None:\n            if any(\n                [\n                    p.match(request_url)\n                    if isinstance(p, Pattern)\n                    else request_url.startswith(p)\n                    for p in self.passthru_prefixes\n                ]\n            ):\n                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})\n                return self._real_send(adapter, request, **kwargs)  # type: ignore\n    \n            error_msg = (\n                \"Connection refused by Responses - the call doesn't \"\n                \"match any registered mock.\\n\\n\"\n                \"Request: \\n\"\n                f\"- {request.method} {request_url}\\n\\n\"\n                \"Available matches:\\n\"\n            )\n            for i, m in enumerate(self.registered()):\n                error_msg += \"- {} {} {}\\n\".format(\n                    m.method, m.url, match_failed_reasons[i]\n                )\n    \n            if self.passthru_prefixes:\n                error_msg += \"Passthru prefixes:\\n\"\n                for p in self.passthru_prefixes:\n                    error_msg += f\"- {p}\\n\"\n    \n            response = ConnectionError(error_msg)\n            response.request = request\n    \n            self._calls.add(request, response)\n>           raise response\nE           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.\nE           \nE           Request: \nE           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker\nE           \nE           Available matches:\nE           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match\nE           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <test_driver.TestDriver object at 0x7f85a3fd9910>\ncontext = <magnum.common.context.RequestContext object at 0x7f85a03423f0>\nubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0338aa0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_update_nodegroup_with_multiple_node_groups(\n        self, context, ubuntu_driver, requests_mock\n    ):\n>       with requests_mock as rsps:\n\nmagnum_cluster_api/tests/unit/test_driver.py:392: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__\n    self.stop(allow_assert=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True\n\n    def stop(self, allow_assert: bool = True) -> None:\n        if self._patcher:\n            # prevent stopping unstarted patchers\n            self._patcher.stop()\n    \n            # once patcher is stopped, clean it. This is required to create a new\n            # fresh patcher on self.start()\n            self._patcher = None\n    \n        if not self.assert_all_requests_are_fired:\n            return\n    \n        if not allow_assert:\n            return\n    \n        not_called = [m for m in self.registered() if m.call_count == 0]\n        if not_called:\n>           raise AssertionError(\n                \"Not all requests have been executed {!r}\".format(\n                    [(match.method, match.url) for match in not_called]\n                )\n            )\nE           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]\n\n.tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError\n_ TestGenerateCloudControllerManagerConfig.test_generate_cloud_controller_manager_config _\n\nself = <test_utils.TestGenerateCloudControllerManagerConfig object at 0x7f85a3cfc710>\nmocker = <pytest_mock.plugin.MockerFixture object at 0x7f85a0176ba0>\nrequests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>\n\n    def test_generate_cloud_controller_manager_config(self, mocker, requests_mock):\n        with requests_mock as rsps:\n            rsps.add(self._response_for_cloud_config_secret())\n    \n            config = utils.generate_cloud_controller_manager_config(\n                self.context, self.pykube_api, self.cluster\n            )\n    \n>       assert config == textwrap.dedent(\n            \"\"\"\\\n            [Global]\n            auth-url=http://localhost/v3\n            region=RegionOne\n            application-credential-id=fake_application_credential_id\n            application-credential-secret=fake_application_credential_secret\n            tls-insecure=false\n    \n            [LoadBalancer]\n            lb-provider=amphora\n            lb-method=ROUND_ROBIN\n            create-monitor=True\n            \"\"\"\n        )\nE       AssertionError: assert '[Global]\\nau...onitor=True\\n' == '[Global]\\nau...onitor=True\\n'\nE         \nE         Skipping 221 identical leading characters in diff, use -v to show\nE         - er=amphora\nE         + er=amphorav2\nE         ?           ++\nE           lb-method=ROUND_ROBIN\nE           create-monitor=True\n\nmagnum_cluster_api/tests/unit/test_utils.py:102: AssertionError\n=============================== warnings summary ===============================\n.tox/unit/lib/python3.12/site-packages/magnum/common/context.py:13\n  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/magnum/common/context.py:13: EventletDeprecationWarning: \n  Eventlet is deprecated. It is currently being maintained in bugfix mode, and\n  we strongly recommend against using it for new projects.\n  \n  If you are already using Eventlet, we recommend migrating to a different\n  framework.  For more detail see\n  https://eventlet.readthedocs.io/en/latest/asyncio/migration.html\n  \n    from eventlet.green import threading\n\n.tox/unit/lib/python3.12/site-packages/oslo_utils/eventletutils.py:36\n  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/oslo_utils/eventletutils.py:36: DeprecationWarning: eventletutils module is deprecated and will be removed.\n    debtcollector.deprecate(\n\n.tox/unit/lib/python3.12/site-packages/webob/compat.py:5\n  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/webob/compat.py:5: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13\n    from cgi import parse_header\n\n.tox/unit/lib/python3.12/site-packages/oslo_service/eventlet_backdoor.py:36\n  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/oslo_service/eventlet_backdoor.py:36: DeprecationWarning: The 'oslo_service.eventlet_backdoor' module usage is deprecated and will be removed in version '2026.2': The 'eventlet_backdoor' module is deprecated and will be removed in version 2026.2. This module is not being replaced. Please migrate away from using it and remove any dependencies on this module.\n    removals.removed_module(\n\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=True]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=True]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=False]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=False]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=True]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=True]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=False]\nmagnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=False]\n  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/eventlet/__init__.py:83: DeprecationWarning: Using fork() is a bad idea, and there is no guarantee eventlet will work. See https://eventlet.readthedocs.io/en/latest/fork.html for more details.\n    warnings.warn(\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n=========================== short test summary info ============================\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=True]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=False]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=True]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=False]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=True]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=False]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=True]\nFAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=False]\nFAILED magnum_cluster_api/tests/unit/test_utils.py::TestGenerateCloudControllerManagerConfig::test_generate_cloud_controller_manager_config\n================= 9 failed, 176 passed, 12 warnings in 20.31s ==================\nunit: 137942 C exit 1 (23.36 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> pytest magnum_cluster_api/tests/unit/ pid=16018 [tox/execute/api.py:311]\n.pkg: 137945 W _exit> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]\nBackend: run command _exit with args {}\nBackend: Wrote response {'return': 0} to /tmp/pep517__exit-0udk6bf_.json\n.pkg: 137948 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]\n.pkg: 137964 D delete package /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/python/virtual_env/package/pyproject.py:245]\n  unit: FAIL code 1 (137.75=setup[114.39]+cmd[23.36] seconds)\n  evaluation failed :( (137.78 seconds)",
                            "stdout_lines": [
                                "ROOT: 187 D setup logging to DEBUG on pid 11655 [tox/report.py:229]",
                                "unit: 224 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                "unit: 228 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]",
                                "unit: 228 D filesystem is case-sensitive [python_discovery/_compat.py:18]",
                                "unit: 234 D got python info of /usr/bin/python3.12 from /home/zuul/.cache/virtualenv/py_info/4/f0d7a494a3f776233427cb85a7e198c7cf4913b50a203c6febc678cc4f5bf265.json [virtualenv/app_data/via_disk_folder.py:139]",
                                "unit: 234 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]",
                                "unit: 234 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]",
                                "unit: 235 D symlink on filesystem does work [virtualenv/info.py:51]",
                                "unit: 235 D filesystem is case-sensitive [virtualenv/info.py:28]",
                                ".pkg: 263 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                ".pkg: 264 I find interpreter for spec PythonSpec(path=/home/zuul/.local/tox/bin/python3) [python_discovery/_discovery.py:62]",
                                ".pkg: 264 I proposed PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:71]",
                                ".pkg: 264 D accepted PythonInfo(spec=CPython3.12.3.final.0-64-x86_64, system=/usr/bin/python3.12, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:75]",
                                ".pkg: 266 W _optional_hooks> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command _optional_hooks with args {}",
                                "Backend: Wrote response {'return': {'get_requires_for_build_sdist': True, 'prepare_metadata_for_build_wheel': True, 'get_requires_for_build_wheel': True, 'build_editable': True, 'get_requires_for_build_editable': True, 'prepare_metadata_for_build_editable': True}} to /tmp/pep517__optional_hooks-z2lmknnz.json",
                                ".pkg: 313 I exit None (0.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]",
                                ".pkg: 314 W get_requires_for_build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command get_requires_for_build_sdist with args {'config_settings': None}",
                                "Backend: Wrote response {'return': []} to /tmp/pep517_get_requires_for_build_sdist-nupiwjs5.json",
                                ".pkg: 317 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]",
                                ".pkg: 318 W build_sdist> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command build_sdist with args {'sdist_directory': '/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist', 'config_settings': None}",
                                "Running `maturin pep517 write-sdist --sdist-directory /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist`",
                                "\ud83d\udce6 Including license file `LICENSE`",
                                "\ud83c\udf79 Building a mixed python/rust project",
                                "\ud83d\udd17 Found pyo3 bindings with abi3 support",
                                "\ud83d\udce1 Using build options features from pyproject.toml",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/serde_gtmpl/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/helm/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/crates/cluster_feature_derive/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "From `cargo package --list --allow-dirty --manifest-path /home/zuul/src/github.com/vexxhost/magnum-cluster-api/Cargo.toml`:",
                                "warning: manifest has no description, license, license-file, documentation, homepage or repository",
                                "  |",
                                "  = note: see https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info",
                                "\ud83d\udce6 Built source distribution to /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.pkg/dist/magnum_cluster_api-0.36.1.tar.gz",
                                "magnum_cluster_api-0.36.1.tar.gz",
                                "Backend: Wrote response {'return': 'magnum_cluster_api-0.36.1.tar.gz'} to /tmp/pep517_build_sdist-q11qb71_.json",
                                ".pkg: 1358 I exit None (1.04 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]",
                                ".pkg: 1366 D package .tmp/package/2/magnum_cluster_api-0.36.1.tar.gz copied to .pkg/dist/magnum_cluster_api-0.36.1.tar.gz (/home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox) [tox/util/file_view.py:30]",
                                "unit: 1367 W install_package> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/api.py:515]",
                                "Processing ./.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Getting requirements to build wheel: started",
                                "  Getting requirements to build wheel: finished with status 'done'",
                                "  Preparing metadata (pyproject.toml): started",
                                "  Preparing metadata (pyproject.toml): finished with status 'done'",
                                "Building wheels for collected packages: magnum-cluster-api",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): started",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): still running...",
                                "  Building wheel for magnum-cluster-api (pyproject.toml): finished with status 'done'",
                                "  Created wheel for magnum-cluster-api: filename=magnum_cluster_api-0.36.1-cp38-abi3-linux_x86_64.whl size=7522839 sha256=10fa29bd215075bc61d2c7378732b1bc2b740091b6949fd6741a21dfd79bc4e3",
                                "  Stored in directory: /home/zuul/.cache/pip/wheels/34/da/f9/cb759d2c4d485d6ccdbd7a0b0f5060e5893e22b149da909269",
                                "Successfully built magnum-cluster-api",
                                "Installing collected packages: magnum-cluster-api",
                                "  Attempting uninstall: magnum-cluster-api",
                                "    Found existing installation: magnum-cluster-api 0.36.1",
                                "    Uninstalling magnum-cluster-api-0.36.1:",
                                "      Successfully uninstalled magnum-cluster-api-0.36.1",
                                "Successfully installed magnum-cluster-api-0.36.1",
                                "unit: 114581 I exit 0 (113.21 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python -I -m pip install --force-reinstall --no-deps /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz pid=11837 [tox/execute/api.py:311]",
                                "unit: 114582 W commands[0]> pytest magnum_cluster_api/tests/unit/ [tox/tox_env/api.py:515]",
                                "============================= test session starts ==============================",
                                "platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0",
                                "cachedir: .tox/unit/.pytest_cache",
                                "rootdir: /home/zuul/src/github.com/vexxhost/magnum-cluster-api",
                                "configfile: pyproject.toml",
                                "plugins: mock-3.15.1",
                                "collected 185 items",
                                "",
                                "magnum_cluster_api/tests/unit/cmd/test_image_loader.py ..                [  1%]",
                                "magnum_cluster_api/tests/unit/test_driver.py ........FFFFFFFF........... [ 15%]",
                                ".........                                                                [ 20%]",
                                "magnum_cluster_api/tests/unit/test_go_template.py ...................... [ 32%]",
                                ".................................................                        [ 58%]",
                                "magnum_cluster_api/tests/unit/test_helm.py ........                      [ 63%]",
                                "magnum_cluster_api/tests/unit/test_image_utils.py ..                     [ 64%]",
                                "magnum_cluster_api/tests/unit/test_images.py ..........................  [ 78%]",
                                "magnum_cluster_api/tests/unit/test_objects.py .......                    [ 82%]",
                                "magnum_cluster_api/tests/unit/test_resources.py ...............          [ 90%]",
                                "magnum_cluster_api/tests/unit/test_sync.py ..                            [ 91%]",
                                "magnum_cluster_api/tests/unit/test_utils.py .F..............             [100%]",
                                "",
                                "=================================== FAILURES ===================================",
                                "_ TestDriver.test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=True] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd8cb0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a029cd10>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0278410>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                    }",
                                "                ],",
                                "                after=[",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:385: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a026fe90>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd8cb0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a029cd10>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0278410>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:365: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=False] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd8e30>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a027c620>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a02915e0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                    }",
                                "                ],",
                                "                after=[",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:385: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a0284800>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd8e30>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a027c620>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a02915e0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:365: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=True] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9010>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0292ea0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a018f5c0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                    }",
                                "                ],",
                                "                after=[",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:385: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a01787a0>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9010>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0292ea0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a018f5c0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:365: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=False] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd90a0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0284d40>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01651f0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                    }",
                                "                ],",
                                "                after=[",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:385: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a0165670>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd90a0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0284d40>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01651f0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup(self, context, ubuntu_driver, requests_mock):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:365: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=True] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9520>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a01782f0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a029e4b0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                ],",
                                "                after=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:430: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a029dfd0>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9520>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a01782f0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a029e4b0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:392: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=False] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd96a0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0178320>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01d0230>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                ],",
                                "                after=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:430: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a01cbaa0>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd96a0>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a0178320>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a01d0230>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:392: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=True] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9880>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a01d3830>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0342360>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                ],",
                                "                after=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:430: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a033bf50>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9880>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a01d3830>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0342360>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:392: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestDriver.test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=False] _",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9910>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a03423f0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0338aa0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                "        with requests_mock as rsps:",
                                "            self.setup_node_group_tests(",
                                "                rsps,",
                                "                before=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    {",
                                "                        \"name\": self.node_group.name,",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                ],",
                                "                after=[",
                                "                    {",
                                "                        \"name\": \"unrelated-machine-deployment\",",
                                "                        \"replicas\": 1,",
                                "                        \"metadata\": {",
                                "                            \"annotations\": {},",
                                "                        },",
                                "                    },",
                                "                    resources.mutate_machine_deployment(",
                                "                        context,",
                                "                        self.cluster,",
                                "                        self.node_group,",
                                "                        {",
                                "                            \"name\": self.node_group.name,",
                                "                        },",
                                "                    ),",
                                "                ],",
                                "            )",
                                "    ",
                                ">           ubuntu_driver.update_nodegroup(context, self.cluster, self.node_group)",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:430: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:43: in wrapper",
                                "    return func(*args, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:601: in update_nodegroup",
                                "    self._update_nodegroup(context, cluster, nodegroup)",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/driver.py:631: in _update_nodegroup",
                                "    resources.migrate_machineset_failure_domain(",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/resources.py:870: in migrate_machineset_failure_domain",
                                "    machine_sets = objects.MachineSet.for_node_group(pykube_api, cluster, node_group)",
                                "                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/magnum_cluster_api/objects.py:154: in for_node_group",
                                "    return list(mss)",
                                "           ^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:197: in __iter__",
                                "    return iter(self.query_cache[\"objects\"])",
                                "                ^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:187: in query_cache",
                                "    cache[\"response\"] = self.execute().json()",
                                "                        ^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/query.py:161: in execute",
                                "    r = self.api.get(**kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:465: in get",
                                "    return self.session.get(*args, **self.get_kwargs(**kwargs))",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:605: in get",
                                "    return self.request(\"GET\", url, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:592: in request",
                                "    resp = self.send(prep, **send_kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/requests/sessions.py:706: in send",
                                "    r = adapter.send(request, **kwargs)",
                                "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/pykube/http.py:181: in send",
                                "    response = self._do_send(request, **kwargs)",
                                "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1204: in send",
                                "    return self._on_request(adapter, request, **kwargs)",
                                "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "adapter = <pykube.http.KubernetesHTTPAdapter object at 0x7f85a033b2c0>",
                                "request = <PreparedRequest [GET]>, retries = None",
                                "kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}",
                                "request_url = 'http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker'",
                                "match = None",
                                "match_failed_reasons = ['URL does not match', 'Method does not match']",
                                "resp_callback = None",
                                "error_msg = \"Connection refused by Responses - the call doesn't match any registered mock.\\n\\nRequest: \\n- GET http://localhost/ap...pile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\\\\\w') Method does not match\\n\"",
                                "",
                                "    def _on_request(",
                                "        self,",
                                "        adapter: \"HTTPAdapter\",",
                                "        request: \"PreparedRequest\",",
                                "        *,",
                                "        retries: Optional[\"_Retry\"] = None,",
                                "        **kwargs: Any,",
                                "    ) -> \"models.Response\":",
                                "        # add attributes params and req_kwargs to 'request' object for further match comparison",
                                "        # original request object does not have these attributes",
                                "        request.params = self._parse_request_params(request.path_url)  # type: ignore[attr-defined]",
                                "        request.req_kwargs = kwargs  # type: ignore[attr-defined]",
                                "        request_url = str(request.url)",
                                "        request.body = self._read_filelike_body(request.body)",
                                "    ",
                                "        match, match_failed_reasons = self._find_match(request)",
                                "        resp_callback = self.response_callback",
                                "    ",
                                "        if match is None:",
                                "            if any(",
                                "                [",
                                "                    p.match(request_url)",
                                "                    if isinstance(p, Pattern)",
                                "                    else request_url.startswith(p)",
                                "                    for p in self.passthru_prefixes",
                                "                ]",
                                "            ):",
                                "                logger.info(\"request.allowed-passthru\", extra={\"url\": request_url})",
                                "                return self._real_send(adapter, request, **kwargs)  # type: ignore",
                                "    ",
                                "            error_msg = (",
                                "                \"Connection refused by Responses - the call doesn't \"",
                                "                \"match any registered mock.\\n\\n\"",
                                "                \"Request: \\n\"",
                                "                f\"- {request.method} {request_url}\\n\\n\"",
                                "                \"Available matches:\\n\"",
                                "            )",
                                "            for i, m in enumerate(self.registered()):",
                                "                error_msg += \"- {} {} {}\\n\".format(",
                                "                    m.method, m.url, match_failed_reasons[i]",
                                "                )",
                                "    ",
                                "            if self.passthru_prefixes:",
                                "                error_msg += \"Passthru prefixes:\\n\"",
                                "                for p in self.passthru_prefixes:",
                                "                    error_msg += f\"- {p}\\n\"",
                                "    ",
                                "            response = ConnectionError(error_msg)",
                                "            response.request = request",
                                "    ",
                                "            self._calls.add(request, response)",
                                ">           raise response",
                                "E           requests.exceptions.ConnectionError: Connection refused by Responses - the call doesn't match any registered mock.",
                                "E           ",
                                "E           Request: ",
                                "E           - GET http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/machinesets?labelSelector=cluster.x-k8s.io%2Fcluster-name%3D047c6319-7abd-4bd9-a033-8c6af0173cd0%2Ctopology.cluster.x-k8s.io%2Fdeployment-name%3Ddefault-worker",
                                "E           ",
                                "E           Available matches:",
                                "E           - GET re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') URL does not match",
                                "E           - PATCH re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w') Method does not match",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1129: ConnectionError",
                                "",
                                "During handling of the above exception, another exception occurred:",
                                "",
                                "self = <test_driver.TestDriver object at 0x7f85a3fd9910>",
                                "context = <magnum.common.context.RequestContext object at 0x7f85a03423f0>",
                                "ubuntu_driver = <magnum_cluster_api.driver.UbuntuDriver object at 0x7f85a0338aa0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_update_nodegroup_with_multiple_node_groups(",
                                "        self, context, ubuntu_driver, requests_mock",
                                "    ):",
                                ">       with requests_mock as rsps:",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py:392: ",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:995: in __exit__",
                                "    self.stop(allow_assert=True)",
                                "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ",
                                "",
                                "self = <responses.RequestsMock object at 0x7f85a3cff9b0>, allow_assert = True",
                                "",
                                "    def stop(self, allow_assert: bool = True) -> None:",
                                "        if self._patcher:",
                                "            # prevent stopping unstarted patchers",
                                "            self._patcher.stop()",
                                "    ",
                                "            # once patcher is stopped, clean it. This is required to create a new",
                                "            # fresh patcher on self.start()",
                                "            self._patcher = None",
                                "    ",
                                "        if not self.assert_all_requests_are_fired:",
                                "            return",
                                "    ",
                                "        if not allow_assert:",
                                "            return",
                                "    ",
                                "        not_called = [m for m in self.registered() if m.call_count == 0]",
                                "        if not_called:",
                                ">           raise AssertionError(",
                                "                \"Not all requests have been executed {!r}\".format(",
                                "                    [(match.method, match.url) for match in not_called]",
                                "                )",
                                "            )",
                                "E           AssertionError: Not all requests have been executed [('PATCH', re.compile('http://localhost/apis/cluster.x-k8s.io/v1beta1/namespaces/magnum-system/clusters/\\\\w'))]",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/responses/__init__.py:1235: AssertionError",
                                "_ TestGenerateCloudControllerManagerConfig.test_generate_cloud_controller_manager_config _",
                                "",
                                "self = <test_utils.TestGenerateCloudControllerManagerConfig object at 0x7f85a3cfc710>",
                                "mocker = <pytest_mock.plugin.MockerFixture object at 0x7f85a0176ba0>",
                                "requests_mock = <responses.RequestsMock object at 0x7f85a3cff9b0>",
                                "",
                                "    def test_generate_cloud_controller_manager_config(self, mocker, requests_mock):",
                                "        with requests_mock as rsps:",
                                "            rsps.add(self._response_for_cloud_config_secret())",
                                "    ",
                                "            config = utils.generate_cloud_controller_manager_config(",
                                "                self.context, self.pykube_api, self.cluster",
                                "            )",
                                "    ",
                                ">       assert config == textwrap.dedent(",
                                "            \"\"\"\\",
                                "            [Global]",
                                "            auth-url=http://localhost/v3",
                                "            region=RegionOne",
                                "            application-credential-id=fake_application_credential_id",
                                "            application-credential-secret=fake_application_credential_secret",
                                "            tls-insecure=false",
                                "    ",
                                "            [LoadBalancer]",
                                "            lb-provider=amphora",
                                "            lb-method=ROUND_ROBIN",
                                "            create-monitor=True",
                                "            \"\"\"",
                                "        )",
                                "E       AssertionError: assert '[Global]\\nau...onitor=True\\n' == '[Global]\\nau...onitor=True\\n'",
                                "E         ",
                                "E         Skipping 221 identical leading characters in diff, use -v to show",
                                "E         - er=amphora",
                                "E         + er=amphorav2",
                                "E         ?           ++",
                                "E           lb-method=ROUND_ROBIN",
                                "E           create-monitor=True",
                                "",
                                "magnum_cluster_api/tests/unit/test_utils.py:102: AssertionError",
                                "=============================== warnings summary ===============================",
                                ".tox/unit/lib/python3.12/site-packages/magnum/common/context.py:13",
                                "  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/magnum/common/context.py:13: EventletDeprecationWarning: ",
                                "  Eventlet is deprecated. It is currently being maintained in bugfix mode, and",
                                "  we strongly recommend against using it for new projects.",
                                "  ",
                                "  If you are already using Eventlet, we recommend migrating to a different",
                                "  framework.  For more detail see",
                                "  https://eventlet.readthedocs.io/en/latest/asyncio/migration.html",
                                "  ",
                                "    from eventlet.green import threading",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/oslo_utils/eventletutils.py:36",
                                "  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/oslo_utils/eventletutils.py:36: DeprecationWarning: eventletutils module is deprecated and will be removed.",
                                "    debtcollector.deprecate(",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/webob/compat.py:5",
                                "  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/webob/compat.py:5: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13",
                                "    from cgi import parse_header",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/oslo_service/eventlet_backdoor.py:36",
                                "  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/oslo_service/eventlet_backdoor.py:36: DeprecationWarning: The 'oslo_service.eventlet_backdoor' module usage is deprecated and will be removed in version '2026.2': The 'eventlet_backdoor' module is deprecated and will be removed in version 2026.2. This module is not being replaced. Please migrate away from using it and remove any dependencies on this module.",
                                "    removals.removed_module(",
                                "",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=True]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=True]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=False]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=True-auto_scaling_enabled=False]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=True]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=True]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=False]",
                                "magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_create_cluster[auto_healing_enabled=False-auto_scaling_enabled=False]",
                                "  /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/unit/lib/python3.12/site-packages/eventlet/__init__.py:83: DeprecationWarning: Using fork() is a bad idea, and there is no guarantee eventlet will work. See https://eventlet.readthedocs.io/en/latest/fork.html for more details.",
                                "    warnings.warn(",
                                "",
                                "-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html",
                                "=========================== short test summary info ============================",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=True]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=True-auto_scaling_enabled=False]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=True]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup[auto_healing_enabled=False-auto_scaling_enabled=False]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=True]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=True-auto_scaling_enabled=False]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=True]",
                                "FAILED magnum_cluster_api/tests/unit/test_driver.py::TestDriver::test_update_nodegroup_with_multiple_node_groups[auto_healing_enabled=False-auto_scaling_enabled=False]",
                                "FAILED magnum_cluster_api/tests/unit/test_utils.py::TestGenerateCloudControllerManagerConfig::test_generate_cloud_controller_manager_config",
                                "================= 9 failed, 176 passed, 12 warnings in 20.31s ==================",
                                "unit: 137942 C exit 1 (23.36 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> pytest magnum_cluster_api/tests/unit/ pid=16018 [tox/execute/api.py:311]",
                                ".pkg: 137945 W _exit> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin [tox/tox_env/api.py:515]",
                                "Backend: run command _exit with args {}",
                                "Backend: Wrote response {'return': 0} to /tmp/pep517__exit-0udk6bf_.json",
                                ".pkg: 137948 I exit None (0.00 seconds) /home/zuul/src/github.com/vexxhost/magnum-cluster-api> python /home/zuul/.local/tox/lib/python3.12/site-packages/pyproject_api/_backend.py True maturin pid=11662 [tox/execute/api.py:311]",
                                ".pkg: 137964 D delete package /home/zuul/src/github.com/vexxhost/magnum-cluster-api/.tox/.tmp/package/2/magnum_cluster_api-0.36.1.tar.gz [tox/tox_env/python/virtual_env/package/pyproject.py:245]",
                                "  unit: FAIL code 1 (137.75=setup[114.39]+cmd[23.36] seconds)",
                                "  evaluation failed :( (137.78 seconds)"
                            ],
                            "zuul_log_id": "0242ac17-0011-01ad-a8c7-000000000014-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:05.703854Z",
                            "start": "2026-04-02T12:47:47.084719Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000014",
                        "name": "Run tox"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "tox_parse_output",
                            "changed": false,
                            "failed_when_result": false,
                            "file_comments": {},
                            "invocation": {
                                "module_args": {
                                    "tox_envlist": "unit",
                                    "tox_output": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
                                    "workdir": "src/github.com/vexxhost/magnum-cluster-api"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:06.338702Z",
                            "start": "2026-04-02T12:50:05.868346Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000015",
                        "name": "Look for output"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "zuul_return",
                            "changed": false,
                            "false_condition": "file_comments.file_comments",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-01ad-a8c7-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:07.078612Z",
                            "start": "2026-04-02T12:50:07.032902Z"
                        },
                        "id": "0242ac17-0011-01ad-a8c7-000000000016",
                        "name": "Return file comments to Zuul"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 8,
            "failures": 1,
            "ignored": 0,
            "ok": 12,
            "rescued": 0,
            "skipped": 4,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "0",
    "phase": "post",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:50:20.029635Z",
                    "start": "2026-04-02T12:50:15.857126Z"
                },
                "id": "0242ac17-0011-51fa-242f-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:15.934824Z",
                            "start": "2026-04-02T12:50:15.889360Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000007",
                        "name": "Set tox log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:15.990922Z",
                            "start": "2026-04-02T12:50:15.946251Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000008",
                        "name": "Set tox log path for single node"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:16.510936Z",
                            "start": "2026-04-02T12:50:15.997855Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000009",
                        "name": "Ensure local tox dir"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "zuul_use_fetch_output",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:16.572980Z",
                            "start": "2026-04-02T12:50:16.527470Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000a",
                        "name": "Ensure zuul-output tox dir"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "envlist": [
                                    "unit"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:16.638166Z",
                            "start": "2026-04-02T12:50:16.583412Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000b",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.252600",
                            "end": "2026-04-02 12:50:17.254230",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac17-0011-51fa-242f-00000000000c-1-ubuntunoble",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-04-02 12:50:17.001630",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul\n4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul",
                                "4.52.0 from /home/zuul/.local/tox/lib/python3.12/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac17-0011-51fa-242f-00000000000c-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:17.687830Z",
                            "start": "2026-04-02T12:50:16.668620Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000c",
                        "name": "Get tox version"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_envlist is not defined or not tox_envlist",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:18.225369Z",
                            "start": "2026-04-02T12:50:17.716384Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000d",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_default_environments.stdout_lines is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:18.272099Z",
                            "start": "2026-04-02T12:50:18.236702Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000e",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "(tox_envlist is defined and tox_envlist == 'ALL') or (envlist is defined and not envlist)",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:18.813134Z",
                            "start": "2026-04-02T12:50:18.303031Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-00000000000f",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_all_environments.stdout_lines is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:18.848451Z",
                            "start": "2026-04-02T12:50:18.823089Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000010",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "false_condition": "zuul_use_fetch_output",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_testenv": "unit"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:18.903769Z",
                            "start": "2026-04-02T12:50:18.858861Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000011",
                        "name": "Copy tox logs"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.18:src/github.com/vexxhost/magnum-cluster-api/.tox/unit/log/ /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox/unit",
                                    "failed": false,
                                    "failed_when_result": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox/unit",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.18:src/github.com/vexxhost/magnum-cluster-api/.tox/unit/log/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "created directory /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox/unit\ncd+++++++++ ./\n>f+++++++++ 1-install_package.log\n>f+++++++++ 2-commands[0].log\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        "created directory /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/tox/unit",
                                        "cd+++++++++ ./",
                                        ">f+++++++++ 1-install_package.log",
                                        ">f+++++++++ 2-commands[0].log"
                                    ],
                                    "zj_testenv": "unit"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-51fa-242f-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:20.029635Z",
                            "start": "2026-04-02T12:50:18.913778Z"
                        },
                        "id": "0242ac17-0011-51fa-242f-000000000013",
                        "name": "Collect tox logs"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 7,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "1",
    "phase": "post",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:50:24.281048Z",
                    "start": "2026-04-02T12:50:21.988892Z"
                },
                "id": "0242ac17-0011-da7d-9452-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "script",
                            "changed": true,
                            "exception": "NoneType: None\n",
                            "failed_when_result": false,
                            "msg": "non-zero return code",
                            "rc": 1,
                            "stderr": "Shared connection to 199.19.213.18 closed.\r\n",
                            "stderr_lines": [
                                "Shared connection to 199.19.213.18 closed."
                            ],
                            "stdout": "",
                            "stdout_lines": []
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:23.978111Z",
                            "start": "2026-04-02T12:50:22.579788Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000007",
                        "name": "Find stestr or testr executable"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.025891Z",
                            "start": "2026-04-02T12:50:23.986300Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000009",
                        "name": "Get the list of directories with subunit files"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "find",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.060916Z",
                            "start": "2026-04-02T12:50:24.035334Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-00000000000a",
                        "name": "Find any inflight partial subunit files"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.097302Z",
                            "start": "2026-04-02T12:50:24.072422Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-00000000000c",
                        "name": "Copy any inflight subunit files"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "tempfile",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.132220Z",
                            "start": "2026-04-02T12:50:24.107713Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-00000000000f",
                        "name": "Create a temporary file to store the subunit stream"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.166067Z",
                            "start": "2026-04-02T12:50:24.141738Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000010",
                        "name": "Generate subunit file"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.202030Z",
                            "start": "2026-04-02T12:50:24.176286Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000012",
                        "name": "Copy the combined subunit file to the zuul work directory"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.239636Z",
                            "start": "2026-04-02T12:50:24.214050Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000013",
                        "name": "Remove the temporary file"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-da7d-9452-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:24.281048Z",
                            "start": "2026-04-02T12:50:24.254444Z"
                        },
                        "id": "0242ac17-0011-da7d-9452-000000000014",
                        "name": "Process and fetch subunit results"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "2",
    "phase": "post",
    "playbook": "github.com/vexxhost/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:50:28.571870Z",
                    "start": "2026-04-02T12:50:25.152749Z"
                },
                "id": "0242ac17-0011-661a-6a0d-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:25.211099Z",
                            "start": "2026-04-02T12:50:25.165181Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-000000000008",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:25.269543Z",
                            "start": "2026-04-02T12:50:25.223689Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-000000000009",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:26.158797Z",
                            "start": "2026-04-02T12:50:25.276761Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-00000000000a",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.18:/home/zuul/zuul-output/logs/ /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.18:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.18:/home/zuul/zuul-output/artifacts/ /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.18:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' zuul@199.19.213.18:/home/zuul/zuul-output/docs/ /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "zuul@199.19.213.18:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-000000000006",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:27.771389Z",
                            "start": "2026-04-02T12:50:26.168833Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-00000000000c",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts/* /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.121771",
                                    "end": "2026-04-02 12:50:28.291723",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/artifacts/* /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/artifacts\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-04-02 12:50:28.169952",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "artifacts",
                                    "zuul_log_id": "in-loop-ignore"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs/* /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.009249",
                                    "end": "2026-04-02 12:50:28.518120",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/docs/* /var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/work/logs/docs\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_no_log": false,
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-04-02 12:50:28.508871",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-00000000000f",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:28.571870Z",
                            "start": "2026-04-02T12:50:27.790219Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-000000000011",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-04-02T12:50:29.916098Z",
                    "start": "2026-04-02T12:50:28.584669Z"
                },
                "id": "0242ac17-0011-661a-6a0d-000000000013",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5EXlUQX2Svtff5K5r3xIGhb58iw1MczWUB4PKkK9ZwQAZamAbo9Sj8HPdxG8ZCj+MP+lsK5Vm8INPNul4JCSwwbPkbCO9hR/vvlRATpl3ANwDi+oH9umoGw0K9vMftJ6RJMAs2KV+602/zwq5RzC3ZZ3DpFgpXD5/N8I2kKFYjxRQeSvfF5iVBAOj/QV8DL6sEQ1KlHwlN5P8ZQCTfpes0LxEEt2L6wbJkkFniFcGKXzk/7Y0lI3f732ifAfYzkqPMY6K2xeVXJ6XpQDDMKW87tXJL+DuQKjVGH+ekeIje542cYnLCk6ZZVfCNEmzBAiCa2iQ3aCuST6Hxavq0t1sUU9ZPSJWbAORsdV6oMeqMCBRQuXoHrQWJSgPD9cntlphJR6WbAdvrUIdctliDdXeFhdBvX0rEJovopaf6t/ZmMLLW0bF6PHNi4u3zyg07zSh723Of5bDXpMoDdD3+TPDB7kYyUDtnov/uHaukCb1lyvrL8TjZ32zvUp/ZieujNM= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "absent",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5EXlUQX2Svtff5K5r3xIGhb58iw1MczWUB4PKkK9ZwQAZamAbo9Sj8HPdxG8ZCj+MP+lsK5Vm8INPNul4JCSwwbPkbCO9hR/vvlRATpl3ANwDi+oH9umoGw0K9vMftJ6RJMAs2KV+602/zwq5RzC3ZZ3DpFgpXD5/N8I2kKFYjxRQeSvfF5iVBAOj/QV8DL6sEQ1KlHwlN5P8ZQCTfpes0LxEEt2L6wbJkkFniFcGKXzk/7Y0lI3f732ifAfYzkqPMY6K2xeVXJ6XpQDDMKW87tXJL+DuQKjVGH+ekeIje542cYnLCk6ZZVfCNEmzBAiCa2iQ3aCuST6Hxavq0t1sUU9ZPSJWbAORsdV6oMeqMCBRQuXoHrQWJSgPD9cntlphJR6WbAdvrUIdctliDdXeFhdBvX0rEJovopaf6t/ZmMLLW0bF6PHNi4u3zyg07zSh723Of5bDXpMoDdD3+TPDB7kYyUDtnov/uHaukCb1lyvrL8TjZ32zvUp/ZieujNM= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac17-0011-661a-6a0d-000000000016",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/8a349a3001764ce5a138bf3680253ebe/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-04-02T12:50:29.916098Z",
                            "start": "2026-04-02T12:50:28.594673Z"
                        },
                        "id": "0242ac17-0011-661a-6a0d-000000000018",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 1,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
