[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/osism/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-06T08:54:39.304701Z",
                    "start": "2026-10-06T08:54:11.707734Z"
                },
                "id": "0242ac1f-6606-a58c-237a-000000000002",
                "name": "Base pre"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:11.748936Z",
                            "start": "2026-10-06T08:54:11.727262Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000000f",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "ca2/osism/ca299ff5d1f246aeb8b1452f200732ac"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-0000000000c1",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:11.829947Z",
                            "start": "2026-10-06T08:54:11.767400Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000c3",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.14\nJob: metalbox-unittest\nPipeline: check\nExecutor: 521e9411259a\nTriggered by: https://github.com/osism/metalbox/pull/395\nEvent ID: 7586fd20-c163-11f1-9518-32ca8ef02fe9\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:11.908295Z",
                            "start": "2026-10-06T08:54:11.859658Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000010",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "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: ubuntu\nUsername: zuul\nDistro: Ubuntu 24.04\nProvider: regiocloud-a\nRegion: \nLabel: ubuntu-noble\nProduct Name: OpenStack Nova\nInterface IP: 2a13:1a81:8000:3124:f816:3eff:fef8:5fc\n",
                                    "zj_item": "ubuntu-noble"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:12.051086Z",
                            "start": "2026-10-06T08:54:11.914264Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000011",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:12.500077Z",
                            "start": "2026-10-06T08:54:12.060283Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000016",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "60096efe400d5689b6d672f97d29ccd8a9165fd5",
                            "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "60096efe400d5689b6d672f97d29ccd8a9165fd5",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276852.5323453-34-174554826046663/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "688344456cda412881eea44d68cc0d51",
                            "mode": "0644",
                            "owner": "root",
                            "size": 23204,
                            "src": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276852.5323453-34-174554826046663/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:13.637125Z",
                            "start": "2026-10-06T08:54:12.507268Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000017",
                        "name": "Copy ansible inventory to logs dir"
                    }
                },
                {
                    "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/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:13.967792Z",
                            "start": "2026-10-06T08:54:13.647775Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000001b",
                        "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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:13.994412Z",
                            "start": "2026-10-06T08:54:13.973827Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000001c",
                        "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/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:00.761645",
                            "end": "2026-10-06 08:54:15.160595",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_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": "0242ac1f-6606-a58c-237a-0000000000e4-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:14.398950",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa.pub\nThe key fingerprint is:\nSHA256:C1ozP3bUQqmIPgJde+/KypIIexCmIAk3xgysOOte5jw zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|o+               |\n|..*        .     |\n|++ ..     o      |\n|Oo . o . o .     |\n|*+. o B S o .    |\n|=. . + * o .     |\n|o+.++   * .      |\n|o.OE o o o       |\n|.o ++.o..        |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:C1ozP3bUQqmIPgJde+/KypIIexCmIAk3xgysOOte5jw zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|o+               |",
                                "|..*        .     |",
                                "|++ ..     o      |",
                                "|Oo . o . o .     |",
                                "|*+. o B S o .    |",
                                "|=. . + * o .     |",
                                "|o+.++   * .      |",
                                "|o.OE o o o       |",
                                "|.o ++.o..        |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-0000000000e4-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:15.205159Z",
                            "start": "2026-10-06T08:54:14.018380Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000e4",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:15.229543Z",
                            "start": "2026-10-06T08:54:15.213629Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000e5",
                        "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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:15.257462Z",
                            "start": "2026-10-06T08:54:15.245196Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000104",
                        "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC/9b4fyq9vF+DqYv2K7ElfWSnGPhZDtju/XWX/iINpD56gYGL0B1gkGwJcHYzoloYXf2H4yW6h+nyela+KZgKvV6V4Xwg1veRyCdRcApO+JofFFL7FHvjmiDZ/9GFjLna5kYMpLMmFLfz3G6wAEAqMSbVcCUtXO1y2Q7dkuczQXKO96qjPgBLMlzOpNm1ZCjgJsKoS3ub57vSUUHhhVj1MHtb61mEQQtGiV7NdgwXuUSzz0b8GY9O23IBwEC0oWMN65KYU/+F9fapfbv3QZb5t1zbES57HSXjpTIs1Mlun3L4E4Rhy+lrc0kcUWJFS3cRWTT0DH5lv+pG1IF+VcaCSBCURGvi055O4iucc9h8eNYfRybT0DxCtjhRzanKeEEQ6mVBNVRxoI0f86fjh/UMSwGWeD8b4XkFkbKWG1w5IG2nkochzHlkJ5xrXGobz2vbrLO6MSB9/G7DxKDy33lRpIGEcXB01Eyjsy8nNRWXB3Tdl+dSYl1//3oTmiH5OHF0= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC/9b4fyq9vF+DqYv2K7ElfWSnGPhZDtju/XWX/iINpD56gYGL0B1gkGwJcHYzoloYXf2H4yW6h+nyela+KZgKvV6V4Xwg1veRyCdRcApO+JofFFL7FHvjmiDZ/9GFjLna5kYMpLMmFLfz3G6wAEAqMSbVcCUtXO1y2Q7dkuczQXKO96qjPgBLMlzOpNm1ZCjgJsKoS3ub57vSUUHhhVj1MHtb61mEQQtGiV7NdgwXuUSzz0b8GY9O23IBwEC0oWMN65KYU/+F9fapfbv3QZb5t1zbES57HSXjpTIs1Mlun3L4E4Rhy+lrc0kcUWJFS3cRWTT0DH5lv+pG1IF+VcaCSBCURGvi055O4iucc9h8eNYfRybT0DxCtjhRzanKeEEQ6mVBNVRxoI0f86fjh/UMSwGWeD8b4XkFkbKWG1w5IG2nkochzHlkJ5xrXGobz2vbrLO6MSB9/G7DxKDy33lRpIGEcXB01Eyjsy8nNRWXB3Tdl+dSYl1//3oTmiH5OHF0= 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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:15.938470Z",
                            "start": "2026-10-06T08:54:15.261889Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000105",
                        "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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:16.243544Z",
                            "start": "2026-10-06T08:54:15.944905Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000106",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "4c57f407cfbe311b85ccff7f22848d448d161f34",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "ca299ff5d1f246aeb8b1452f200732ac_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "4c57f407cfbe311b85ccff7f22848d448d161f34",
                                    "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-1791276856.302957-139-102062693483853/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "79b4f8dca7a078e789ac072b1c72ff2f",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1791276856.302957-139-102062693483853/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:17.046071Z",
                            "start": "2026-10-06T08:54:16.247741Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000107",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "096d5fbfa7db36f6570ab9f83f002ad46bfc0b83",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "ca299ff5d1f246aeb8b1452f200732ac_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "096d5fbfa7db36f6570ab9f83f002ad46bfc0b83",
                                    "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-1791276857.1162555-149-201543587557576/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "6f3b9bc4283ed34d595a15ad3d89d7aa",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1791276857.1162555-149-201543587557576/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:17.897769Z",
                            "start": "2026-10-06T08:54:17.052303Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000108",
                        "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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:17.933685Z",
                            "start": "2026-10-06T08:54:17.909899Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000e6",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/var/ssh/nodepool"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-0000000000eb",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:18.306764Z",
                            "start": "2026-10-06T08:54:17.940419Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000ed",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa"
                            ],
                            "delta": "0:00:00.010260",
                            "end": "2026-10-06 08:54:18.595200",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_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": "0242ac1f-6606-a58c-237a-0000000000f3-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:18.584940",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/ca299ff5d1f246aeb8b1452f200732ac_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-0000000000f3-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:18.631188Z",
                            "start": "2026-10-06T08:54:18.315174Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000f3",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:19.043841Z",
                            "start": "2026-10-06T08:54:18.637090Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000f4",
                        "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": "0242ac1f-6606-a58c-237a-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:19.070199Z",
                            "start": "2026-10-06T08:54:19.050237Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-0000000000f5",
                        "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": "0242ac1f-6606-a58c-237a-00000000001e",
                        "name": "start-zuul-console",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/start-zuul-console"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:19.569962Z",
                            "start": "2026-10-06T08:54:19.087943Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000020",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_info_dir": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:19.607385Z",
                            "start": "2026-10-06T08:54:19.583419Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000024",
                        "name": "Define zuul_info_dir fact"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info"
                                }
                            },
                            "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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:19.892336Z",
                            "start": "2026-10-06T08:54:19.613197Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000025",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "setup",
                            "ansible_facts": {
                                "ansible_all_ipv4_addresses": [
                                    "10.128.0.100"
                                ],
                                "ansible_all_ipv6_addresses": [
                                    "2a13:1a81:8000:3124:f816:3eff:fef8:5fc",
                                    "fe80::f816:3eff:fef8:5fc"
                                ],
                                "ansible_apparmor": {
                                    "status": "enabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "04/01/2014",
                                "ansible_bios_vendor": "SeaBIOS",
                                "ansible_bios_version": "1.15.0-1",
                                "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": "QEMU",
                                "ansible_chassis_version": "pc-i440fx-6.2",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-6.8.0-146-generic",
                                    "console": "ttyS0,115200",
                                    "gfxpayload": "text",
                                    "no_timer_check": true,
                                    "nofb": true,
                                    "nomodeset": true,
                                    "ro": true,
                                    "root": "LABEL=cloudimg-rootfs"
                                },
                                "ansible_date_time": {
                                    "date": "2026-10-06",
                                    "day": "06",
                                    "epoch": "1791276860",
                                    "epoch_int": "1791276860",
                                    "hour": "08",
                                    "iso8601": "2026-10-06T08:54:20Z",
                                    "iso8601_basic": "20261006T085420741283",
                                    "iso8601_basic_short": "20261006T085420",
                                    "iso8601_micro": "2026-10-06T08:54:20.741283Z",
                                    "minute": "54",
                                    "month": "10",
                                    "second": "20",
                                    "time": "08:54:20",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Tuesday",
                                    "weekday_number": "2",
                                    "weeknumber": "40",
                                    "year": "2026"
                                },
                                "ansible_default_ipv4": {
                                    "address": "10.128.0.100",
                                    "alias": "ens3",
                                    "broadcast": "10.128.0.111",
                                    "gateway": "10.128.0.97",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:f8:05:fc",
                                    "mtu": 1500,
                                    "netmask": "255.255.255.240",
                                    "network": "10.128.0.96",
                                    "prefix": "28",
                                    "type": "ether"
                                },
                                "ansible_default_ipv6": {
                                    "address": "2a13:1a81:8000:3124:f816:3eff:fef8:5fc",
                                    "gateway": "fe80::f816:3eff:fe92:ad10",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:f8:05:fc",
                                    "mtu": 1500,
                                    "prefix": "64",
                                    "scope": "global",
                                    "type": "ether"
                                },
                                "ansible_device_links": {
                                    "ids": {},
                                    "labels": {
                                        "vda1": [
                                            "cloudimg-rootfs"
                                        ]
                                    },
                                    "masters": {},
                                    "uuids": {
                                        "vda1": [
                                            "365a4c59-c51f-4a6f-807d-47e77a9f595f"
                                        ]
                                    }
                                },
                                "ansible_devices": {
                                    "loop0": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop1": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop2": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop3": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop4": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop5": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop6": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop7": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "512",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "vda": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {
                                            "vda1": {
                                                "holders": [],
                                                "links": {
                                                    "ids": [],
                                                    "labels": [
                                                        "cloudimg-rootfs"
                                                    ],
                                                    "masters": [],
                                                    "uuids": [
                                                        "365a4c59-c51f-4a6f-807d-47e77a9f595f"
                                                    ]
                                                },
                                                "sectors": "20969439",
                                                "sectorsize": 512,
                                                "size": "10.00 GB",
                                                "start": "2048",
                                                "uuid": "365a4c59-c51f-4a6f-807d-47e77a9f595f"
                                            }
                                        },
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "20971520",
                                        "sectorsize": "512",
                                        "size": "10.00 GB",
                                        "support_discard": "512",
                                        "vendor": "0x1af4",
                                        "virtual": 1
                                    }
                                },
                                "ansible_distribution": "Ubuntu",
                                "ansible_distribution_file_parsed": true,
                                "ansible_distribution_file_path": "/etc/os-release",
                                "ansible_distribution_file_variety": "Debian",
                                "ansible_distribution_major_version": "24",
                                "ansible_distribution_release": "noble",
                                "ansible_distribution_version": "24.04",
                                "ansible_dns": {
                                    "nameservers": [
                                        "127.0.0.53"
                                    ],
                                    "options": {
                                        "edns0": true,
                                        "trust-ad": true
                                    },
                                    "search": [
                                        "a.customers.regiocloud.tech"
                                    ]
                                },
                                "ansible_domain": "",
                                "ansible_effective_group_id": 1000,
                                "ansible_effective_user_id": 1000,
                                "ansible_ens3": {
                                    "active": true,
                                    "device": "ens3",
                                    "ipv4": {
                                        "address": "10.128.0.100",
                                        "broadcast": "10.128.0.111",
                                        "netmask": "255.255.255.240",
                                        "network": "10.128.0.96",
                                        "prefix": "28"
                                    },
                                    "ipv6": [
                                        {
                                            "address": "2a13:1a81:8000:3124:f816:3eff:fef8:5fc",
                                            "prefix": "64",
                                            "scope": "global"
                                        },
                                        {
                                            "address": "fe80::f816:3eff:fef8:5fc",
                                            "prefix": "64",
                                            "scope": "link"
                                        }
                                    ],
                                    "macaddress": "fa:16:3e:f8:05:fc",
                                    "mtu": 1500,
                                    "pciid": "virtio1",
                                    "promisc": false,
                                    "speed": -1,
                                    "type": "ether"
                                },
                                "ansible_env": {
                                    "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
                                    "HOME": "/home/zuul",
                                    "LANG": "C.UTF-8",
                                    "LC_ALL": "C.UTF-8",
                                    "LOGNAME": "zuul",
                                    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin",
                                    "PWD": "/home/zuul",
                                    "SHELL": "/bin/bash",
                                    "SHLVL": "0",
                                    "SSH_CLIENT": "2a13:1a81:8000:2::38d 52508 22",
                                    "SSH_CONNECTION": "2a13:1a81:8000:2::38d 52508 2a13:1a81:8000:3124:f816:3eff:fef8:5fc 22",
                                    "USER": "zuul",
                                    "XDG_RUNTIME_DIR": "/run/user/1000",
                                    "XDG_SESSION_CLASS": "user",
                                    "XDG_SESSION_ID": "1",
                                    "XDG_SESSION_TYPE": "tty",
                                    "_": "/bin/sh"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "Other",
                                "ansible_fqdn": "ubuntu",
                                "ansible_hostname": "ubuntu",
                                "ansible_hostnqn": "",
                                "ansible_interfaces": [
                                    "lo",
                                    "ens3"
                                ],
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "6.8.0-146-generic",
                                "ansible_kernel_version": "#146-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep  3 16:12:30 UTC 2026",
                                "ansible_lo": {
                                    "active": true,
                                    "device": "lo",
                                    "ipv4": {
                                        "address": "127.0.0.1",
                                        "broadcast": "",
                                        "netmask": "255.0.0.0",
                                        "network": "127.0.0.0",
                                        "prefix": "8"
                                    },
                                    "ipv6": [
                                        {
                                            "address": "::1",
                                            "prefix": "128",
                                            "scope": "host"
                                        }
                                    ],
                                    "mtu": 65536,
                                    "promisc": false,
                                    "type": "loopback"
                                },
                                "ansible_loadavg": {
                                    "15m": 0.00439453125,
                                    "1m": 0.06689453125,
                                    "5m": 0.015625
                                },
                                "ansible_local": {},
                                "ansible_locally_reachable_ips": {
                                    "ipv4": [
                                        "10.128.0.100",
                                        "127.0.0.0/8",
                                        "127.0.0.1"
                                    ],
                                    "ipv6": [
                                        "::1",
                                        "2a13:1a81:8000:3124:f816:3eff:fef8:5fc",
                                        "fe80::f816:3eff:fef8:5fc"
                                    ]
                                },
                                "ansible_lsb": {
                                    "codename": "noble",
                                    "description": "Ubuntu 24.04.5 LTS",
                                    "id": "Ubuntu",
                                    "major_release": "24",
                                    "release": "24.04"
                                },
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_machine_id": "b3e19b3ef20c4eedb889e500bd77419f",
                                "ansible_memfree_mb": 3638,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 3742,
                                        "used": 172
                                    },
                                    "real": {
                                        "free": 3638,
                                        "total": 3914,
                                        "used": 276
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 3914,
                                "ansible_mounts": [
                                    {
                                        "block_available": 1848471,
                                        "block_size": 4096,
                                        "block_total": 2440394,
                                        "block_used": 591923,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 2524260,
                                        "inode_total": 2568960,
                                        "inode_used": 44700,
                                        "mount": "/",
                                        "options": "rw,relatime",
                                        "size_available": 7571337216,
                                        "size_total": 9995853824,
                                        "uuid": "365a4c59-c51f-4a6f-807d-47e77a9f595f"
                                    }
                                ],
                                "ansible_nodename": "ubuntu",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-6.8.0-146-generic",
                                    "console": [
                                        "tty0",
                                        "ttyS0,115200"
                                    ],
                                    "gfxpayload": "text",
                                    "no_timer_check": true,
                                    "nofb": true,
                                    "nomodeset": true,
                                    "ro": true,
                                    "root": "LABEL=cloudimg-rootfs"
                                },
                                "ansible_processor": [
                                    "0",
                                    "GenuineIntel",
                                    "Intel Xeon Processor (Icelake)",
                                    "1",
                                    "GenuineIntel",
                                    "Intel Xeon Processor (Icelake)"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 2,
                                "ansible_processor_nproc": 2,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 2,
                                "ansible_product_name": "OpenStack Nova",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "29.2.1",
                                "ansible_python": {
                                    "executable": "/usr/bin/python3",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 3,
                                        "minor": 12,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        12,
                                        3,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.12.3",
                                "ansible_real_group_id": 1000,
                                "ansible_real_user_id": 1000,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "systemd",
                                "ansible_ssh_host_key_dsa_public": "AAAAB3NzaC1kc3MAAACBAKIIPAcjOvljizIdd2cOZYsYNgFPKp2AMFh77g7L4O+hGIwOI9Bl3yMWISXfeT9ZLtI3o704/GO3p8+9ybYjY78mLglZFx+gImPyXjB/XmaGX9GDMk6ZBfF3jMysbb7iJ8FWvPAG84GXocnRl7lrti92EsEX1k76Ntp79M+yrDEbAAAAFQC5G7Glf52hMNbbhngcWA7+tCdj6wAAAIAPZmvI0bfHnw7SW99RPcgzPq0n2aKpRkDMLEsc6s7R94VL4jAq4y14CTuqWY3/xmKsUNzotJGPDrXJdxS77klr+je3UKL5Gxl0fBLbdvNZ+E59X2BbWkFUsLpbD8v4VO5p0P6FOU/CSSXuDTJ7AOZcVHxx8YQ1bR/+k9MP2POvzgAAAIAfb5lN1aFkUoQZfN6lOskP7CNiqqQQKxHygVrwXP8gpc4Vwmy/0hvHwi+Y6WeiMN2Ot6OPSfHuGZrV0jebeQwNrW3uOfcxx1O+9iAMW5vhvj1quVtp2eQALlzTsxsvT3koZo09Gfjhed8PKebluqckSW57dgd+k+gZWui7UAVvEg==",
                                "ansible_ssh_host_key_dsa_public_keytype": "ssh-dss",
                                "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLXWuNskCQui0cxAsEy12dnGZSt8qukyT6I2zSxlTHoq2lUjT1Y4Hrve9sMmpTbkXTWMpdooJWApTph/M5meAfA=",
                                "ansible_ssh_host_key_ecdsa_public_keytype": "ecdsa-sha2-nistp256",
                                "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIL7e7SfNnwrFd8FQ4A7kURQA5bLWYIzn1kRZB9ISsmJT",
                                "ansible_ssh_host_key_ed25519_public_keytype": "ssh-ed25519",
                                "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABgQDGgS3mmIKiu5Q7xifs3HHDCZ4v3QMSGFBHRYTMyqEFA9nPbAQdCsKZ8IkPeXK5NW6yC/dR8/6rOXJBa3yBDs0VlQiFJ/q8Pl1TXVrTZQnHMz4PwxzfD7Z6J2WUMrfypZYURC4nFQsyzQYlVT+X6CMDvpSaNFENjkr+HGl33EBXuF7cW0TH5wMMnjMfzarICL4V6lDlclW4Aq5MGD+9YSF98bliMuFdSDo1W6zovDII0pm5QHbZ9Fz/8v23dnkdzEM0FbgX1pzK+D5rJXro6yBK3ozMjv2oUdmM9BeBonFWNM2M5wZ8Qof6jbHSIk6CvvjOKWLdCKUwKgfwiGqieKLFlUyPeXHh45Kv+dptWFWJtuXhsQWEXYEP/62e42qJLAWdkLAk/22NCTM6SEJpMhkP3crqelH9sxL6pCT+KtSDe+TVFVDIJevTocMttbEA0mJ7lOkh3tGriSFO6L/CcQsC2Nsgib+pK2uKTeb2RtPVzpgpml93BKToTno95RsmeGk=",
                                "ansible_ssh_host_key_rsa_public_keytype": "ssh-rsa",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": [
                                    ""
                                ],
                                "ansible_system_capabilities_enforced": "True",
                                "ansible_system_vendor": "OpenStack Foundation",
                                "ansible_uptime_seconds": 693,
                                "ansible_user_dir": "/home/zuul",
                                "ansible_user_gecos": "",
                                "ansible_user_gid": 1000,
                                "ansible_user_id": "zuul",
                                "ansible_user_shell": "/bin/bash",
                                "ansible_user_uid": 1000,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "guest",
                                "ansible_virtualization_tech_guest": [
                                    "openstack"
                                ],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "openstack",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "fact_path": "/etc/ansible/facts.d",
                                    "filter": [],
                                    "gather_subset": [
                                        "all"
                                    ],
                                    "gather_timeout": 10
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:21.147010Z",
                            "start": "2026-10-06T08:54:19.898599Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000026",
                        "name": "Collect information about the host"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "validate_host_hostname_sanitized": "ubuntu-noble"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:21.265925Z",
                            "start": "2026-10-06T08:54:21.157938Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000027",
                        "name": "Sanitize hostname"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "template",
                            "changed": true,
                            "checksum": "c38b101e2ec18fc63fe0eb93fcae7b56662881e3",
                            "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info/host-info.ubuntu-noble.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "host-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "c38b101e2ec18fc63fe0eb93fcae7b56662881e3",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info/host-info.ubuntu-noble.yaml",
                                    "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/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276861.2970867-246-11181419588644/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "b8a783611b19c781b7c7cb9e5aa9ad84",
                            "mode": "0644",
                            "owner": "root",
                            "size": 13264,
                            "src": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276861.2970867-246-11181419588644/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:21.805100Z",
                            "start": "2026-10-06T08:54:21.272610Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000028",
                        "name": "Write out all ansible variables/facts known for each host"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "_zuul_nolog_return": true,
                            "action": "zuul_debug_info",
                            "changed": false,
                            "df_i": "Filesystem      Inodes IUsed   IFree IUse% Mounted on\ntmpfs           501105   576  500529    1% /run\n/dev/vda1      2568960 44700 2524260    2% /\ntmpfs           501105     1  501104    1% /dev/shm\ntmpfs           501105     2  501103    1% /run/lock\ntmpfs           100221    29  100192    1% /run/user/1000\n",
                            "df_m": "Filesystem     1M-blocks  Used Available Use% Mounted on\ntmpfs                392     1       391   1% /run\n/dev/vda1           9533  1857      7221  21% /\ntmpfs               1958     0      1958   0% /dev/shm\ntmpfs                  5     0         5   0% /run/lock\ntmpfs                392     1       392   1% /run/user/1000\n",
                            "image_manifest_files": [],
                            "invocation": {
                                "module_args": {
                                    "image_manifest": null,
                                    "image_manifest_files": [
                                        "/etc/dib-builddate.txt",
                                        "/etc/image-hostname.txt"
                                    ],
                                    "ipv4_route_required": false,
                                    "ipv6_route_required": false,
                                    "traceroute_host": null
                                }
                            },
                            "network_interfaces": "1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1/128 scope host noprefixroute \n       valid_lft forever preferred_lft forever\n2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link/ether fa:16:3e:f8:05:fc brd ff:ff:ff:ff:ff:ff\n    altname enp0s3\n    inet 10.128.0.100/28 brd 10.128.0.111 scope global dynamic ens3\n       valid_lft 42511sec preferred_lft 42511sec\n    inet6 2a13:1a81:8000:3124:f816:3eff:fef8:5fc/64 scope global dynamic mngtmpaddr \n       valid_lft forever preferred_lft forever\n    inet6 fe80::f816:3eff:fef8:5fc/64 scope link \n       valid_lft forever preferred_lft forever\n",
                            "network_neighbors": "10.128.0.97 dev ens3 lladdr fa:16:3e:90:1b:03 REACHABLE \nfe80::f816:3eff:fe92:ad10 dev ens3 lladdr fa:16:3e:92:ad:10 router REACHABLE \n",
                            "network_routing_v4": "default via 10.128.0.97 dev ens3 \n10.128.0.96/28 dev ens3 proto kernel scope link src 10.128.0.100 \n169.254.169.254 via 10.128.0.98 dev ens3 \n",
                            "network_routing_v6": "2a13:1a81:8000:3124::/64 dev ens3 proto kernel metric 256 pref medium\nfe80::/64 dev ens3 proto kernel metric 256 pref medium\ndefault via fe80::f816:3eff:fe92:ad10 dev ens3 proto ra metric 1024 expires 65350sec hoplimit 255 pref medium\n",
                            "proc_cpuinfo": "processor\t: 0\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 134\nmodel name\t: Intel Xeon Processor (Icelake)\nstepping\t: 0\nmicrocode\t: 0x1\ncpu MHz\t\t: 2299.998\ncache size\t: 16384 KB\nphysical id\t: 0\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 0\ninitial apicid\t: 0\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 13\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc pebs bts rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq dtes64 vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities\nvmx flags\t: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid shadow_vmcs\nbugs\t\t: spectre_v1 spectre_v2 spec_store_bypass swapgs taa mmio_stale_data rfds bhi ibpb_no_ret its\nbogomips\t: 4599.99\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 40 bits physical, 57 bits virtual\npower management:\n\nprocessor\t: 1\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 134\nmodel name\t: Intel Xeon Processor (Icelake)\nstepping\t: 0\nmicrocode\t: 0x1\ncpu MHz\t\t: 2299.998\ncache size\t: 16384 KB\nphysical id\t: 1\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 1\ninitial apicid\t: 1\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 13\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc pebs bts rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq dtes64 vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities\nvmx flags\t: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid shadow_vmcs\nbugs\t\t: spectre_v1 spectre_v2 spec_store_bypass swapgs taa mmio_stale_data rfds bhi ibpb_no_ret its\nbogomips\t: 4599.99\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 40 bits physical, 57 bits virtual\npower management:\n\n",
                            "traceroute": null,
                            "uname": "Linux ubuntu 6.8.0-146-generic #146-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep  3 16:12:30 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:22.276152Z",
                            "start": "2026-10-06T08:54:21.810910Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000002a",
                        "name": "Collect information about zuul worker"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "template",
                            "changed": true,
                            "checksum": "3688cf56c70b4e4fa00759775dd6241175490eaa",
                            "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info/zuul-info.ubuntu-noble.txt",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "zuul-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "3688cf56c70b4e4fa00759775dd6241175490eaa",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/zuul-info/zuul-info.ubuntu-noble.txt",
                                    "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/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276862.3718495-285-26522710333413/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "84d79e5a45f83de0a2c52f8900e07d60",
                            "mode": "0644",
                            "owner": "root",
                            "size": 2448,
                            "src": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/.ansible/tmp/ansible-tmp-1791276862.3718495-285-26522710333413/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:22.873960Z",
                            "start": "2026-10-06T08:54:22.287316Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000002b",
                        "name": "Write out all zuul information for each host"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:23.212628Z",
                            "start": "2026-10-06T08:54:22.890773Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000002f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --compress --delete-after --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --out-format='<<CHANGED>>%i %n%L' /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/src '[zuul@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:.'",
                            "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": false,
                                    "delete": true,
                                    "dest": "[zuul@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:.",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": false,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "push",
                                    "owner": false,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": true,
                                    "rsync_opts": [],
                                    "rsync_path": null,
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/src",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ src/\ncd+++++++++ src/github.com/\ncd+++++++++ src/github.com/osism/\ncd+++++++++ src/github.com/osism/metalbox/\n<f+++++++++ src/github.com/osism/metalbox/.ansible-lint\n<f+++++++++ src/github.com/osism/metalbox/.gitignore\n<f+++++++++ src/github.com/osism/metalbox/.yamllint.yml\n<f+++++++++ src/github.com/osism/metalbox/.zuul.yaml\n<f+++++++++ src/github.com/osism/metalbox/LICENSE\n<f+++++++++ src/github.com/osism/metalbox/Makefile\n<f+++++++++ src/github.com/osism/metalbox/README.md\n<f+++++++++ src/github.com/osism/metalbox/gilt.yml\n<f+++++++++ src/github.com/osism/metalbox/requirements.txt\ncd+++++++++ src/github.com/osism/metalbox/.git/\n<f+++++++++ src/github.com/osism/metalbox/.git/COMMIT_EDITMSG\n<f+++++++++ src/github.com/osism/metalbox/.git/FETCH_HEAD\n<f+++++++++ src/github.com/osism/metalbox/.git/HEAD\n<f+++++++++ src/github.com/osism/metalbox/.git/ORIG_HEAD\n<f+++++++++ src/github.com/osism/metalbox/.git/config\n<f+++++++++ src/github.com/osism/metalbox/.git/config.worktree\n<f+++++++++ src/github.com/osism/metalbox/.git/description\n<f+++++++++ src/github.com/osism/metalbox/.git/index\n<f+++++++++ src/github.com/osism/metalbox/.git/packed-refs\ncd+++++++++ src/github.com/osism/metalbox/.git/branches/\ncd+++++++++ src/github.com/osism/metalbox/.git/hooks/\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/applypatch-msg.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/commit-msg.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/fsmonitor-watchman.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/post-update.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-applypatch.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-commit.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-merge-commit.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-push.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-rebase.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-receive.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/prepare-commit-msg.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/push-to-checkout.sample\n<f+++++++++ src/github.com/osism/metalbox/.git/hooks/update.sample\ncd+++++++++ src/github.com/osism/metalbox/.git/info/\n<f+++++++++ src/github.com/osism/metalbox/.git/info/exclude\ncd+++++++++ src/github.com/osism/metalbox/.git/logs/\n<f+++++++++ src/github.com/osism/metalbox/.git/logs/HEAD\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/00/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/00/5402d6f3bed18bc2e3fcf36b9bd97f2aba68ad\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/01/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/01/84186e5029a449043fc04484a5098eb1a8287f\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/02/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/02/e1056304c31cb30fef86a9fb36031f5c7d8e6f\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/04/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/04/b095ded966e69d65f976578eb034d4c37a1808\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/07/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/07/9e93307c47b1e3172447768b7b712017f27a95\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/0a/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/0a/8537a1e860a1012638dd9a390509be4655f916\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/11/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/11/7b495e8c0aa0376fd6965c3eed58890655cd98\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/16/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/16/7f9ed7feb9830040264f67c7117a9d825ab5d2\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/16/ba80e8d40c378f922464f480ef87ab19fd1b8e\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/17/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/17/830663df8bf15795f9b55767c587d780c9fde0\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/19/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/19/330bfd0278c34dd7ca4ccc93db6979652f2000\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/1b/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/1b/740f557a4d73313c5f96e5e1861a044da44366\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/1e/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/1e/14c8cbdd17ddb5b810567caa403cd733614848\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/22/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/22/198486b387c1a3c4f986b6187a92e0996fea21\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/24/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/48035fa02f8479f8d5864fadb44a42bcb0a53c\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/acc9c9283379b0c40cde107e9ad8501fc4ca86\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/bd850a32d719502ad6652d4bf077dd156f45a1\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/2a/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/2a/87af74a91c4ffbac97219f68356749e6a6242d\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/2c/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/2c/2048fda59f17b3f1ccd512fd5f0e084779005f\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/2c/da77dbd78f54ace2175858f2bedc6fb88ef798\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/2d/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/2d/0aa2e26a176e63a7dc506668143ed245c3a60c\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/2e/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/2e/b1252978414bce32ebcc657d333f27c51c7c7b\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/30/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/30/616ec49e80aff891435d2ac81b005806ad52a3\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/3a/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/3a/f2e9f497cf8a88dee6d6a46dacb6e5eaee4ef3\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/3b/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/3b/0343415d38fbbf92682ce50ffc48eb2329c462\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/3b/aa8dbd486fa480f96bb36c1006511768edd5f7\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/3f/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/3f/af0864811fec65bf549edb4734870f4ffd3f1e\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/40/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/40/ce29b834f957f20dbcbeb7d50c1150f18cdd7e\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/45/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/45/7da0bdaf17927b9fd68aeae07e18521fe6935e\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/47/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/47/8a19c3e5eb9dd403ca1eacbbb160d62a0afdf5\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/49/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/49/86c6a5d054c8c7cfe4173fe2b35ad146c3281d\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/4c/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/4c/3685290faf18458c691fd9776286a8c596ee78\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/4e/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/4e/0da7787dea6c64a5a35a9f76f278e53fd4b584\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/51/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/51/8cab6369dc3eb5e73e362cbeca5a935cfa0a0b\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/51/b7260071ed4765803cb9ef7dabc96443e95337\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/53/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/53/64117deb37fd73827ed36ec4982417b496c52c\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/55/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/55/5e8d555dfa462491d9bb6b8b7aa71c3c978dfc\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/59/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/59/cf99bfa192264c4ea615a62f2d21d223a346b8\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/5a/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/5a/9d77b0af9cf26f511f089af0a47f1c92753b52\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/5e/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/5e/332c4bc95758b8728ab9d3e59689f051ea6e9d\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/68/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/68/6cffe6556f9a81f1351bc51acca43aae6e62a4\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/68/a9e9aa5523486f204b94317d4ab7149f82a4ad\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/74/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/74/0153cb17369ec334870baa82b517ea49a94dae\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/77/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/77/ad399ddf77193a1927071aa31f9f03dae89be5\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/7e/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/7e/8adeec9ff5611289e9cc22290e55d4cd01994e\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/82/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/82/f31eba510ec96b80819cb93bd04493915e9a38\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/85/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/85/e2e43dceddb65944cbf09887841ef3a980d3d6\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/89/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/89/5d8149cf5cca4af111c7d9b688b2c4b789f431\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/8a/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/8a/812f141f7e6a2504634b79a7d4235c0e8d0390\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/8f/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/8f/8e54efc35cf8680cebdb0ce93b67f92e2819a2\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/91/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/91/99ec8b4042cab03ed3ecf9026c149c0fac0f47\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/93/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/93/9af455e21589fa859a1c0ae07ab1ff722c09d5\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/97/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/97/ee40e05f8dd8814c73794175878f69e6c52988\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/99/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/99/790d0d3dbb3806f520bc343c992a2486d7d725\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/9c/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/9c/97446a6493eee2ea6137fa3e9bad96eefea47f\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/9d/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/9d/feda476e98916f207eae90aaf50657d135d9c8\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/a9/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/a9/2fc4d3600c91671416defb57c292a3dc26f111\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/aa/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/aa/a0227b0a24e85ec61edce2e53e3d0d664b9d95\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/ab/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/ab/2ab0ce56f88e326b473c0f34e9a1e9950aaaca\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/b1/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/b1/f4112b410a408fc0737b0bbf8d55e9412fda0d\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/b2/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/1c2876bd942bcc1c0ef95a7520a05ab6803ded\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/43b19432a468c667c500fde7f3e9c30869f1fe\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/d30116c41fc6caf08ddb12bd84f4ec50a902d1\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/b3/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/b3/80f1f9f14b02d3a9c7831be86281486aee33d1\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/bd/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/bd/b6ec5a703e575e95a471887a87117d1a09f147\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/be/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/be/35f9bececd9f8e8e808238f90cf2de4b5f9c85\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/bf/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/bf/6b9134a713b2e4c4688346568317ace9a03f23\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/c1/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/c1/f6ab548e7594a56e4090b0c1020cea5b6f5883\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/d0/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d0/7de37087ede2294627c6e89196518238099bf2\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d0/ff48c49a907bad90d889564fda2b69ba3c1e9a\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/d1/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d1/6aec13b676d33bb11a5bf76b864ecfd6a03864\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d1/7f93535a7c55c9e02a9c493c7ec3a8853d2dc8\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/d4/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d4/6f21e70c69bc9f96d4f7bdd63981c42d8189ae\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/d7/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/d7/32cc1214434461c08d22434c5f598c1545857d\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/da/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/da/9e47d8083ff666a670c77360d24ff6fd0e9cfa\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/e0/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/e0/ba4c0996c4c0eb6b53d7c286155ff37de9a11a\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/eb/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/eb/db57ac6025d9dfd40b7499baf9df6355cbfd90\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/ec/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/ec/a876f7d5855b826cf1585a90632a1022c2d057\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/ee/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/ee/d2a5b7c9924be64bc05a41c1bde41a4482f7f0\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/f1/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/f1/07fb732a3e72316517a9fee8886f841801259f\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/f2/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/f2/1a7833ca55ef481dc28971676d9aef3e9a3903\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/f2/991daa95b292e1b1ac9d02425b3c6738a4f1dc\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/fa/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/fa/13fae7c44d9292aea067d3586a419151c4e529\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/fa/81394a251c39afbeae15d5b88569ab7a9116df\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/fe/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/fe/d5860c74dc4d71cbf7c0ad7c01a45605f9e5e7\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/info/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/info/commit-graph\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/info/packs\ncd+++++++++ src/github.com/osism/metalbox/.git/objects/pack/\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-0169ef5fd88abc7e96e7f4a7ecaa847e04a65bc0.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-0169ef5fd88abc7e96e7f4a7ecaa847e04a65bc0.pack\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-23a829d667e3ddc16b8c517a10bb15c84fec1316.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-23a829d667e3ddc16b8c517a10bb15c84fec1316.pack\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-3f455c1ed2be92fac694f162f3913a1edf9fda79.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-3f455c1ed2be92fac694f162f3913a1edf9fda79.pack\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-433991767fd42e9833ee834b55a224b61a62c564.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-433991767fd42e9833ee834b55a224b61a62c564.pack\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-76fab4517f709e905e4222991b6400e3182c5ab1.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-76fab4517f709e905e4222991b6400e3182c5ab1.pack\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-a379686b71bd80497adf3dfcff76715a14d9899f.idx\n<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-a379686b71bd80497adf3dfcff76715a14d9899f.pack\ncd+++++++++ src/github.com/osism/metalbox/.git/refs/\ncd+++++++++ src/github.com/osism/metalbox/.git/refs/heads/\n<f+++++++++ src/github.com/osism/metalbox/.git/refs/heads/main\ncd+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/\ncd+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/origin/\n<f+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/origin/main\ncd+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/\n<f+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451\n<f+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/fetch\ncd+++++++++ src/github.com/osism/metalbox/.github/\ncd+++++++++ src/github.com/osism/metalbox/.github/workflows/\n<f+++++++++ src/github.com/osism/metalbox/.github/workflows/add-to-project.yml\ncd+++++++++ src/github.com/osism/metalbox/contrib/\n<f+++++++++ src/github.com/osism/metalbox/contrib/cisco_huu_tool\n<f+++++++++ src/github.com/osism/metalbox/contrib/get_mac.sh\ncd+++++++++ src/github.com/osism/metalbox/contrib/yrzn/\n<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/.gitignore\n<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/asrock-bmc-check.sh\n<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/asrock-bmc-setup.sh\n<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/vrf-bridge-setup.sh\ncd+++++++++ src/github.com/osism/metalbox/environments/\n<f+++++++++ src/github.com/osism/metalbox/environments/.vault_pass\n<f+++++++++ src/github.com/osism/metalbox/environments/ansible.cfg\n<f+++++++++ src/github.com/osism/metalbox/environments/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/custom/\n<f+++++++++ src/github.com/osism/metalbox/environments/custom/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/custom/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/custom/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/generic/\n<f+++++++++ src/github.com/osism/metalbox/environments/generic/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/generic/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/generic/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/infrastructure/\n<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/kolla/\n<f+++++++++ src/github.com/osism/metalbox/environments/kolla/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/kolla/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/kolla/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/\ncd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/\ncd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/\n<f+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/ironic-conductor.conf\n<f+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/policy.yaml\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/.vault_pass\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/ansible.cfg\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/get-netbox-config.py\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/hosts\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/playbook-cimc-config.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/requirements.txt\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/run.sh\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/files/\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/files/conductor.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/network.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/registries.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/\ncd+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/metalbox/\n<f+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/metalbox/vars.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/monitoring/\n<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/secrets.yml\ncd+++++++++ src/github.com/osism/metalbox/environments/openstack/\n<f+++++++++ src/github.com/osism/metalbox/environments/openstack/clouds.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/openstack/configuration.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/openstack/images.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/openstack/secrets.yml\n<f+++++++++ src/github.com/osism/metalbox/environments/openstack/secure.yml\ncd+++++++++ src/github.com/osism/metalbox/inventory/\n<f+++++++++ src/github.com/osism/metalbox/inventory/10-custom\n<f+++++++++ src/github.com/osism/metalbox/inventory/20-roles\n<f+++++++++ src/github.com/osism/metalbox/inventory/99-overwrite\ncd+++++++++ src/github.com/osism/metalbox/inventory/group_vars/\ncd+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/\n<f+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/main.yml\n<f+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/registries.yml\ncd+++++++++ src/github.com/osism/metalbox/inventory/host_vars/\ncd+++++++++ src/github.com/osism/metalbox/inventory/host_vars/metalbox/\n<f+++++++++ src/github.com/osism/metalbox/inventory/host_vars/metalbox/vars.yml\ncd+++++++++ src/github.com/osism/metalbox/netbox/\n<f+++++++++ src/github.com/osism/metalbox/netbox/settings.toml\ncd+++++++++ src/github.com/osism/metalbox/netbox/devicetypes/\n<f+++++++++ src/github.com/osism/metalbox/netbox/devicetypes/.gitkeep\ncd+++++++++ src/github.com/osism/metalbox/netbox/moduletypes/\n<f+++++++++ src/github.com/osism/metalbox/netbox/moduletypes/.gitkeep\ncd+++++++++ src/github.com/osism/metalbox/netbox/resources/\n<f+++++++++ src/github.com/osism/metalbox/netbox/resources/.gitkeep\ncd+++++++++ src/github.com/osism/metalbox/scripts/\n<f+++++++++ src/github.com/osism/metalbox/scripts/configuration-export.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/configuration-import.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-infrastructure.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-manager.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-netbox.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-openstack.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-sonic.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/disable-repository.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/disable-sonic.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/get-netbox-config.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/include.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/list-registry-images.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/mount-images.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-import.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-manage.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-site.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/octavia-export.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/octavia-import.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/remove-repository-config.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/single-image-export.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/single-image-import.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/sonic-export.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/sonic-import.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/unmount-images.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-infrastructure.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-ironic-images.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-manager.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-netbox.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-openstack.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-registry.sh\n<f+++++++++ src/github.com/osism/metalbox/scripts/update-repository.sh\ncd+++++++++ src/github.com/osism/metalbox/scripts/devel/\n<f+++++++++ src/github.com/osism/metalbox/scripts/devel/fake-ironic-mode.sh\ncd+++++++++ src/github.com/osism/metalbox/zuul/\n<f+++++++++ src/github.com/osism/metalbox/zuul/box-images-not-deployed.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/check-box-images.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/check-container-image-tags.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/image_refs.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-container-images.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-debian-packages.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-octavia-image.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-container-images.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-debian-packages.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-octavia-image.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/resolve-container-images-latest.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_box_images_not_deployed.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_check_box_images.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_check_container_image_tags.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_image_refs.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_resolve_container_images_latest.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/test_update_container_images_stable.py\n<f+++++++++ src/github.com/osism/metalbox/zuul/unittest.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/update-container-images-stable.py\ncd+++++++++ src/github.com/osism/metalbox/zuul/files/\n<f+++++++++ src/github.com/osism/metalbox/zuul/files/Containerfile\ncL+++++++++ src/github.com/osism/metalbox/zuul/files/Dockerfile -> Containerfile\n<f+++++++++ src/github.com/osism/metalbox/zuul/files/create-mirror.sh\n<f+++++++++ src/github.com/osism/metalbox/zuul/files/packages.list\n<f+++++++++ src/github.com/osism/metalbox/zuul/files/repositories-restricted.conf\n<f+++++++++ src/github.com/osism/metalbox/zuul/files/repositories.conf\ncd+++++++++ src/github.com/osism/metalbox/zuul/vars/\n<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-manager-stable.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-metalbox.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-openstack-2025.1.yml\n<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-openstack-stable.yml\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ src/",
                                "cd+++++++++ src/github.com/",
                                "cd+++++++++ src/github.com/osism/",
                                "cd+++++++++ src/github.com/osism/metalbox/",
                                "<f+++++++++ src/github.com/osism/metalbox/.ansible-lint",
                                "<f+++++++++ src/github.com/osism/metalbox/.gitignore",
                                "<f+++++++++ src/github.com/osism/metalbox/.yamllint.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/.zuul.yaml",
                                "<f+++++++++ src/github.com/osism/metalbox/LICENSE",
                                "<f+++++++++ src/github.com/osism/metalbox/Makefile",
                                "<f+++++++++ src/github.com/osism/metalbox/README.md",
                                "<f+++++++++ src/github.com/osism/metalbox/gilt.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/requirements.txt",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/COMMIT_EDITMSG",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/FETCH_HEAD",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/HEAD",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/ORIG_HEAD",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/config",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/config.worktree",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/description",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/index",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/packed-refs",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/branches/",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/hooks/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/applypatch-msg.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/fsmonitor-watchman.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/post-update.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-applypatch.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-commit.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-merge-commit.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-push.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-rebase.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/pre-receive.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/prepare-commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/push-to-checkout.sample",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/hooks/update.sample",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/info/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/info/exclude",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/logs/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/logs/HEAD",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/00/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/00/5402d6f3bed18bc2e3fcf36b9bd97f2aba68ad",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/01/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/01/84186e5029a449043fc04484a5098eb1a8287f",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/02/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/02/e1056304c31cb30fef86a9fb36031f5c7d8e6f",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/04/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/04/b095ded966e69d65f976578eb034d4c37a1808",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/07/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/07/9e93307c47b1e3172447768b7b712017f27a95",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/0a/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/0a/8537a1e860a1012638dd9a390509be4655f916",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/11/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/11/7b495e8c0aa0376fd6965c3eed58890655cd98",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/16/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/16/7f9ed7feb9830040264f67c7117a9d825ab5d2",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/16/ba80e8d40c378f922464f480ef87ab19fd1b8e",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/17/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/17/830663df8bf15795f9b55767c587d780c9fde0",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/19/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/19/330bfd0278c34dd7ca4ccc93db6979652f2000",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/1b/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/1b/740f557a4d73313c5f96e5e1861a044da44366",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/1e/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/1e/14c8cbdd17ddb5b810567caa403cd733614848",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/22/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/22/198486b387c1a3c4f986b6187a92e0996fea21",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/24/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/48035fa02f8479f8d5864fadb44a42bcb0a53c",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/acc9c9283379b0c40cde107e9ad8501fc4ca86",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/24/bd850a32d719502ad6652d4bf077dd156f45a1",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/2a/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/2a/87af74a91c4ffbac97219f68356749e6a6242d",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/2c/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/2c/2048fda59f17b3f1ccd512fd5f0e084779005f",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/2c/da77dbd78f54ace2175858f2bedc6fb88ef798",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/2d/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/2d/0aa2e26a176e63a7dc506668143ed245c3a60c",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/2e/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/2e/b1252978414bce32ebcc657d333f27c51c7c7b",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/30/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/30/616ec49e80aff891435d2ac81b005806ad52a3",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/3a/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/3a/f2e9f497cf8a88dee6d6a46dacb6e5eaee4ef3",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/3b/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/3b/0343415d38fbbf92682ce50ffc48eb2329c462",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/3b/aa8dbd486fa480f96bb36c1006511768edd5f7",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/3f/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/3f/af0864811fec65bf549edb4734870f4ffd3f1e",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/40/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/40/ce29b834f957f20dbcbeb7d50c1150f18cdd7e",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/45/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/45/7da0bdaf17927b9fd68aeae07e18521fe6935e",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/47/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/47/8a19c3e5eb9dd403ca1eacbbb160d62a0afdf5",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/49/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/49/86c6a5d054c8c7cfe4173fe2b35ad146c3281d",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/4c/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/4c/3685290faf18458c691fd9776286a8c596ee78",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/4e/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/4e/0da7787dea6c64a5a35a9f76f278e53fd4b584",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/51/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/51/8cab6369dc3eb5e73e362cbeca5a935cfa0a0b",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/51/b7260071ed4765803cb9ef7dabc96443e95337",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/53/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/53/64117deb37fd73827ed36ec4982417b496c52c",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/55/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/55/5e8d555dfa462491d9bb6b8b7aa71c3c978dfc",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/59/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/59/cf99bfa192264c4ea615a62f2d21d223a346b8",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/5a/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/5a/9d77b0af9cf26f511f089af0a47f1c92753b52",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/5e/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/5e/332c4bc95758b8728ab9d3e59689f051ea6e9d",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/68/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/68/6cffe6556f9a81f1351bc51acca43aae6e62a4",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/68/a9e9aa5523486f204b94317d4ab7149f82a4ad",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/74/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/74/0153cb17369ec334870baa82b517ea49a94dae",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/77/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/77/ad399ddf77193a1927071aa31f9f03dae89be5",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/7e/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/7e/8adeec9ff5611289e9cc22290e55d4cd01994e",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/82/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/82/f31eba510ec96b80819cb93bd04493915e9a38",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/85/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/85/e2e43dceddb65944cbf09887841ef3a980d3d6",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/89/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/89/5d8149cf5cca4af111c7d9b688b2c4b789f431",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/8a/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/8a/812f141f7e6a2504634b79a7d4235c0e8d0390",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/8f/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/8f/8e54efc35cf8680cebdb0ce93b67f92e2819a2",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/91/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/91/99ec8b4042cab03ed3ecf9026c149c0fac0f47",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/93/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/93/9af455e21589fa859a1c0ae07ab1ff722c09d5",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/97/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/97/ee40e05f8dd8814c73794175878f69e6c52988",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/99/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/99/790d0d3dbb3806f520bc343c992a2486d7d725",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/9c/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/9c/97446a6493eee2ea6137fa3e9bad96eefea47f",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/9d/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/9d/feda476e98916f207eae90aaf50657d135d9c8",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/a9/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/a9/2fc4d3600c91671416defb57c292a3dc26f111",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/aa/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/aa/a0227b0a24e85ec61edce2e53e3d0d664b9d95",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/ab/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/ab/2ab0ce56f88e326b473c0f34e9a1e9950aaaca",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/b1/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/b1/f4112b410a408fc0737b0bbf8d55e9412fda0d",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/b2/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/1c2876bd942bcc1c0ef95a7520a05ab6803ded",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/43b19432a468c667c500fde7f3e9c30869f1fe",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/b2/d30116c41fc6caf08ddb12bd84f4ec50a902d1",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/b3/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/b3/80f1f9f14b02d3a9c7831be86281486aee33d1",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/bd/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/bd/b6ec5a703e575e95a471887a87117d1a09f147",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/be/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/be/35f9bececd9f8e8e808238f90cf2de4b5f9c85",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/bf/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/bf/6b9134a713b2e4c4688346568317ace9a03f23",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/c1/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/c1/f6ab548e7594a56e4090b0c1020cea5b6f5883",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/d0/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d0/7de37087ede2294627c6e89196518238099bf2",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d0/ff48c49a907bad90d889564fda2b69ba3c1e9a",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/d1/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d1/6aec13b676d33bb11a5bf76b864ecfd6a03864",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d1/7f93535a7c55c9e02a9c493c7ec3a8853d2dc8",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/d4/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d4/6f21e70c69bc9f96d4f7bdd63981c42d8189ae",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/d7/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/d7/32cc1214434461c08d22434c5f598c1545857d",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/da/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/da/9e47d8083ff666a670c77360d24ff6fd0e9cfa",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/e0/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/e0/ba4c0996c4c0eb6b53d7c286155ff37de9a11a",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/eb/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/eb/db57ac6025d9dfd40b7499baf9df6355cbfd90",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/ec/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/ec/a876f7d5855b826cf1585a90632a1022c2d057",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/ee/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/ee/d2a5b7c9924be64bc05a41c1bde41a4482f7f0",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/f1/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/f1/07fb732a3e72316517a9fee8886f841801259f",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/f2/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/f2/1a7833ca55ef481dc28971676d9aef3e9a3903",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/f2/991daa95b292e1b1ac9d02425b3c6738a4f1dc",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/fa/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/fa/13fae7c44d9292aea067d3586a419151c4e529",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/fa/81394a251c39afbeae15d5b88569ab7a9116df",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/fe/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/fe/d5860c74dc4d71cbf7c0ad7c01a45605f9e5e7",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/info/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/info/commit-graph",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/info/packs",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/objects/pack/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-0169ef5fd88abc7e96e7f4a7ecaa847e04a65bc0.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-0169ef5fd88abc7e96e7f4a7ecaa847e04a65bc0.pack",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-23a829d667e3ddc16b8c517a10bb15c84fec1316.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-23a829d667e3ddc16b8c517a10bb15c84fec1316.pack",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-3f455c1ed2be92fac694f162f3913a1edf9fda79.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-3f455c1ed2be92fac694f162f3913a1edf9fda79.pack",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-433991767fd42e9833ee834b55a224b61a62c564.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-433991767fd42e9833ee834b55a224b61a62c564.pack",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-76fab4517f709e905e4222991b6400e3182c5ab1.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-76fab4517f709e905e4222991b6400e3182c5ab1.pack",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-a379686b71bd80497adf3dfcff76715a14d9899f.idx",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/objects/pack/pack-a379686b71bd80497adf3dfcff76715a14d9899f.pack",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/refs/",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/refs/heads/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/refs/heads/main",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/origin/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/refs/remotes/origin/main",
                                "cd+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451",
                                "<f+++++++++ src/github.com/osism/metalbox/.git/refs/zuul/fetch",
                                "cd+++++++++ src/github.com/osism/metalbox/.github/",
                                "cd+++++++++ src/github.com/osism/metalbox/.github/workflows/",
                                "<f+++++++++ src/github.com/osism/metalbox/.github/workflows/add-to-project.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/contrib/",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/cisco_huu_tool",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/get_mac.sh",
                                "cd+++++++++ src/github.com/osism/metalbox/contrib/yrzn/",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/.gitignore",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/asrock-bmc-check.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/asrock-bmc-setup.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/contrib/yrzn/vrf-bridge-setup.sh",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/.vault_pass",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/ansible.cfg",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/custom/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/custom/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/custom/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/custom/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/generic/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/generic/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/generic/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/generic/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/infrastructure/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/infrastructure/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/kolla/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/kolla/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/kolla/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/kolla/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/ironic-conductor.conf",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/kolla/files/overlays/ironic/policy.yaml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/.vault_pass",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/ansible.cfg",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/get-netbox-config.py",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/hosts",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/playbook-cimc-config.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/requirements.txt",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/run.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/files/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/files/conductor.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/network.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/group_vars/all/registries.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/metalbox/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/manager/host_vars/metalbox/vars.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/monitoring/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/monitoring/secrets.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/environments/openstack/",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/openstack/clouds.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/openstack/configuration.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/openstack/images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/openstack/secrets.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/environments/openstack/secure.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/inventory/",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/10-custom",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/20-roles",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/99-overwrite",
                                "cd+++++++++ src/github.com/osism/metalbox/inventory/group_vars/",
                                "cd+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/main.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/group_vars/all/registries.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/inventory/host_vars/",
                                "cd+++++++++ src/github.com/osism/metalbox/inventory/host_vars/metalbox/",
                                "<f+++++++++ src/github.com/osism/metalbox/inventory/host_vars/metalbox/vars.yml",
                                "cd+++++++++ src/github.com/osism/metalbox/netbox/",
                                "<f+++++++++ src/github.com/osism/metalbox/netbox/settings.toml",
                                "cd+++++++++ src/github.com/osism/metalbox/netbox/devicetypes/",
                                "<f+++++++++ src/github.com/osism/metalbox/netbox/devicetypes/.gitkeep",
                                "cd+++++++++ src/github.com/osism/metalbox/netbox/moduletypes/",
                                "<f+++++++++ src/github.com/osism/metalbox/netbox/moduletypes/.gitkeep",
                                "cd+++++++++ src/github.com/osism/metalbox/netbox/resources/",
                                "<f+++++++++ src/github.com/osism/metalbox/netbox/resources/.gitkeep",
                                "cd+++++++++ src/github.com/osism/metalbox/scripts/",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/configuration-export.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/configuration-import.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-infrastructure.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-manager.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-netbox.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-openstack.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/deploy-sonic.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/disable-repository.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/disable-sonic.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/get-netbox-config.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/include.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/list-registry-images.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/mount-images.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-import.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-manage.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/netbox-site.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/octavia-export.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/octavia-import.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/remove-repository-config.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/single-image-export.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/single-image-import.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/sonic-export.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/sonic-import.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/unmount-images.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-infrastructure.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-ironic-images.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-manager.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-netbox.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-openstack.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-registry.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/update-repository.sh",
                                "cd+++++++++ src/github.com/osism/metalbox/scripts/devel/",
                                "<f+++++++++ src/github.com/osism/metalbox/scripts/devel/fake-ironic-mode.sh",
                                "cd+++++++++ src/github.com/osism/metalbox/zuul/",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/box-images-not-deployed.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/check-box-images.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/check-container-image-tags.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/image_refs.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-container-images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-debian-packages.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/mirror-octavia-image.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-container-images.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-debian-packages.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/pre-mirror-octavia-image.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/resolve-container-images-latest.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_box_images_not_deployed.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_check_box_images.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_check_container_image_tags.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_image_refs.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_resolve_container_images_latest.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/test_update_container_images_stable.py",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/unittest.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/update-container-images-stable.py",
                                "cd+++++++++ src/github.com/osism/metalbox/zuul/files/",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/files/Containerfile",
                                "cL+++++++++ src/github.com/osism/metalbox/zuul/files/Dockerfile -> Containerfile",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/files/create-mirror.sh",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/files/packages.list",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/files/repositories-restricted.conf",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/files/repositories.conf",
                                "cd+++++++++ src/github.com/osism/metalbox/zuul/vars/",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-manager-stable.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-metalbox.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-openstack-2025.1.yml",
                                "<f+++++++++ src/github.com/osism/metalbox/zuul/vars/container-images-openstack-stable.yml"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:24.021226Z",
                            "start": "2026-10-06T08:54:23.217842Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000030",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.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": "0755",
                                            "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": "0755",
                                            "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": "0755",
                                            "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": "0242ac1f-6606-a58c-237a-000000000032",
                        "name": "ensure-output-dirs-present",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/ensure-output-dirs-present"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:24.979948Z",
                            "start": "2026-10-06T08:54:24.032801Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000034",
                        "name": "Ensure Zuul output directories exist"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "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": "0755",
                                    "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
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:25.305953Z",
                            "start": "2026-10-06T08:54:24.990309Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000039",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nout=/home/zuul/zuul-output/logs/sudo-strace.log\n: > \"$out\"\nif command -v strace >/dev/null 2>&1; then\n  cmd=(timeout 40 strace -f -tt -T -y       -o \"$out\"       sudo -n true)\nelse\n  echo \"strace not installed; running bare sudo probe\" > \"$out\"\n  cmd=(timeout 40 sudo -n true)\nfi\n{ TIMEFORMAT='WALL: %3R s'; time \"${cmd[@]}\"; } 2> \"$out.time\"\necho \"EXIT: $?\" >> \"$out.time\"\n",
                            "delta": "0:00:00.059625",
                            "end": "2026-10-06 08:54:25.728869",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nout=/home/zuul/zuul-output/logs/sudo-strace.log\n: > \"$out\"\nif command -v strace >/dev/null 2>&1; then\n  cmd=(timeout 40 strace -f -tt -T -y       -o \"$out\"       sudo -n true)\nelse\n  echo \"strace not installed; running bare sudo probe\" > \"$out\"\n  cmd=(timeout 40 sudo -n true)\nfi\n{ TIMEFORMAT='WALL: %3R s'; time \"${cmd[@]}\"; } 2> \"$out.time\"\necho \"EXIT: $?\" >> \"$out.time\"\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": "0242ac1f-6606-a58c-237a-00000000003a-1-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:25.669244",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-00000000003a-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:25.853720Z",
                            "start": "2026-10-06T08:54:25.342010Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000003a",
                        "name": "Probe first sudo invocation under strace"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nout=/home/zuul/zuul-output/logs/sudo-debug.txt\n{\n  echo \"== date ==\";            date -Iseconds\n  echo \"== uptime ==\";          uptime\n  echo \"== boot age (s) ==\";    awk '{print int($1)}' /proc/uptime\n  echo \"== /etc/hostname ==\"; cat /etc/hostname\n  echo \"== /etc/hosts ==\";      cat /etc/hosts\n  echo \"== nsswitch.conf ==\";   cat /etc/nsswitch.conf\n  echo \"== resolv.conf ==\";     cat /etc/resolv.conf 2>/dev/null\n  echo \"== ping 8.8.8.8 ==\"\n  ping -c1 -W2 8.8.8.8 2>&1 || true\n  echo \"== ping 81.163.194.9 ==\"\n  ping -c1 -W2 81.163.194.9 2>&1 || true\n  echo \"== ping 81.163.194.10 ==\"\n  ping -c1 -W2 81.163.194.10 2>&1 || true\n  echo \"== getent ahosts ==\"\n  getent ahosts \"$(cat /etc/hostname)\"\n  echo \"== timed getent hosts ==\"\n  { TIMEFORMAT='getent: %3R s'; time getent hosts \"$(cat /etc/hostname)\"; } 2>&1\n  echo \"== systemd-logind active ==\"\n  systemctl is-active systemd-logind\n  echo \"== systemd-logind ActiveEnterTimestampMonotonic ==\"\n  systemctl show systemd-logind -p ActiveEnterTimestampMonotonic\n  echo \"== systemd-resolved active ==\"\n  systemctl is-active systemd-resolved 2>/dev/null\n  echo \"== /etc/pam.d/sudo ==\"\n  cat /etc/pam.d/sudo 2>/dev/null\n  echo \"== sudoers.d listing ==\"\n  ls -la /etc/sudoers.d/ 2>/dev/null\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:00.110035",
                            "end": "2026-10-06 08:54:26.330970",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nout=/home/zuul/zuul-output/logs/sudo-debug.txt\n{\n  echo \"== date ==\";            date -Iseconds\n  echo \"== uptime ==\";          uptime\n  echo \"== boot age (s) ==\";    awk '{print int($1)}' /proc/uptime\n  echo \"== /etc/hostname ==\"; cat /etc/hostname\n  echo \"== /etc/hosts ==\";      cat /etc/hosts\n  echo \"== nsswitch.conf ==\";   cat /etc/nsswitch.conf\n  echo \"== resolv.conf ==\";     cat /etc/resolv.conf 2>/dev/null\n  echo \"== ping 8.8.8.8 ==\"\n  ping -c1 -W2 8.8.8.8 2>&1 || true\n  echo \"== ping 81.163.194.9 ==\"\n  ping -c1 -W2 81.163.194.9 2>&1 || true\n  echo \"== ping 81.163.194.10 ==\"\n  ping -c1 -W2 81.163.194.10 2>&1 || true\n  echo \"== getent ahosts ==\"\n  getent ahosts \"$(cat /etc/hostname)\"\n  echo \"== timed getent hosts ==\"\n  { TIMEFORMAT='getent: %3R s'; time getent hosts \"$(cat /etc/hostname)\"; } 2>&1\n  echo \"== systemd-logind active ==\"\n  systemctl is-active systemd-logind\n  echo \"== systemd-logind ActiveEnterTimestampMonotonic ==\"\n  systemctl show systemd-logind -p ActiveEnterTimestampMonotonic\n  echo \"== systemd-resolved active ==\"\n  systemctl is-active systemd-resolved 2>/dev/null\n  echo \"== /etc/pam.d/sudo ==\"\n  cat /etc/pam.d/sudo 2>/dev/null\n  echo \"== sudoers.d listing ==\"\n  ls -la /etc/sudoers.d/ 2>/dev/null\n} > \"$out\" 2>&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": "0242ac1f-6606-a58c-237a-00000000003b-1-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:26.220935",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-00000000003b-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:26.395733Z",
                            "start": "2026-10-06T08:54:25.884699Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000003b",
                        "name": "Snapshot DNS / PAM / logind state (no become)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "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": "0755",
                                    "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
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:26.720858Z",
                            "start": "2026-10-06T08:54:26.409531Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-00000000003f",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j180594986763.978",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=pre\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:06.049318",
                            "end": "2026-10-06 08:54:33.669721",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=pre\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&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": "0242ac1f-6606-a58c-237a-000000000040-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j180594986763.978",
                            "start": "2026-10-06 08:54:27.620403",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-000000000040-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:38.518766Z",
                            "start": "2026-10-06T08:54:26.731186Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000040",
                        "name": "Snapshot dual-stack network state (pre)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:38.579259Z",
                            "start": "2026-10-06T08:54:38.523612Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000041",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:38.644591Z",
                            "start": "2026-10-06T08:54:38.586112Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000042",
                        "name": "Probe container network namespace (teardown)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nnet=/home/zuul/zuul-output/logs/net-debug.pre.txt\nsud=/home/zuul/zuul-output/logs/sudo-debug.txt\n\nemit() {\n  echo \"$1\"\n  {\n    echo \"== isolation gate ==\"\n    echo \"$1\"\n  } >> \"$net\" 2>/dev/null\n  exit 0\n}\n\n[ -s \"$sud\" ]  || emit \"VERDICT=unknown reason=no-sudo-debug-snapshot\"\n\n# (A) Raw-IP reachability, independent of DNS. Three targets, one\n#     packet each; the role above writes one summary line per target.\nprobes=$(grep -cE '[0-9]+% packet loss' \"$sud\")\nlost=$(grep -cE '100% packet loss' \"$sud\")\n[ \"$probes\" -ge 3 ]  || emit \"VERDICT=unknown reason=too-few-ping-probes probes=$probes\"\n[ \"$lost\" -eq \"$probes\" ]  || emit \"VERDICT=healthy reason=ping-answered lost=$lost/$probes\"\n\n# (B) Cost of resolving the hostname of the node itself.\ngetent=$(awk '/^getent: /{print $2; exit}' \"$sud\" 2>/dev/null)\n[ -n \"$getent\" ]  || emit \"VERDICT=unknown reason=no-getent-timing\"\nslow=$(awk -v g=\"$getent\" -v t=5.0  'BEGIN {print (g + 0 >= t + 0) ? 1 : 0}')\n[ \"$slow\" = 1 ]  || emit \"VERDICT=unknown reason=ping-dead-but-dns-fast getent=${getent}s\"\n\n# (C) Veto only: if any HTTPS probe above got a response, the node\n#     has egress whatever ping and DNS say. Absent or truncated file\n#     cannot block the verdict -- it just cannot veto it.\nanswered=$(grep -cE 'http=[1-5][0-9]{2}' \"$net\" 2>/dev/null)\n[ \"${answered:-0}\" -eq 0 ]  || emit \"VERDICT=healthy reason=https-answered answered=$answered\"\n\nemit \"VERDICT=isolated ping_lost=$lost/$probes getent=${getent}s\"\n",
                            "delta": "0:00:00.014706",
                            "end": "2026-10-06 08:54:38.988781",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nnet=/home/zuul/zuul-output/logs/net-debug.pre.txt\nsud=/home/zuul/zuul-output/logs/sudo-debug.txt\n\nemit() {\n  echo \"$1\"\n  {\n    echo \"== isolation gate ==\"\n    echo \"$1\"\n  } >> \"$net\" 2>/dev/null\n  exit 0\n}\n\n[ -s \"$sud\" ]  || emit \"VERDICT=unknown reason=no-sudo-debug-snapshot\"\n\n# (A) Raw-IP reachability, independent of DNS. Three targets, one\n#     packet each; the role above writes one summary line per target.\nprobes=$(grep -cE '[0-9]+% packet loss' \"$sud\")\nlost=$(grep -cE '100% packet loss' \"$sud\")\n[ \"$probes\" -ge 3 ]  || emit \"VERDICT=unknown reason=too-few-ping-probes probes=$probes\"\n[ \"$lost\" -eq \"$probes\" ]  || emit \"VERDICT=healthy reason=ping-answered lost=$lost/$probes\"\n\n# (B) Cost of resolving the hostname of the node itself.\ngetent=$(awk '/^getent: /{print $2; exit}' \"$sud\" 2>/dev/null)\n[ -n \"$getent\" ]  || emit \"VERDICT=unknown reason=no-getent-timing\"\nslow=$(awk -v g=\"$getent\" -v t=5.0  'BEGIN {print (g + 0 >= t + 0) ? 1 : 0}')\n[ \"$slow\" = 1 ]  || emit \"VERDICT=unknown reason=ping-dead-but-dns-fast getent=${getent}s\"\n\n# (C) Veto only: if any HTTPS probe above got a response, the node\n#     has egress whatever ping and DNS say. Absent or truncated file\n#     cannot block the verdict -- it just cannot veto it.\nanswered=$(grep -cE 'http=[1-5][0-9]{2}' \"$net\" 2>/dev/null)\n[ \"${answered:-0}\" -eq 0 ]  || emit \"VERDICT=healthy reason=https-answered answered=$answered\"\n\nemit \"VERDICT=isolated ping_lost=$lost/$probes getent=${getent}s\"\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": "0242ac1f-6606-a58c-237a-000000000043-1-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:38.974075",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "VERDICT=healthy reason=ping-answered lost=0/3",
                            "stdout_lines": [
                                "VERDICT=healthy reason=ping-answered lost=0/3"
                            ],
                            "zuul_log_id": "0242ac1f-6606-a58c-237a-000000000043-1-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:39.186955Z",
                            "start": "2026-10-06T08:54:38.672589Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000043",
                        "name": "Evaluate node isolation verdict (pre-run gate)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.fail",
                            "changed": false,
                            "false_condition": "'VERDICT=isolated' in diagnose_network_gate_verdict.stdout",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-a58c-237a-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:39.304701Z",
                            "start": "2026-10-06T08:54:39.194566Z"
                        },
                        "id": "0242ac1f-6606-a58c-237a-000000000044",
                        "name": "Abort the pre-run on a fully isolated node"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 33,
            "rescued": 0,
            "skipped": 6,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "0",
    "phase": "run",
    "playbook": "github.com/osism/metalbox/zuul/unittest.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-06T08:54:54.249766Z",
                    "start": "2026-10-06T08:54:40.628335Z"
                },
                "id": "0242ac1f-6606-7274-5a90-000000000002",
                "name": "Run unit tests"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.apt",
                            "cache_update_time": 1791276885,
                            "cache_updated": true,
                            "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-jinja2",
                                        "python3-yaml"
                                    ],
                                    "only_upgrade": false,
                                    "package": [
                                        "python3-jinja2",
                                        "python3-yaml"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "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-markupsafe\nSuggested packages:\n  python-jinja2-doc\nRecommended packages:\n  python3-babel\nThe following NEW packages will be installed:\n  python3-jinja2 python3-markupsafe python3-yaml\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 244 kB of archives.\nAfter this operation, 1128 kB of additional disk space will be used.\nGet:1 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-yaml amd64 6.0.1-2build2 [123 kB]\nGet:2 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-markupsafe amd64 2.1.5-1build2 [12.7 kB]\nGet:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-jinja2 all 3.1.2-1ubuntu1.3 [108 kB]\nFetched 244 kB in 0s (1146 kB/s)\nSelecting previously unselected package python3-yaml.\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 ... 35089 files and directories currently installed.)\r\nPreparing to unpack .../python3-yaml_6.0.1-2build2_amd64.deb ...\r\nUnpacking python3-yaml (6.0.1-2build2) ...\r\nSelecting previously unselected package python3-markupsafe.\r\nPreparing to unpack .../python3-markupsafe_2.1.5-1build2_amd64.deb ...\r\nUnpacking python3-markupsafe (2.1.5-1build2) ...\r\nSelecting previously unselected package python3-jinja2.\r\nPreparing to unpack .../python3-jinja2_3.1.2-1ubuntu1.3_all.deb ...\r\nUnpacking python3-jinja2 (3.1.2-1ubuntu1.3) ...\r\nSetting up python3-yaml (6.0.1-2build2) ...\r\nSetting up python3-markupsafe (2.1.5-1build2) ...\r\nSetting up python3-jinja2 (3.1.2-1ubuntu1.3) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "The following additional packages will be installed:",
                                "  python3-markupsafe",
                                "Suggested packages:",
                                "  python-jinja2-doc",
                                "Recommended packages:",
                                "  python3-babel",
                                "The following NEW packages will be installed:",
                                "  python3-jinja2 python3-markupsafe python3-yaml",
                                "0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 244 kB of archives.",
                                "After this operation, 1128 kB of additional disk space will be used.",
                                "Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-yaml amd64 6.0.1-2build2 [123 kB]",
                                "Get:2 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-markupsafe amd64 2.1.5-1build2 [12.7 kB]",
                                "Get:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-jinja2 all 3.1.2-1ubuntu1.3 [108 kB]",
                                "Fetched 244 kB in 0s (1146 kB/s)",
                                "Selecting previously unselected package python3-yaml.",
                                "(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 ... 35089 files and directories currently installed.)",
                                "Preparing to unpack .../python3-yaml_6.0.1-2build2_amd64.deb ...",
                                "Unpacking python3-yaml (6.0.1-2build2) ...",
                                "Selecting previously unselected package python3-markupsafe.",
                                "Preparing to unpack .../python3-markupsafe_2.1.5-1build2_amd64.deb ...",
                                "Unpacking python3-markupsafe (2.1.5-1build2) ...",
                                "Selecting previously unselected package python3-jinja2.",
                                "Preparing to unpack .../python3-jinja2_3.1.2-1ubuntu1.3_all.deb ...",
                                "Unpacking python3-jinja2 (3.1.2-1ubuntu1.3) ...",
                                "Setting up python3-yaml (6.0.1-2build2) ...",
                                "Setting up python3-markupsafe (2.1.5-1build2) ...",
                                "Setting up python3-jinja2 (3.1.2-1ubuntu1.3) ..."
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:51.704142Z",
                            "start": "2026-10-06T08:54:40.651671Z"
                        },
                        "id": "0242ac1f-6606-7274-5a90-000000000004",
                        "name": "Install required packages"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.command",
                            "changed": false,
                            "cmd": [
                                "python3",
                                "-m",
                                "unittest",
                                "discover",
                                "--verbose",
                                "--start-directory",
                                "zuul"
                            ],
                            "delta": "0:00:01.746690",
                            "end": "2026-10-06 08:54:53.995966",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "python3 -m unittest discover --verbose --start-directory zuul",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/metalbox",
                                    "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": "0242ac1f-6606-7274-5a90-000000000005-1-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-10-06 08:54:52.249276",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "test_box_renders_enough_images (test_box_images_not_deployed.NotDeployedTableTest.test_box_renders_enough_images) ... ok\ntest_every_row_is_still_rendered (test_box_images_not_deployed.NotDeployedTableTest.test_every_row_is_still_rendered) ... ok\ntest_every_unless_flag_exists (test_box_images_not_deployed.NotDeployedTableTest.test_every_unless_flag_exists) ... ok\ntest_no_excluded_image_is_mirrored_at_its_rendered_tag (test_box_images_not_deployed.NotDeployedTableTest.test_no_excluded_image_is_mirrored_at_its_rendered_tag)\nExact-ref only: vault and traefik are mirrored at older tags, which ... ok\ntest_all_present_exits_0 (test_check_box_images.MainTest.test_all_present_exits_0) ... ok\ntest_configuration_overrides_inventory (test_check_box_images.MainTest.test_configuration_overrides_inventory) ... ok\ntest_disabled_service_is_not_required (test_check_box_images.MainTest.test_disabled_service_is_not_required) ... ok\ntest_enabled_service_is_required (test_check_box_images.MainTest.test_enabled_service_is_required) ... ok\ntest_excluded_key_may_render_outside_the_box (test_check_box_images.MainTest.test_excluded_key_may_render_outside_the_box) ... ok\ntest_junk_unless_flag_exits_2 (test_check_box_images.MainTest.test_junk_unless_flag_exits_2) ... ok\ntest_malformed_table_exits_2 (test_check_box_images.MainTest.test_malformed_table_exits_2) ... ok\ntest_missing_image_exits_1_and_names_it (test_check_box_images.MainTest.test_missing_image_exits_1_and_names_it) ... ok\ntest_no_images_exits_2 (test_check_box_images.MainTest.test_no_images_exits_2) ... ok\ntest_path_in_registry_variable_is_queried (test_check_box_images.MainTest.test_path_in_registry_variable_is_queried) ... ok\ntest_registry_error_exits_2 (test_check_box_images.MainTest.test_registry_error_exits_2) ... ok\ntest_registry_outside_the_box_exits_2 (test_check_box_images.MainTest.test_registry_outside_the_box_exits_2) ... ok\ntest_templated_unless_flag_exits_2 (test_check_box_images.MainTest.test_templated_unless_flag_exits_2) ... ok\ntest_unless_flag_absent_from_configuration_exits_2 (test_check_box_images.MainTest.test_unless_flag_absent_from_configuration_exits_2) ... ok\ntest_unlisted_key_outside_the_box_exits_2 (test_check_box_images.MainTest.test_unlisted_key_outside_the_box_exits_2) ... ok\ntest_unreachable_registry_exits_2 (test_check_box_images.MainTest.test_unreachable_registry_exits_2) ... ok\ntest_missing_file_exits_2 (test_check_container_image_tags.CollectTest.test_missing_file_exits_2) ... ok\ntest_references_use_source_and_prefix (test_check_container_image_tags.CollectTest.test_references_use_source_and_prefix) ... ok\ntest_same_reference_from_two_files_is_probed_once (test_check_container_image_tags.CollectTest.test_same_reference_from_two_files_is_probed_once) ... ok\ntest_unmapped_key_exits_2 (test_check_container_image_tags.CollectTest.test_unmapped_key_exits_2) ... ok\ntest_unmapped_key_is_reported (test_check_container_image_tags.CollectTest.test_unmapped_key_is_reported) ... ok\ntest_every_copied_list_maps_to_its_source_prefix (test_check_container_image_tags.PrefixMapTest.test_every_copied_list_maps_to_its_source_prefix) ... ok\ntest_directory_form_shadows_single_file (test_image_refs.LoadManagerConfigurationTest.test_directory_form_shadows_single_file) ... ok\ntest_manager_group_vars_sit_between_all_and_host_vars (test_image_refs.LoadManagerConfigurationTest.test_manager_group_vars_sit_between_all_and_host_vars) ... ok\ntest_missing_manager_images_is_an_error (test_image_refs.LoadManagerConfigurationTest.test_missing_manager_images_is_an_error) ... ok\ntest_other_hosts_are_not_read (test_image_refs.LoadManagerConfigurationTest.test_other_hosts_are_not_read) ... ok\ntest_precedence_matches_the_manager_deploy (test_image_refs.LoadManagerConfigurationTest.test_precedence_matches_the_manager_deploy) ... ok\ntest_single_file_forms_are_read (test_image_refs.LoadManagerConfigurationTest.test_single_file_forms_are_read) ... ok\ntest_yaml_extension_is_read_in_sorted_order (test_image_refs.LoadManagerConfigurationTest.test_yaml_extension_is_read_in_sorted_order) ... ok\ntest_circular_reference_is_an_error (test_image_refs.PlaceholderModeTest.test_circular_reference_is_an_error) ... ok\ntest_default_applies_without_site_value (test_image_refs.PlaceholderModeTest.test_default_applies_without_site_value) ... ok\ntest_errors_list_skips_instead_of_raising (test_image_refs.PlaceholderModeTest.test_errors_list_skips_instead_of_raising) ... ok\ntest_hardcoded_host_is_an_error (test_image_refs.PlaceholderModeTest.test_hardcoded_host_is_an_error) ... ok\ntest_load_yaml_keeps_versions_as_strings (test_image_refs.PlaceholderModeTest.test_load_yaml_keeps_versions_as_strings) ... ok\ntest_registry_named_values_that_are_not_registries_render (test_image_refs.PlaceholderModeTest.test_registry_named_values_that_are_not_registries_render) ... ok\ntest_renders_through_registry_variables (test_image_refs.PlaceholderModeTest.test_renders_through_registry_variables) ... ok\ntest_site_registry_values_do_not_leak_into_refs (test_image_refs.PlaceholderModeTest.test_site_registry_values_do_not_leak_into_refs) ... ok\ntest_undefined_variable_is_an_error (test_image_refs.PlaceholderModeTest.test_undefined_variable_is_an_error) ... ok\ntest_configured_registry_is_stripped (test_image_refs.RegistryModeTest.test_configured_registry_is_stripped) ... ok\ntest_host_prefix_must_end_at_a_slash (test_image_refs.RegistryModeTest.test_host_prefix_must_end_at_a_slash) ... ok\ntest_no_library_prefix_is_invented (test_image_refs.RegistryModeTest.test_no_library_prefix_is_invented) ... ok\ntest_path_in_registry_variable_is_kept (test_image_refs.RegistryModeTest.test_path_in_registry_variable_is_kept) ... ok\ntest_reference_outside_the_registry_is_an_error (test_image_refs.RegistryModeTest.test_reference_outside_the_registry_is_an_error) ... ok\ntest_every_box_image_renders_through_the_box_registry (test_image_refs.ShippedBoxConfigurationTest.test_every_box_image_renders_through_the_box_registry) ... ok\ntest_fetch_failure_fails_without_writing (test_resolve_container_images_latest.MainTest.test_fetch_failure_fails_without_writing) ... ok\ntest_missing_digest_fails_without_writing (test_resolve_container_images_latest.MainTest.test_missing_digest_fails_without_writing) ... ok\ntest_missing_role_defaults_fail_without_writing (test_resolve_container_images_latest.MainTest.test_missing_role_defaults_fail_without_writing) ... ok\ntest_render_receives_the_pinned_commit (test_resolve_container_images_latest.MainTest.test_render_receives_the_pinned_commit) ... ok\ntest_unresolved_fails_without_writing (test_resolve_container_images_latest.MainTest.test_unresolved_fails_without_writing) ... ok\ntest_writes_vars_and_manifest (test_resolve_container_images_latest.MainTest.test_writes_vars_and_manifest) ... ok\ntest_empty_output_is_fatal (test_resolve_container_images_latest.ReleaseCommitTest.test_empty_output_is_fatal) ... ok\ntest_git_failure_is_fatal (test_resolve_container_images_latest.ReleaseCommitTest.test_git_failure_is_fatal) ... ok\ntest_parses_ls_remote (test_resolve_container_images_latest.ReleaseCommitTest.test_parses_ls_remote) ... ok\ntest_fetches_at_generics_version_and_pins_urls (test_resolve_container_images_latest.RenderGenericsTest.test_fetches_at_generics_version_and_pins_urls) ... ok\ntest_missing_generics_version_is_fatal (test_resolve_container_images_latest.RenderGenericsTest.test_missing_generics_version_is_fatal) ... ok\ntest_broken_extra_image_in_runner_role_is_skipped (test_resolve_container_images_latest.ResolveTest.test_broken_extra_image_in_runner_role_is_skipped) ... ok\ntest_broken_generics_entry_fails (test_resolve_container_images_latest.ResolveTest.test_broken_generics_entry_fails) ... ok\ntest_ceph_stream_follows_site (test_resolve_container_images_latest.ResolveTest.test_ceph_stream_follows_site) ... ok\ntest_manager_environment_service_resolves_from_generics (test_resolve_container_images_latest.ResolveTest.test_manager_environment_service_resolves_from_generics) ... ok\ntest_missing_ceph_image_version_fails (test_resolve_container_images_latest.ResolveTest.test_missing_ceph_image_version_fails) ... ok\ntest_missing_cephclient_fails (test_resolve_container_images_latest.ResolveTest.test_missing_cephclient_fails) ... ok\ntest_missing_runner_role_fails_and_names_it (test_resolve_container_images_latest.ResolveTest.test_missing_runner_role_fails_and_names_it) ... ok\ntest_openstackclient_from_kolla_versions (test_resolve_container_images_latest.ResolveTest.test_openstackclient_from_kolla_versions) ... ok\ntest_osism_ansible_versions_beat_ceph_ansible (test_resolve_container_images_latest.ResolveTest.test_osism_ansible_versions_beat_ceph_ansible) ... ok\ntest_pinned_runner_tag_in_generics_fails (test_resolve_container_images_latest.ResolveTest.test_pinned_runner_tag_in_generics_fails) ... ok\ntest_role_default_applies_when_no_runner_pins_it (test_resolve_container_images_latest.ResolveTest.test_role_default_applies_when_no_runner_pins_it) ... ok\ntest_role_outside_runner_roles_is_ignored (test_resolve_container_images_latest.ResolveTest.test_role_outside_runner_roles_is_ignored) ... ok\ntest_runner_service_resolves_from_runner_not_generics (test_resolve_container_images_latest.ResolveTest.test_runner_service_resolves_from_runner_not_generics) ... ok\ntest_sorted_by_image (test_resolve_container_images_latest.ResolveTest.test_sorted_by_image) ... ok\ntest_sources (test_resolve_container_images_latest.ResolveTest.test_sources) ... ok\ntest_unmatched_entry_fails_and_names_it (test_resolve_container_images_latest.ResolveTest.test_unmatched_entry_fails_and_names_it) ... ok\ntest_version_input_overrides_role_default (test_resolve_container_images_latest.ResolveTest.test_version_input_overrides_role_default) ... ok\ntest_versions_override_role_defaults (test_resolve_container_images_latest.ResolveTest.test_versions_override_role_defaults) ... ok\ntest_split_by_namespace_and_source (test_resolve_container_images_latest.VarsListsTest.test_split_by_namespace_and_source) ... ok\ntest_commented_entry_is_fatal_instead_of_invisible (test_update_container_images_stable.MainTest.test_commented_entry_is_fatal_instead_of_invisible) ... ok\ntest_dry_run_reports_when_nothing_is_pending (test_update_container_images_stable.MainTest.test_dry_run_reports_when_nothing_is_pending) ... ok\ntest_dry_run_writes_nothing_and_reports_the_pending_changes (test_update_container_images_stable.MainTest.test_dry_run_writes_nothing_and_reports_the_pending_changes) ... ok\ntest_mixed_openstack_releases_are_fatal_without_o (test_update_container_images_stable.MainTest.test_mixed_openstack_releases_are_fatal_without_o) ... ok\ntest_o_moves_the_entries_to_the_requested_release (test_update_container_images_stable.MainTest.test_o_moves_the_entries_to_the_requested_release) ... ok\ntest_openstack_release_is_taken_from_the_file (test_update_container_images_stable.MainTest.test_openstack_release_is_taken_from_the_file) ... ok\ntest_tally_sums_to_the_number_of_entries (test_update_container_images_stable.MainTest.test_tally_sums_to_the_number_of_entries) ... ok\ntest_unlisted_images_of_the_release_are_counted (test_update_container_images_stable.MainTest.test_unlisted_images_of_the_release_are_counted) ... ok\ntest_up_to_date_files_are_left_alone (test_update_container_images_stable.MainTest.test_up_to_date_files_are_left_alone) ... ok\ntest_updates_tags_and_keeps_unmapped_entries_with_exit_0 (test_update_container_images_stable.MainTest.test_updates_tags_and_keeps_unmapped_entries_with_exit_0) ... ok\ntest_write_failure_is_fatal_and_leaves_the_file_untouched (test_update_container_images_stable.MainTest.test_write_failure_is_fatal_and_leaves_the_file_untouched) ... ok\ntest_otel_collector_is_the_contrib_image (test_update_container_images_stable.ManagerImagesMappingTest.test_otel_collector_is_the_contrib_image) ... ok\ntest_phpmyadmin_is_the_release_repository (test_update_container_images_stable.ManagerImagesMappingTest.test_phpmyadmin_is_the_release_repository) ... ok\ntest_missing_kolla_is_fatal (test_update_container_images_stable.ReleaseVersionsTest.test_missing_kolla_is_fatal) ... ok\ntest_openstackclient_falls_back_to_the_openstack_release_file (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_falls_back_to_the_openstack_release_file) ... ok\ntest_openstackclient_missing_everywhere_is_a_warning (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_missing_everywhere_is_a_warning) ... ok\ntest_openstackclient_pinned_in_base_yml_wins (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_pinned_in_base_yml_wins) ... ok\ntest_images_yml_is_found_under_any_root_spelling (test_update_container_images_stable.SbomViaCraneTest.test_images_yml_is_found_under_any_root_spelling) ... ok\ntest_missing_images_yml_is_fatal (test_update_container_images_stable.SbomViaCraneTest.test_missing_images_yml_is_fatal) ... ok\ntest_flow_sequence_is_fatal (test_update_container_images_stable.ScanFileTest.test_flow_sequence_is_fatal) ... ok\ntest_invalid_yaml_is_fatal (test_update_container_images_stable.ScanFileTest.test_invalid_yaml_is_fatal) ... ok\ntest_plain_entries_are_found_with_their_list_and_line (test_update_container_images_stable.ScanFileTest.test_plain_entries_are_found_with_their_list_and_line) ... ok\ntest_quoted_entry_is_fatal (test_update_container_images_stable.ScanFileTest.test_quoted_entry_is_fatal) ... ok\ntest_trailing_comment_is_fatal (test_update_container_images_stable.ScanFileTest.test_trailing_comment_is_fatal) ... ok\ntest_failed_rename_is_fatal_and_leaves_no_trace (test_update_container_images_stable.WriteFileTest.test_failed_rename_is_fatal_and_leaves_no_trace) ... ok\ntest_replaces_the_content_and_keeps_the_mode (test_update_container_images_stable.WriteFileTest.test_replaces_the_content_and_keeps_the_mode) ... ok\n\n----------------------------------------------------------------------\nRan 104 tests in 1.389s\n\nOK",
                            "stdout_lines": [
                                "test_box_renders_enough_images (test_box_images_not_deployed.NotDeployedTableTest.test_box_renders_enough_images) ... ok",
                                "test_every_row_is_still_rendered (test_box_images_not_deployed.NotDeployedTableTest.test_every_row_is_still_rendered) ... ok",
                                "test_every_unless_flag_exists (test_box_images_not_deployed.NotDeployedTableTest.test_every_unless_flag_exists) ... ok",
                                "test_no_excluded_image_is_mirrored_at_its_rendered_tag (test_box_images_not_deployed.NotDeployedTableTest.test_no_excluded_image_is_mirrored_at_its_rendered_tag)",
                                "Exact-ref only: vault and traefik are mirrored at older tags, which ... ok",
                                "test_all_present_exits_0 (test_check_box_images.MainTest.test_all_present_exits_0) ... ok",
                                "test_configuration_overrides_inventory (test_check_box_images.MainTest.test_configuration_overrides_inventory) ... ok",
                                "test_disabled_service_is_not_required (test_check_box_images.MainTest.test_disabled_service_is_not_required) ... ok",
                                "test_enabled_service_is_required (test_check_box_images.MainTest.test_enabled_service_is_required) ... ok",
                                "test_excluded_key_may_render_outside_the_box (test_check_box_images.MainTest.test_excluded_key_may_render_outside_the_box) ... ok",
                                "test_junk_unless_flag_exits_2 (test_check_box_images.MainTest.test_junk_unless_flag_exits_2) ... ok",
                                "test_malformed_table_exits_2 (test_check_box_images.MainTest.test_malformed_table_exits_2) ... ok",
                                "test_missing_image_exits_1_and_names_it (test_check_box_images.MainTest.test_missing_image_exits_1_and_names_it) ... ok",
                                "test_no_images_exits_2 (test_check_box_images.MainTest.test_no_images_exits_2) ... ok",
                                "test_path_in_registry_variable_is_queried (test_check_box_images.MainTest.test_path_in_registry_variable_is_queried) ... ok",
                                "test_registry_error_exits_2 (test_check_box_images.MainTest.test_registry_error_exits_2) ... ok",
                                "test_registry_outside_the_box_exits_2 (test_check_box_images.MainTest.test_registry_outside_the_box_exits_2) ... ok",
                                "test_templated_unless_flag_exits_2 (test_check_box_images.MainTest.test_templated_unless_flag_exits_2) ... ok",
                                "test_unless_flag_absent_from_configuration_exits_2 (test_check_box_images.MainTest.test_unless_flag_absent_from_configuration_exits_2) ... ok",
                                "test_unlisted_key_outside_the_box_exits_2 (test_check_box_images.MainTest.test_unlisted_key_outside_the_box_exits_2) ... ok",
                                "test_unreachable_registry_exits_2 (test_check_box_images.MainTest.test_unreachable_registry_exits_2) ... ok",
                                "test_missing_file_exits_2 (test_check_container_image_tags.CollectTest.test_missing_file_exits_2) ... ok",
                                "test_references_use_source_and_prefix (test_check_container_image_tags.CollectTest.test_references_use_source_and_prefix) ... ok",
                                "test_same_reference_from_two_files_is_probed_once (test_check_container_image_tags.CollectTest.test_same_reference_from_two_files_is_probed_once) ... ok",
                                "test_unmapped_key_exits_2 (test_check_container_image_tags.CollectTest.test_unmapped_key_exits_2) ... ok",
                                "test_unmapped_key_is_reported (test_check_container_image_tags.CollectTest.test_unmapped_key_is_reported) ... ok",
                                "test_every_copied_list_maps_to_its_source_prefix (test_check_container_image_tags.PrefixMapTest.test_every_copied_list_maps_to_its_source_prefix) ... ok",
                                "test_directory_form_shadows_single_file (test_image_refs.LoadManagerConfigurationTest.test_directory_form_shadows_single_file) ... ok",
                                "test_manager_group_vars_sit_between_all_and_host_vars (test_image_refs.LoadManagerConfigurationTest.test_manager_group_vars_sit_between_all_and_host_vars) ... ok",
                                "test_missing_manager_images_is_an_error (test_image_refs.LoadManagerConfigurationTest.test_missing_manager_images_is_an_error) ... ok",
                                "test_other_hosts_are_not_read (test_image_refs.LoadManagerConfigurationTest.test_other_hosts_are_not_read) ... ok",
                                "test_precedence_matches_the_manager_deploy (test_image_refs.LoadManagerConfigurationTest.test_precedence_matches_the_manager_deploy) ... ok",
                                "test_single_file_forms_are_read (test_image_refs.LoadManagerConfigurationTest.test_single_file_forms_are_read) ... ok",
                                "test_yaml_extension_is_read_in_sorted_order (test_image_refs.LoadManagerConfigurationTest.test_yaml_extension_is_read_in_sorted_order) ... ok",
                                "test_circular_reference_is_an_error (test_image_refs.PlaceholderModeTest.test_circular_reference_is_an_error) ... ok",
                                "test_default_applies_without_site_value (test_image_refs.PlaceholderModeTest.test_default_applies_without_site_value) ... ok",
                                "test_errors_list_skips_instead_of_raising (test_image_refs.PlaceholderModeTest.test_errors_list_skips_instead_of_raising) ... ok",
                                "test_hardcoded_host_is_an_error (test_image_refs.PlaceholderModeTest.test_hardcoded_host_is_an_error) ... ok",
                                "test_load_yaml_keeps_versions_as_strings (test_image_refs.PlaceholderModeTest.test_load_yaml_keeps_versions_as_strings) ... ok",
                                "test_registry_named_values_that_are_not_registries_render (test_image_refs.PlaceholderModeTest.test_registry_named_values_that_are_not_registries_render) ... ok",
                                "test_renders_through_registry_variables (test_image_refs.PlaceholderModeTest.test_renders_through_registry_variables) ... ok",
                                "test_site_registry_values_do_not_leak_into_refs (test_image_refs.PlaceholderModeTest.test_site_registry_values_do_not_leak_into_refs) ... ok",
                                "test_undefined_variable_is_an_error (test_image_refs.PlaceholderModeTest.test_undefined_variable_is_an_error) ... ok",
                                "test_configured_registry_is_stripped (test_image_refs.RegistryModeTest.test_configured_registry_is_stripped) ... ok",
                                "test_host_prefix_must_end_at_a_slash (test_image_refs.RegistryModeTest.test_host_prefix_must_end_at_a_slash) ... ok",
                                "test_no_library_prefix_is_invented (test_image_refs.RegistryModeTest.test_no_library_prefix_is_invented) ... ok",
                                "test_path_in_registry_variable_is_kept (test_image_refs.RegistryModeTest.test_path_in_registry_variable_is_kept) ... ok",
                                "test_reference_outside_the_registry_is_an_error (test_image_refs.RegistryModeTest.test_reference_outside_the_registry_is_an_error) ... ok",
                                "test_every_box_image_renders_through_the_box_registry (test_image_refs.ShippedBoxConfigurationTest.test_every_box_image_renders_through_the_box_registry) ... ok",
                                "test_fetch_failure_fails_without_writing (test_resolve_container_images_latest.MainTest.test_fetch_failure_fails_without_writing) ... ok",
                                "test_missing_digest_fails_without_writing (test_resolve_container_images_latest.MainTest.test_missing_digest_fails_without_writing) ... ok",
                                "test_missing_role_defaults_fail_without_writing (test_resolve_container_images_latest.MainTest.test_missing_role_defaults_fail_without_writing) ... ok",
                                "test_render_receives_the_pinned_commit (test_resolve_container_images_latest.MainTest.test_render_receives_the_pinned_commit) ... ok",
                                "test_unresolved_fails_without_writing (test_resolve_container_images_latest.MainTest.test_unresolved_fails_without_writing) ... ok",
                                "test_writes_vars_and_manifest (test_resolve_container_images_latest.MainTest.test_writes_vars_and_manifest) ... ok",
                                "test_empty_output_is_fatal (test_resolve_container_images_latest.ReleaseCommitTest.test_empty_output_is_fatal) ... ok",
                                "test_git_failure_is_fatal (test_resolve_container_images_latest.ReleaseCommitTest.test_git_failure_is_fatal) ... ok",
                                "test_parses_ls_remote (test_resolve_container_images_latest.ReleaseCommitTest.test_parses_ls_remote) ... ok",
                                "test_fetches_at_generics_version_and_pins_urls (test_resolve_container_images_latest.RenderGenericsTest.test_fetches_at_generics_version_and_pins_urls) ... ok",
                                "test_missing_generics_version_is_fatal (test_resolve_container_images_latest.RenderGenericsTest.test_missing_generics_version_is_fatal) ... ok",
                                "test_broken_extra_image_in_runner_role_is_skipped (test_resolve_container_images_latest.ResolveTest.test_broken_extra_image_in_runner_role_is_skipped) ... ok",
                                "test_broken_generics_entry_fails (test_resolve_container_images_latest.ResolveTest.test_broken_generics_entry_fails) ... ok",
                                "test_ceph_stream_follows_site (test_resolve_container_images_latest.ResolveTest.test_ceph_stream_follows_site) ... ok",
                                "test_manager_environment_service_resolves_from_generics (test_resolve_container_images_latest.ResolveTest.test_manager_environment_service_resolves_from_generics) ... ok",
                                "test_missing_ceph_image_version_fails (test_resolve_container_images_latest.ResolveTest.test_missing_ceph_image_version_fails) ... ok",
                                "test_missing_cephclient_fails (test_resolve_container_images_latest.ResolveTest.test_missing_cephclient_fails) ... ok",
                                "test_missing_runner_role_fails_and_names_it (test_resolve_container_images_latest.ResolveTest.test_missing_runner_role_fails_and_names_it) ... ok",
                                "test_openstackclient_from_kolla_versions (test_resolve_container_images_latest.ResolveTest.test_openstackclient_from_kolla_versions) ... ok",
                                "test_osism_ansible_versions_beat_ceph_ansible (test_resolve_container_images_latest.ResolveTest.test_osism_ansible_versions_beat_ceph_ansible) ... ok",
                                "test_pinned_runner_tag_in_generics_fails (test_resolve_container_images_latest.ResolveTest.test_pinned_runner_tag_in_generics_fails) ... ok",
                                "test_role_default_applies_when_no_runner_pins_it (test_resolve_container_images_latest.ResolveTest.test_role_default_applies_when_no_runner_pins_it) ... ok",
                                "test_role_outside_runner_roles_is_ignored (test_resolve_container_images_latest.ResolveTest.test_role_outside_runner_roles_is_ignored) ... ok",
                                "test_runner_service_resolves_from_runner_not_generics (test_resolve_container_images_latest.ResolveTest.test_runner_service_resolves_from_runner_not_generics) ... ok",
                                "test_sorted_by_image (test_resolve_container_images_latest.ResolveTest.test_sorted_by_image) ... ok",
                                "test_sources (test_resolve_container_images_latest.ResolveTest.test_sources) ... ok",
                                "test_unmatched_entry_fails_and_names_it (test_resolve_container_images_latest.ResolveTest.test_unmatched_entry_fails_and_names_it) ... ok",
                                "test_version_input_overrides_role_default (test_resolve_container_images_latest.ResolveTest.test_version_input_overrides_role_default) ... ok",
                                "test_versions_override_role_defaults (test_resolve_container_images_latest.ResolveTest.test_versions_override_role_defaults) ... ok",
                                "test_split_by_namespace_and_source (test_resolve_container_images_latest.VarsListsTest.test_split_by_namespace_and_source) ... ok",
                                "test_commented_entry_is_fatal_instead_of_invisible (test_update_container_images_stable.MainTest.test_commented_entry_is_fatal_instead_of_invisible) ... ok",
                                "test_dry_run_reports_when_nothing_is_pending (test_update_container_images_stable.MainTest.test_dry_run_reports_when_nothing_is_pending) ... ok",
                                "test_dry_run_writes_nothing_and_reports_the_pending_changes (test_update_container_images_stable.MainTest.test_dry_run_writes_nothing_and_reports_the_pending_changes) ... ok",
                                "test_mixed_openstack_releases_are_fatal_without_o (test_update_container_images_stable.MainTest.test_mixed_openstack_releases_are_fatal_without_o) ... ok",
                                "test_o_moves_the_entries_to_the_requested_release (test_update_container_images_stable.MainTest.test_o_moves_the_entries_to_the_requested_release) ... ok",
                                "test_openstack_release_is_taken_from_the_file (test_update_container_images_stable.MainTest.test_openstack_release_is_taken_from_the_file) ... ok",
                                "test_tally_sums_to_the_number_of_entries (test_update_container_images_stable.MainTest.test_tally_sums_to_the_number_of_entries) ... ok",
                                "test_unlisted_images_of_the_release_are_counted (test_update_container_images_stable.MainTest.test_unlisted_images_of_the_release_are_counted) ... ok",
                                "test_up_to_date_files_are_left_alone (test_update_container_images_stable.MainTest.test_up_to_date_files_are_left_alone) ... ok",
                                "test_updates_tags_and_keeps_unmapped_entries_with_exit_0 (test_update_container_images_stable.MainTest.test_updates_tags_and_keeps_unmapped_entries_with_exit_0) ... ok",
                                "test_write_failure_is_fatal_and_leaves_the_file_untouched (test_update_container_images_stable.MainTest.test_write_failure_is_fatal_and_leaves_the_file_untouched) ... ok",
                                "test_otel_collector_is_the_contrib_image (test_update_container_images_stable.ManagerImagesMappingTest.test_otel_collector_is_the_contrib_image) ... ok",
                                "test_phpmyadmin_is_the_release_repository (test_update_container_images_stable.ManagerImagesMappingTest.test_phpmyadmin_is_the_release_repository) ... ok",
                                "test_missing_kolla_is_fatal (test_update_container_images_stable.ReleaseVersionsTest.test_missing_kolla_is_fatal) ... ok",
                                "test_openstackclient_falls_back_to_the_openstack_release_file (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_falls_back_to_the_openstack_release_file) ... ok",
                                "test_openstackclient_missing_everywhere_is_a_warning (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_missing_everywhere_is_a_warning) ... ok",
                                "test_openstackclient_pinned_in_base_yml_wins (test_update_container_images_stable.ReleaseVersionsTest.test_openstackclient_pinned_in_base_yml_wins) ... ok",
                                "test_images_yml_is_found_under_any_root_spelling (test_update_container_images_stable.SbomViaCraneTest.test_images_yml_is_found_under_any_root_spelling) ... ok",
                                "test_missing_images_yml_is_fatal (test_update_container_images_stable.SbomViaCraneTest.test_missing_images_yml_is_fatal) ... ok",
                                "test_flow_sequence_is_fatal (test_update_container_images_stable.ScanFileTest.test_flow_sequence_is_fatal) ... ok",
                                "test_invalid_yaml_is_fatal (test_update_container_images_stable.ScanFileTest.test_invalid_yaml_is_fatal) ... ok",
                                "test_plain_entries_are_found_with_their_list_and_line (test_update_container_images_stable.ScanFileTest.test_plain_entries_are_found_with_their_list_and_line) ... ok",
                                "test_quoted_entry_is_fatal (test_update_container_images_stable.ScanFileTest.test_quoted_entry_is_fatal) ... ok",
                                "test_trailing_comment_is_fatal (test_update_container_images_stable.ScanFileTest.test_trailing_comment_is_fatal) ... ok",
                                "test_failed_rename_is_fatal_and_leaves_no_trace (test_update_container_images_stable.WriteFileTest.test_failed_rename_is_fatal_and_leaves_no_trace) ... ok",
                                "test_replaces_the_content_and_keeps_the_mode (test_update_container_images_stable.WriteFileTest.test_replaces_the_content_and_keeps_the_mode) ... ok",
                                "",
                                "----------------------------------------------------------------------",
                                "Ran 104 tests in 1.389s",
                                "",
                                "OK"
                            ],
                            "zuul_log_id": "0242ac1f-6606-7274-5a90-000000000005-1-ubuntunoble"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:54.249766Z",
                            "start": "2026-10-06T08:54:51.735101Z"
                        },
                        "id": "0242ac1f-6606-7274-5a90-000000000005",
                        "name": "Run unit tests"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 2,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/osism/zuul-config/playbooks/base/post-fetch.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-06T08:55:24.581760Z",
                    "start": "2026-10-06T08:54:55.284599Z"
                },
                "id": "0242ac1f-6606-0cd0-1972-000000000002",
                "name": "Base post-fetch"
            },
            "tasks": [
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "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": "0755",
                                    "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
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:54:55.803426Z",
                            "start": "2026-10-06T08:54:55.300276Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-000000000009",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j774110986207.1442",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:06.143536",
                            "end": "2026-10-06 08:55:03.012464",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&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": "0242ac1f-6606-0cd0-1972-00000000000a-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j774110986207.1442",
                            "start": "2026-10-06 08:54:56.868928",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0cd0-1972-00000000000a-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:07.784684Z",
                            "start": "2026-10-06T08:54:55.815668Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000000a",
                        "name": "Snapshot dual-stack network state (post)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j823123294578.1551",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\n{\n  echo \"== docker / buildkit IPv6 config ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    echo \"-- docker info (IPv6 lines) --\"\n    if info=$(timeout 30 docker info 2>&1); then\n      printf '%s\\n' \"$info\" | grep -iE 'ipv6|ip6tables'        || echo \"(no IPv6 lines)\"\n    else\n      echo \"docker info FAILED/timed out (daemon down or no permission):\"\n      printf '%s\\n' \"$info\" | head -5\n    fi\n    echo \"-- /etc/docker/daemon.json --\"\n    cat /etc/docker/daemon.json 2>/dev/null || echo \"(absent)\"\n    echo \"-- docker network inspect bridge (EnableIPv6 + IPAM) --\"\n    timeout 30 docker network inspect bridge 2>&1      | grep -iE '\"Name\"|EnableIPv6|Subnet|Gateway'      || echo \"(inspect failed)\"\n    echo \"-- docker buildx ls --\"\n    timeout 30 docker buildx ls 2>&1 || echo \"(buildx unavailable)\"\n  fi\n} >> \"$out\" 2>&1\n",
                            "delta": "0:00:00.010188",
                            "end": "2026-10-06 08:55:08.593652",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\n{\n  echo \"== docker / buildkit IPv6 config ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    echo \"-- docker info (IPv6 lines) --\"\n    if info=$(timeout 30 docker info 2>&1); then\n      printf '%s\\n' \"$info\" | grep -iE 'ipv6|ip6tables'        || echo \"(no IPv6 lines)\"\n    else\n      echo \"docker info FAILED/timed out (daemon down or no permission):\"\n      printf '%s\\n' \"$info\" | head -5\n    fi\n    echo \"-- /etc/docker/daemon.json --\"\n    cat /etc/docker/daemon.json 2>/dev/null || echo \"(absent)\"\n    echo \"-- docker network inspect bridge (EnableIPv6 + IPAM) --\"\n    timeout 30 docker network inspect bridge 2>&1      | grep -iE '\"Name\"|EnableIPv6|Subnet|Gateway'      || echo \"(inspect failed)\"\n    echo \"-- docker buildx ls --\"\n    timeout 30 docker buildx ls 2>&1 || echo \"(buildx unavailable)\"\n  fi\n} >> \"$out\" 2>&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": "0242ac1f-6606-0cd0-1972-00000000000b-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j823123294578.1551",
                            "start": "2026-10-06 08:55:08.583464",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0cd0-1972-00000000000b-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:13.995803Z",
                            "start": "2026-10-06T08:55:07.791505Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000000b",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j295726956515.1586",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\n{\n  echo \"== container netns exec probe (default bridge) ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    # Prefer a full base image likely to carry ip/curl/getent,\n    # skipping dangling (<none>) tags; fall back to any local image\n    # ID (a valid run reference). Never pull. (docker image ls\n    # columns: REPOSITORY TAG IMAGE_ID ...)\n    img=$(timeout 30 docker image ls 2>/dev/null | awk      '$1~/^(ubuntu|debian)$/ && $2!=\"<none>\"{print $1\":\"$2; exit}')\n    if [ -z \"$img\" ]; then\n      img=$(timeout 30 docker image ls -q 2>/dev/null | head -1)\n    fi\n    if [ -z \"$img\" ]; then\n      echo \"no local image; skipped (will not pull over a broken network)\"\n    else\n      echo \"using local image $img\"\n      # Bound the whole probe: on the degraded node this role exists\n      # to diagnose, a wedged daemon can make `docker run` hang\n      # indefinitely and stall teardown. timeout keeps it best-effort.\n      # A killed client may orphan the container, but the node is torn\n      # down right after, so that is acceptable here.\n      timeout 60 docker run --rm \"$img\" sh -c '\n        echo \"tools: ip=$(command -v ip || echo no)\" \\\n             \"curl=$(command -v curl || echo no)\" \\\n             \"getent=$(command -v getent || echo no)\"\n        echo \"-- ip -6 addr / route --\"\n        (ip -6 addr show 2>/dev/null; ip -6 route show 2>/dev/null) \\\n          || cat /proc/net/ipv6_route 2>/dev/null || echo \"no ip tool\"\n        echo \"-- /etc/resolv.conf --\"; cat /etc/resolv.conf 2>/dev/null\n        for d in '\"$targets\"'; do\n          echo \"target $d:\"\n          getent ahosts \"$d\" 2>&1 | head -4 || echo \"  getent unavailable\"\n          (curl -6 -sS -m 8 -o /dev/null \\\n             -w \"  v6 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v6 FAIL/unavailable\")\n          (curl -4 -sS -m 8 -o /dev/null \\\n             -w \"  v4 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v4 FAIL/unavailable\")\n        done\n      ' 2>&1\n    fi\n  fi\n} >> \"$out\" 2>&1\n",
                            "delta": "0:00:00.010048",
                            "end": "2026-10-06 08:55:14.788985",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\n{\n  echo \"== container netns exec probe (default bridge) ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    # Prefer a full base image likely to carry ip/curl/getent,\n    # skipping dangling (<none>) tags; fall back to any local image\n    # ID (a valid run reference). Never pull. (docker image ls\n    # columns: REPOSITORY TAG IMAGE_ID ...)\n    img=$(timeout 30 docker image ls 2>/dev/null | awk      '$1~/^(ubuntu|debian)$/ && $2!=\"<none>\"{print $1\":\"$2; exit}')\n    if [ -z \"$img\" ]; then\n      img=$(timeout 30 docker image ls -q 2>/dev/null | head -1)\n    fi\n    if [ -z \"$img\" ]; then\n      echo \"no local image; skipped (will not pull over a broken network)\"\n    else\n      echo \"using local image $img\"\n      # Bound the whole probe: on the degraded node this role exists\n      # to diagnose, a wedged daemon can make `docker run` hang\n      # indefinitely and stall teardown. timeout keeps it best-effort.\n      # A killed client may orphan the container, but the node is torn\n      # down right after, so that is acceptable here.\n      timeout 60 docker run --rm \"$img\" sh -c '\n        echo \"tools: ip=$(command -v ip || echo no)\" \\\n             \"curl=$(command -v curl || echo no)\" \\\n             \"getent=$(command -v getent || echo no)\"\n        echo \"-- ip -6 addr / route --\"\n        (ip -6 addr show 2>/dev/null; ip -6 route show 2>/dev/null) \\\n          || cat /proc/net/ipv6_route 2>/dev/null || echo \"no ip tool\"\n        echo \"-- /etc/resolv.conf --\"; cat /etc/resolv.conf 2>/dev/null\n        for d in '\"$targets\"'; do\n          echo \"target $d:\"\n          getent ahosts \"$d\" 2>&1 | head -4 || echo \"  getent unavailable\"\n          (curl -6 -sS -m 8 -o /dev/null \\\n             -w \"  v6 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v6 FAIL/unavailable\")\n          (curl -4 -sS -m 8 -o /dev/null \\\n             -w \"  v4 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v4 FAIL/unavailable\")\n        done\n      ' 2>&1\n    fi\n  fi\n} >> \"$out\" 2>&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": "0242ac1f-6606-0cd0-1972-00000000000c-0-ubuntunoble",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j295726956515.1586",
                            "start": "2026-10-06 08:55:14.778937",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0cd0-1972-00000000000c-0-ubuntunoble"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:20.219762Z",
                            "start": "2026-10-06T08:55:14.002286Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000000c",
                        "name": "Probe container network namespace (teardown)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"pre\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:20.775972Z",
                            "start": "2026-10-06T08:55:20.263686Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000000d",
                        "name": "Evaluate node isolation verdict (pre-run gate)"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "ansible.builtin.fail",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"pre\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:20.861150Z",
                            "start": "2026-10-06T08:55:20.786926Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000000e",
                        "name": "Abort the pre-run on a fully isolated node"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:20.932151Z",
                            "start": "2026-10-06T08:55:20.879460Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-000000000012",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "ubuntu-noble": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:20.992686Z",
                            "start": "2026-10-06T08:55:20.944842Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-000000000013",
                        "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/ca299ff5d1f246aeb8b1452f200732ac/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:21.823713Z",
                            "start": "2026-10-06T08:55:21.001303Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-000000000014",
                        "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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/home/zuul/zuul-output/logs/' /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n>f+++++++++ net-debug.post.txt\n>f+++++++++ net-debug.pre.txt\n>f+++++++++ sudo-debug.txt\n>f+++++++++ sudo-strace.log\n>f+++++++++ sudo-strace.log.time\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./",
                                        ">f+++++++++ net-debug.post.txt",
                                        ">f+++++++++ net-debug.pre.txt",
                                        ">f+++++++++ sudo-debug.txt",
                                        ">f+++++++++ sudo-strace.log",
                                        ">f+++++++++ sudo-strace.log.time"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/home/zuul/zuul-output/artifacts/' /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/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/ca299ff5d1f246aeb8b1452f200732ac/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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/home/zuul/zuul-output/docs/' /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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@2a13:1a81:8000:3124:f816:3eff:fef8:5fc]:/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/ca299ff5d1f246aeb8b1452f200732ac/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:23.877255Z",
                            "start": "2026-10-06T08:55:21.838315Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-000000000016",
                        "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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/artifacts/* /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.010324",
                                    "end": "2026-10-06 08:55:24.214302",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/artifacts/* /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-10-06 08:55:24.203978",
                                    "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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/docs/* /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.013064",
                                    "end": "2026-10-06 08:55:24.532413",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/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/ca299ff5d1f246aeb8b1452f200732ac/work/docs/* /var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/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_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-10-06 08:55:24.519349",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0cd0-1972-000000000019",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:24.581760Z",
                            "start": "2026-10-06T08:55:23.893077Z"
                        },
                        "id": "0242ac1f-6606-0cd0-1972-00000000001b",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 8,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "1",
    "phase": "post",
    "playbook": "github.com/osism/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-10-06T08:55:26.224939Z",
                    "start": "2026-10-06T08:55:25.546678Z"
                },
                "id": "0242ac1f-6606-6b2a-4cbc-000000000002",
                "name": "Base post"
            },
            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC/9b4fyq9vF+DqYv2K7ElfWSnGPhZDtju/XWX/iINpD56gYGL0B1gkGwJcHYzoloYXf2H4yW6h+nyela+KZgKvV6V4Xwg1veRyCdRcApO+JofFFL7FHvjmiDZ/9GFjLna5kYMpLMmFLfz3G6wAEAqMSbVcCUtXO1y2Q7dkuczQXKO96qjPgBLMlzOpNm1ZCjgJsKoS3ub57vSUUHhhVj1MHtb61mEQQtGiV7NdgwXuUSzz0b8GY9O23IBwEC0oWMN65KYU/+F9fapfbv3QZb5t1zbES57HSXjpTIs1Mlun3L4E4Rhy+lrc0kcUWJFS3cRWTT0DH5lv+pG1IF+VcaCSBCURGvi055O4iucc9h8eNYfRybT0DxCtjhRzanKeEEQ6mVBNVRxoI0f86fjh/UMSwGWeD8b4XkFkbKWG1w5IG2nkochzHlkJ5xrXGobz2vbrLO6MSB9/G7DxKDy33lRpIGEcXB01Eyjsy8nNRWXB3Tdl+dSYl1//3oTmiH5OHF0= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQC/9b4fyq9vF+DqYv2K7ElfWSnGPhZDtju/XWX/iINpD56gYGL0B1gkGwJcHYzoloYXf2H4yW6h+nyela+KZgKvV6V4Xwg1veRyCdRcApO+JofFFL7FHvjmiDZ/9GFjLna5kYMpLMmFLfz3G6wAEAqMSbVcCUtXO1y2Q7dkuczQXKO96qjPgBLMlzOpNm1ZCjgJsKoS3ub57vSUUHhhVj1MHtb61mEQQtGiV7NdgwXuUSzz0b8GY9O23IBwEC0oWMN65KYU/+F9fapfbv3QZb5t1zbES57HSXjpTIs1Mlun3L4E4Rhy+lrc0kcUWJFS3cRWTT0DH5lv+pG1IF+VcaCSBCURGvi055O4iucc9h8eNYfRybT0DxCtjhRzanKeEEQ6mVBNVRxoI0f86fjh/UMSwGWeD8b4XkFkbKWG1w5IG2nkochzHlkJ5xrXGobz2vbrLO6MSB9/G7DxKDy33lRpIGEcXB01Eyjsy8nNRWXB3Tdl+dSYl1//3oTmiH5OHF0= 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": "0242ac1f-6606-6b2a-4cbc-000000000005",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/ca299ff5d1f246aeb8b1452f200732ac/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-10-06T08:55:26.224939Z",
                            "start": "2026-10-06T08:55:25.560850Z"
                        },
                        "id": "0242ac1f-6606-6b2a-4cbc-000000000007",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "ubuntu-noble": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
