[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/osism/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-22T14:15:56.183561Z",
                    "start": "2026-07-22T14:15:27.394163Z"
                },
                "id": "0242ac1f-6606-8f02-51f2-000000000002",
                "name": "Base pre"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:27.449229Z",
                            "start": "2026-07-22T14:15:27.418646Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000000f",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "a6c/osism/a6c69e9054ba4a66b784ae80a56e9c7f"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-0000000000bb",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:27.497349Z",
                            "start": "2026-07-22T14:15:27.467866Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000bd",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.14\nJob: container-image-inventory-reconciler-unit-tests\nPipeline: check\nExecutor: 521e9411259a\nTriggered by: https://github.com/osism/container-image-inventory-reconciler/pull/566\nEvent ID: a3f807c0-85d7-11f1-8356-7bb7ea94138f\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:27.549722Z",
                            "start": "2026-07-22T14:15:27.507446Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000010",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: debian-bookworm\nHostname: debian\nUsername: zuul\nDistro: Debian 12.15\nProvider: regiocloud-a\nRegion: \nLabel: debian-bookworm\nProduct Name: OpenStack Nova\nInterface IP: 2a13:1a81:8000:3124:f816:3eff:fe92:5e72\n",
                                    "zj_item": "debian-bookworm"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:27.704021Z",
                            "start": "2026-07-22T14:15:27.554942Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000011",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:28.520333Z",
                            "start": "2026-07-22T14:15:27.714116Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000016",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "2cdac02be446a38fdd1ceb7cf92ba3d1598e7df8",
                            "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "2cdac02be446a38fdd1ceb7cf92ba3d1598e7df8",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729728.625551-34-132039802801713/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "19cb7fa75f24f0a17d13f4f68fe243ab",
                            "mode": "0644",
                            "owner": "root",
                            "size": 10273,
                            "src": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729728.625551-34-132039802801713/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:30.390446Z",
                            "start": "2026-07-22T14:15:28.527202Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000017",
                        "name": "Copy ansible inventory to logs dir"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:30.958585Z",
                            "start": "2026-07-22T14:15:30.402430Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000001b",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:31.003772Z",
                            "start": "2026-07-22T14:15:30.964217Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000001c",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:01.433669",
                            "end": "2026-07-22 14:15:33.037089",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_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-8f02-51f2-0000000000de-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:15:31.603420",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa.pub\nThe key fingerprint is:\nSHA256:/xkTCJKfn9I3x5mXAbAhdsoBpuVrAmw6vSNDZ/F6txE zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|       +.+ +     |\n|  .   =.o = +    |\n|   = .o..o . .   |\n|  + +  o.o .  .  |\n| + + o ES . .  . |\n|. + o o .+ . o oo|\n| o + . o. = = =..|\n|  o o . o. o * . |\n|       .    o    |\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:/xkTCJKfn9I3x5mXAbAhdsoBpuVrAmw6vSNDZ/F6txE zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|       +.+ +     |",
                                "|  .   =.o = +    |",
                                "|   = .o..o . .   |",
                                "|  + +  o.o .  .  |",
                                "| + + o ES . .  . |",
                                "|. + o o .+ . o oo|",
                                "| o + . o. = = =..|",
                                "|  o o . o. o * . |",
                                "|       .    o    |",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac1f-6606-8f02-51f2-0000000000de-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:33.085590Z",
                            "start": "2026-07-22T14:15:31.045472Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000de",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:33.120832Z",
                            "start": "2026-07-22T14:15:33.091564Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000df",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:33.153518Z",
                            "start": "2026-07-22T14:15:33.140447Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000fe",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCubwKiwGUPZX5MPf7u6sKcGV2NulhLTpIyFilIH4fnYUzgWo66LhtvUaM9zM5Le9TuGQexqTEtXhKjZ2KAXsuOyFZceyGQt55GOCROk/eT1m0gR3ezFRyE4rSu/lPwKvFwYJCyxriJoK4zEYi+Bg31x3RF8XM3O0zgWoSOIxBPEGGBSy7dvTk394gGfbet8z/S6acJCVP4QpfmWDDbXhAlEZ42Ux/3HG3uCNltou5TUOaAjN+426ZECNlFZgUuRjhAXoSMXeAEgHIfAAVI17WXWXZUSTK2b0iCeA22fFQo0of9KZDyUNOlGWERBJznlYS4DOQAa55YZ0ugiEAEkgX5yqLNEszA4VXDbgYm2qeSMd4KBFoL6V/pDk9Rxl6jjSxQDs2ia/ZY8bng2z5Mrao9nhtnYV1Zhsf9FRySuQgEW3bueNyS9+/gXcqOWLg496gVSYfIXOOoboc4L39aMVQL7WL2uPsr8dIk/smBzsN+8fukzBoYQyxeyJerUXHGooM= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCubwKiwGUPZX5MPf7u6sKcGV2NulhLTpIyFilIH4fnYUzgWo66LhtvUaM9zM5Le9TuGQexqTEtXhKjZ2KAXsuOyFZceyGQt55GOCROk/eT1m0gR3ezFRyE4rSu/lPwKvFwYJCyxriJoK4zEYi+Bg31x3RF8XM3O0zgWoSOIxBPEGGBSy7dvTk394gGfbet8z/S6acJCVP4QpfmWDDbXhAlEZ42Ux/3HG3uCNltou5TUOaAjN+426ZECNlFZgUuRjhAXoSMXeAEgHIfAAVI17WXWXZUSTK2b0iCeA22fFQo0of9KZDyUNOlGWERBJznlYS4DOQAa55YZ0ugiEAEkgX5yqLNEszA4VXDbgYm2qeSMd4KBFoL6V/pDk9Rxl6jjSxQDs2ia/ZY8bng2z5Mrao9nhtnYV1Zhsf9FRySuQgEW3bueNyS9+/gXcqOWLg496gVSYfIXOOoboc4L39aMVQL7WL2uPsr8dIk/smBzsN+8fukzBoYQyxeyJerUXHGooM= 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-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:33.738063Z",
                            "start": "2026-07-22T14:15:33.159562Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000ff",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:33.977710Z",
                            "start": "2026-07-22T14:15:33.745427Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000100",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "f83ecb69f8d5ca13fd225b10bb2af720d2ad0eb5",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f83ecb69f8d5ca13fd225b10bb2af720d2ad0eb5",
                                    "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-1784729734.0238597-139-73973100078537/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "0d6e3f9aacbfe044ec1f3da452237509",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784729734.0238597-139-73973100078537/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:34.589761Z",
                            "start": "2026-07-22T14:15:33.983520Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000101",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "6aaf8d759e137662ebc617ea16f021d451a89968",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "6aaf8d759e137662ebc617ea16f021d451a89968",
                                    "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-1784729734.6463718-149-58993180324824/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "0984063601fccfef59152c44b5bdaf29",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1784729734.6463718-149-58993180324824/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:35.166237Z",
                            "start": "2026-07-22T14:15:34.595066Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000102",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:35.198729Z",
                            "start": "2026-07-22T14:15:35.172399Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000e0",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/var/ssh/nodepool"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-0000000000e5",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:35.722481Z",
                            "start": "2026-07-22T14:15:35.206910Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000e7",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa"
                            ],
                            "delta": "0:00:00.015249",
                            "end": "2026-07-22 14:15:36.090253",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_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-8f02-51f2-0000000000ed-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:15:36.075004",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/a6c69e9054ba4a66b784ae80a56e9c7f_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac1f-6606-8f02-51f2-0000000000ed-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:36.131380Z",
                            "start": "2026-07-22T14:15:35.744444Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000ed",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:36.603342Z",
                            "start": "2026-07-22T14:15:36.139951Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000ee",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:36.646804Z",
                            "start": "2026-07-22T14:15:36.611458Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-0000000000ef",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000001e",
                        "name": "start-zuul-console",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/start-zuul-console"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:37.189109Z",
                            "start": "2026-07-22T14:15:36.658120Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000020",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_info_dir": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:37.256343Z",
                            "start": "2026-07-22T14:15:37.215711Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000024",
                        "name": "Define zuul_info_dir fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:37.676432Z",
                            "start": "2026-07-22T14:15:37.262236Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000025",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "setup",
                            "ansible_facts": {
                                "ansible_all_ipv4_addresses": [
                                    "10.128.0.99"
                                ],
                                "ansible_all_ipv6_addresses": [
                                    "2a13:1a81:8000:3124:f816:3eff:fe92:5e72",
                                    "fe80::f816:3eff:fe92:5e72"
                                ],
                                "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.1.0-51-amd64",
                                    "console": "ttyS0,115200",
                                    "gfxpayload": "text",
                                    "no_timer_check": true,
                                    "nofb": true,
                                    "nomodeset": true,
                                    "ro": true,
                                    "root": "LABEL=cloudimg-rootfs"
                                },
                                "ansible_date_time": {
                                    "date": "2026-07-22",
                                    "day": "22",
                                    "epoch": "1784729738",
                                    "epoch_int": "1784729738",
                                    "hour": "14",
                                    "iso8601": "2026-07-22T14:15:38Z",
                                    "iso8601_basic": "20260722T141538872663",
                                    "iso8601_basic_short": "20260722T141538",
                                    "iso8601_micro": "2026-07-22T14:15:38.872663Z",
                                    "minute": "15",
                                    "month": "07",
                                    "second": "38",
                                    "time": "14:15:38",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Wednesday",
                                    "weekday_number": "3",
                                    "weeknumber": "29",
                                    "year": "2026"
                                },
                                "ansible_default_ipv4": {
                                    "address": "10.128.0.99",
                                    "alias": "ens3",
                                    "broadcast": "10.128.0.111",
                                    "gateway": "10.128.0.97",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:92:5e:72",
                                    "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:fe92:5e72",
                                    "gateway": "fe80::f816:3eff:fe92:ad10",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:92:5e:72",
                                    "mtu": 1500,
                                    "prefix": "64",
                                    "scope": "global",
                                    "type": "ether"
                                },
                                "ansible_device_links": {
                                    "ids": {},
                                    "labels": {
                                        "vda1": [
                                            "cloudimg-rootfs"
                                        ]
                                    },
                                    "masters": {},
                                    "uuids": {
                                        "vda1": [
                                            "77e5996d-6c5b-4264-9506-d2cea19b2a21"
                                        ]
                                    }
                                },
                                "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "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": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "vda": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {
                                            "vda1": {
                                                "holders": [],
                                                "links": {
                                                    "ids": [],
                                                    "labels": [
                                                        "cloudimg-rootfs"
                                                    ],
                                                    "masters": [],
                                                    "uuids": [
                                                        "77e5996d-6c5b-4264-9506-d2cea19b2a21"
                                                    ]
                                                },
                                                "sectors": "20969439",
                                                "sectorsize": 512,
                                                "size": "10.00 GB",
                                                "start": "2048",
                                                "uuid": "77e5996d-6c5b-4264-9506-d2cea19b2a21"
                                            }
                                        },
                                        "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": "Debian",
                                "ansible_distribution_file_parsed": true,
                                "ansible_distribution_file_path": "/etc/os-release",
                                "ansible_distribution_file_variety": "Debian",
                                "ansible_distribution_major_version": "12",
                                "ansible_distribution_minor_version": "15",
                                "ansible_distribution_release": "bookworm",
                                "ansible_distribution_version": "12.15",
                                "ansible_dns": {
                                    "domain": "a.customers.regiocloud.tech.",
                                    "nameservers": [
                                        "81.163.194.9",
                                        "81.163.194.10"
                                    ],
                                    "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.99",
                                        "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:fe92:5e72",
                                            "prefix": "64",
                                            "scope": "global"
                                        },
                                        {
                                            "address": "fe80::f816:3eff:fe92:5e72",
                                            "prefix": "64",
                                            "scope": "link"
                                        }
                                    ],
                                    "macaddress": "fa:16:3e:92:5e:72",
                                    "module": "virtio_net",
                                    "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",
                                    "MOTD_SHOWN": "pam",
                                    "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/games",
                                    "PWD": "/home/zuul",
                                    "SHELL": "/bin/bash",
                                    "SHLVL": "0",
                                    "SSH_CLIENT": "2a13:1a81:8000:2::38d 47498 22",
                                    "SSH_CONNECTION": "2a13:1a81:8000:2::38d 47498 2a13:1a81:8000:3124:f816:3eff:fe92:5e72 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": "debian",
                                "ansible_hostname": "debian",
                                "ansible_hostnqn": "",
                                "ansible_interfaces": [
                                    "ens3",
                                    "lo"
                                ],
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "6.1.0-51-amd64",
                                "ansible_kernel_version": "#1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16)",
                                "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.03076171875,
                                    "1m": 0.341796875,
                                    "5m": 0.0927734375
                                },
                                "ansible_local": {},
                                "ansible_locally_reachable_ips": {
                                    "ipv4": [
                                        "10.128.0.99",
                                        "127.0.0.0/8",
                                        "127.0.0.1"
                                    ],
                                    "ipv6": [
                                        "::1",
                                        "2a13:1a81:8000:3124:f816:3eff:fe92:5e72",
                                        "fe80::f816:3eff:fe92:5e72"
                                    ]
                                },
                                "ansible_lsb": {
                                    "codename": "bookworm",
                                    "description": "Debian GNU/Linux 12 (bookworm)",
                                    "id": "Debian",
                                    "major_release": "12",
                                    "release": "12"
                                },
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_machine_id": "50d9ee80891c4972b205acc11628ee02",
                                "ansible_memfree_mb": 3669,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 3755,
                                        "used": 158
                                    },
                                    "real": {
                                        "free": 3669,
                                        "total": 3913,
                                        "used": 244
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 3913,
                                "ansible_mounts": [
                                    {
                                        "block_available": 1944105,
                                        "block_size": 4096,
                                        "block_total": 2443542,
                                        "block_used": 499437,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 2494831,
                                        "inode_total": 2531088,
                                        "inode_used": 36257,
                                        "mount": "/",
                                        "options": "rw,relatime",
                                        "size_available": 7963054080,
                                        "size_total": 10008748032,
                                        "uuid": "77e5996d-6c5b-4264-9506-d2cea19b2a21"
                                    }
                                ],
                                "ansible_nodename": "debian",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-6.1.0-51-amd64",
                                    "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": 2,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        2,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.2",
                                "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": "AAAAB3NzaC1kc3MAAACBANQH1n0EHMPoxV2eXrjBEhPiA0hxY9p5GihVVqA2Ucon1DIY/r6s7n1y4lZYBsUqbu3VMURbbh82FERlbViz7sbLAS4+0exbJLvMsFOUl4QZts09WoUNu28wgfsgGri47t0vUB/Bz3uLLRNljT/MKYo9xrMfGYEnBjGFWGE29svhAAAAFQDImcw3bjo1NASqcA9MjX8+Ji69lQAAAIEA0nNYQV7XF46WR+Khs0lA/nRKfW4ecfiZpztFAf7YSgZ5meeKlz86ADVyVHeEAB8W+3lehSGcu1cIDQWzmkDQVTti9fHgDbuup8pU+5mZugr/K1U5m3mdGV1u+MNwikWX2aBSJXOH9XwZBYT9PuGC0cNR7+DGVZTipobxVrVfpo0AAACAQcALLeHTv7C28qLeyeEgQTXYZdBw20Nczhjz2HCg/JX/y1yP+yCSbe8t4e7+sQwHQNV1KsJ0Y8ce/miWVV5/sylClsWS3KokcN1E3kzTSgxR6xiYm1YgzqY0CTSYE4AYvFk92Lbi8aiRuQwUa852KeDBIhI3wTXS1YqCIzjNtZQ=",
                                "ansible_ssh_host_key_dsa_public_keytype": "ssh-dss",
                                "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGQQCQWycV0H/3nu1VPUedI3zxif1VWnHj5+7W2JAsRxCY81eqFYk9k+mrck30b5hj+9zkESuP6HvxdSvGtjFOM=",
                                "ansible_ssh_host_key_ecdsa_public_keytype": "ecdsa-sha2-nistp256",
                                "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIIBN3JVl08pghDMTBFGnwQCGhcST6fFyy4afGPsbY5m4",
                                "ansible_ssh_host_key_ed25519_public_keytype": "ssh-ed25519",
                                "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABgQC42tjRKZmUO6aqwVxwu07vv1wjcEp6eMI0lVQzVBY4G1iANp6SbO8heUVNhoxw3GuyWMTcRczNm4TDm6w2X99engf0PVRuWGfanulFyUezd0LO9g+sP9rxmPnQO9xD7HfERnI8/Sa03PeNyZqFxjPOb63+u+4/bpTQ7hlKQDL9xXSgeXzq3c6tuf0H3EouJtVE6/xOp5G/UpEx+OjjTTUqKM7tm18KRRQXP7EZkuaWn7AaWCuL7D1DUFhPawq16U9RC2K02MXIycMoPDUsc6whZxpCVkaJgoEEwiED3p2svQu2C4gwv7cXczGjHo6js0MhW51VYi+nbWt2JA4VdOR3FqnQeABKRoOdchxPeHNesbk31AcH4R6uwKX0gc9/BLu+91anagUVUe/9CMKl8cgubDCtaN7LzXP4iRN9Z20BvrO/P5u/TUK6h0lGfh8jQdTlGUYeHJYh9xZUQGz+7bFfu2Z/cwpXUbHC2iqDW2VNNSl0Z1QTEwDQDgprfcR3xtk=",
                                "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": 29,
                                "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-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:38.948790Z",
                            "start": "2026-07-22T14:15:37.683050Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000026",
                        "name": "Collect information about the host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "validate_host_hostname_sanitized": "debian-bookworm"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:39.107779Z",
                            "start": "2026-07-22T14:15:38.957841Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000027",
                        "name": "Sanitize hostname"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "template",
                            "changed": true,
                            "checksum": "9315762affa6b76aacedec8ea055ea9cd932341b",
                            "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info/host-info.debian-bookworm.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "host-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "9315762affa6b76aacedec8ea055ea9cd932341b",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info/host-info.debian-bookworm.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/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729739.1591773-246-62405386065160/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "7afcef06bcf70b781eaf86e9e004b168",
                            "mode": "0644",
                            "owner": "root",
                            "size": 13293,
                            "src": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729739.1591773-246-62405386065160/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:39.739951Z",
                            "start": "2026-07-22T14:15:39.113570Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000028",
                        "name": "Write out all ansible variables/facts known for each host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "_zuul_nolog_return": true,
                            "action": "zuul_debug_info",
                            "changed": false,
                            "df_i": "Filesystem      Inodes IUsed   IFree IUse% Mounted on\nudev            495369   343  495026    1% /dev\ntmpfs           500891   460  500431    1% /run\n/dev/vda1      2531088 36257 2494831    2% /\ntmpfs           500891     1  500890    1% /dev/shm\ntmpfs           500891     3  500888    1% /run/lock\ntmpfs           100178    20  100158    1% /run/user/1000\n",
                            "df_m": "Filesystem     1M-blocks  Used Available Use% Mounted on\nudev                1936     0      1936   0% /dev\ntmpfs                392     1       391   1% /run\n/dev/vda1           9546  1505      7595  17% /\ntmpfs               1957     0      1957   0% /dev/shm\ntmpfs                  5     0         5   0% /run/lock\ntmpfs                392     0       392   0% /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:92:5e:72 brd ff:ff:ff:ff:ff:ff\n    altname enp0s3\n    inet 10.128.0.99/28 brd 10.128.0.111 scope global dynamic ens3\n       valid_lft 43174sec preferred_lft 43174sec\n    inet6 2a13:1a81:8000:3124:f816:3eff:fe92:5e72/64 scope global dynamic mngtmpaddr \n       valid_lft forever preferred_lft forever\n    inet6 fe80::f816:3eff:fe92:5e72/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.99 \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 65509sec 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 invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi 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 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 invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi 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 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 debian 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64 GNU/Linux\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:40.200257Z",
                            "start": "2026-07-22T14:15:39.745734Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000002a",
                        "name": "Collect information about zuul worker"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "template",
                            "changed": true,
                            "checksum": "a2da437fd511af64b35e3d30ce6c1aee851c08ac",
                            "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info/zuul-info.debian-bookworm.txt",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "zuul-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "a2da437fd511af64b35e3d30ce6c1aee851c08ac",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/zuul-info/zuul-info.debian-bookworm.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/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729740.2484627-285-163137626476709/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "600c0ebf5015a7107f2d09a6a4567a10",
                            "mode": "0644",
                            "owner": "root",
                            "size": 2522,
                            "src": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/.ansible/tmp/ansible-tmp-1784729740.2484627-285-163137626476709/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:40.863440Z",
                            "start": "2026-07-22T14:15:40.208405Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000002b",
                        "name": "Write out all zuul information for each host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:41.145946Z",
                            "start": "2026-07-22T14:15:40.874559Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000002f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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/a6c69e9054ba4a66b784ae80a56e9c7f/work/src '[zuul@2a13:1a81:8000:3124:f816:3eff:fe92:5e72]:.'",
                            "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:fe92:5e72]:.",
                                    "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/a6c69e9054ba4a66b784ae80a56e9c7f/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/container-image-inventory-reconciler/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.ansible-lint\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.flake8\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.hadolint.yaml\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.yamllint.yml\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.zuul.yaml\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/CHANGELOG.md\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/Containerfile\ncL+++++++++ src/github.com/osism/container-image-inventory-reconciler/Dockerfile -> Containerfile\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/LICENSE\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/README.md\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/pyproject.toml\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/COMMIT_EDITMSG\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/FETCH_HEAD\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/HEAD\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/ORIG_HEAD\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/config\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/config.worktree\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/description\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/index\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/packed-refs\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/branches/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/applypatch-msg.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/commit-msg.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/fsmonitor-watchman.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/post-update.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-applypatch.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-commit.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-merge-commit.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-push.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-rebase.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-receive.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/prepare-commit-msg.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/push-to-checkout.sample\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/update.sample\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/info/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/info/exclude\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/logs/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/logs/HEAD\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/00/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/00/dc68d10507b1d01125d0ded5026989c979f654\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/01/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/01/939a9a654c3db304a03ea8fd1a299eb8ebd899\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/07/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/07/818fb447eb9173a49078e0dba0b5131ed32fda\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/08/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/08/341d0fba2ba47d2d57041b2b13b3a2960dd386\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0d/4699ab9f417fa04c2593f7e05ad847bfd37a38\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0e/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0e/c2d62ac23f5a5a3482c8264b1d26e451128662\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/0dc91ed87c52541e8b12668f9b1f1d40661576\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/44bea759f6a75c71d35ea40c4ec3df753000d6\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/18/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/18/bec30318c5c88290b1fe0509e25063a770c0be\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/19/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/19/d2cf75c90ca8e038a2db6dc422084aca754e9b\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1b/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1b/43008e2793f76d7f524a13d3e6a1b6d4031b20\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1d/d62f4c6968ea09310bd01718a209923c13c735\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/26/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/26/590f98811867d24fdb349c72793f0d2adddd02\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/27/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/27/2658541083cbc3bf92d362eef8c31d1cadcad9\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/28/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/28/6fc0431fef27b2ba99f98d366adb0b88ce926d\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/29/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/29/114d5ec10b97ffef9e693aec068360b6eca165\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2c/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2c/c8de78319a74a5cebd896e69c1eec5f371019f\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2f/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2f/d4f1e1295e991f5d55fd9ed90e6bdb160ada34\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/30/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/30/869a34a10704d10a6b298ccb83a8940dd2cfac\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/0d042319ad33ec074dc68b757da1456f6acaf8\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/abf03822aa30c46a025ae0f5ea34ccf9ded3d4\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/37/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/37/65d2132441ecff5413120ddb9b54c7cf4255c3\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3c/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3c/b21a6d03ce1546f5099373bbf441534f91787d\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3d/4a5ff9551ab154d42f2c02a7e67c9609aad248\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/44/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/44/c884213b496dfb08237242e2c74ba02665839b\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/47/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/47/b032bed362b4e4443aba1e0a63279948b38b2a\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/49/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/49/6a347524e4dfd95177a2466a2ef6a60158b532\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4a/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4a/24c61f648eb220b39b145b659171fc029d0d0c\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4b/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4b/c19c73a1ca004786e50706d17e047d047ef111\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/b50a35a74238e721e7aaf51e795103465ec5e2\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/eb1dbdcc10b0b136012dbe8807adaf14f75d81\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4e/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4e/763528513087ebe3dfb171e84c9dbdcbf3ad87\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/54/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/54/8183fe65418cd2f9935c603aed9736988c6924\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/55/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/55/245f4786225a86ed478cfd8cd9718aac54036d\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/0ae1a4c3ee4451a34559be9696296fe43efe2d\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/c132b335ee17c9c36ba469a7471920414d9c65\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/57/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/57/dbaff0fc570ebfffd6084d608335e8f573ba55\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/5d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/5d/39c382db283fc30cefc94e6428eb03eb467d44\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/60/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/60/b02ff8d2f110d946742fa425ea085da42d19d6\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/61/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/61/9ba876f6cb9223749a78367612119ca2db98b1\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/65/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/65/beb751ea5eb434d33e1b6c53839aecf9020056\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/66/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/66/ed54556effebcffa603f29f2359f0ef9ee1945\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/6d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/6d/97c6d29fe1e951d85c8a50652c10da9734b25e\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/79/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/79/bd67e01fbb68fb92934af26385f4c1049dee5e\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/7d/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/7d/70ed25d714666a01bda964a8b5e620cc2a5289\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/80/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/80/7090262cc844362558b5810139cec7c9aa2745\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/86/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/86/79e0a2776c2b39adc1009f9d61aa3a370d8f2d\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/89/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/89/e5f99ea453f7aa69f33ebda50f7327b41ace2c\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/128ddb69d1b861ccbc433228976fdaaa8fa688\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/b2b0d0789bb31974310547d1bc009bc188e85e\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8b/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8b/bdf87a7ab9d5f57e5747cd5361e4a08dfc6037\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/93/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/93/b1e4866da1dc35b50b9c7abe2a2e76134ee791\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/97/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/97/186681c773c8a21e8ad70f1750bf8fc72522d5\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/23c3d699c1a47fbdeed016f6fc12037acb0349\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/bee85ac3f34700495adcf3caa3436e7e8b1024\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/9b/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/9b/78757f6d7d674cf31504d37bb80bc162f7f587\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/3ea577323e80e28fc5a2dae33d1c232d39bed3\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/eeefb1602d2c2b8323c77527faff0e2d032635\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a8/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a8/d6ff1b7007695550f30a45cdf84a2130fe98df\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a9/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a9/3819bc2d5e6a25a2963331dcb23c493c867bce\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ab/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ab/bb2ec7c242abbba5f6e1bfe209e4fbd63f8232\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/411dd37de8610822c75ce52204279f8631080e\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/acb05050f0dd2d650962f037b7cb5581073fb5\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/af/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/af/78b69b688f85b3e2d7f9063b60a9759f400e87\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b0/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b0/54331feacdeb3013a1412ae607f64e954e66bf\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b1/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b1/3f75aefe642bcf5c1dc529a924352b479700cf\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b4/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b4/5f10cc21c577add3f3c12e846e53ec8178e36c\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b5/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b5/f98e4dfbd833feb60853b869818a32c6ff6c2f\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b6/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b6/05f5a099f2c6afe67b0dffbe1cd989aa7594a9\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b7/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b7/c4ef13aa90de0441dee7b692086bf59a650e5c\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b8/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b8/7d777008ba9c4958decfeb72935dae118d1a98\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/bf/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/bf/5eb2ba258a023a15e4be90800e085ef737e825\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c0/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c0/4f1395a8968e7012d9cab98290cb1a32f778f0\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c6/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c6/49c6521934ca147db455af8e35bc48a96a6df6\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c9/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c9/f390e5c46d5cb08bed3a88b772c26b88afa65e\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cd/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cd/2aaebc9cf37f59d4407c2fe5b7eb80fc2c9c5a\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ce/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ce/b6ff9b8be50ead6012a32c7e1ab08390ae932d\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cf/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cf/ffc2312f8b3e5200ee05bc5d75b131b9e8e1cb\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/d5/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/d5/62364dffec5e740c1c551c53f93421d86ab210\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/db/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/db/f35d16c1644ed75706efb683df124e36bcf2c7\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/df/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/df/e29f9277c798adcf98e0a1232259b047bddf46\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e0/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e0/dbeae2cb5b039ca9055225686c356e11b0df09\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e5/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e5/ff556478042df0c832713fc0ec75c32a9415b6\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e6/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e6/2d0cef6de313127be8b5a4f241bef1d2879f77\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ed/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ed/cfd2a36b9c2b831d343dca09a97040a1a2dcc2\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ee/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ee/229f984e549656aacbee5d8aabe9fe1dc84e4f\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/f4/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/f4/34504ac3f83ae40ecfd49b823487ea2b7ed78f\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/fb/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/fb/305db6568b96d435deddee430499312ec64333\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/commit-graph\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/packs\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-099e13a41296cdbdb3dab9916e9e9a5b13e6b1a3.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-099e13a41296cdbdb3dab9916e9e9a5b13e6b1a3.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-2ae654281c8f45bb7d72d99db323466f763da990.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-2ae654281c8f45bb7d72d99db323466f763da990.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-6f16542d3cc13b2a7cd22419791b411c1a6ea156.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-6f16542d3cc13b2a7cd22419791b411c1a6ea156.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-89398c8161e568ff3076ec2cf76deaa954c719c3.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-89398c8161e568ff3076ec2cf76deaa954c719c3.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-8a62fddec289b3c959da3b13719933083101e8c9.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-8a62fddec289b3c959da3b13719933083101e8c9.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-a79f11a65d19909c9d24c4f7ca3e771114b3028a.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-a79f11a65d19909c9d24c4f7ca3e771114b3028a.pack\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-ddac8ccbb9da39bece939f75a3991c2f882ecf82.idx\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-ddac8ccbb9da39bece939f75a3991c2f882ecf82.pack\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/heads/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/heads/main\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/origin/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/origin/main\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/fetch\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/renovate.json\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/workflows/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/workflows/add-to-project.yml\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/change.sh\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/entrypoint.sh\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/generate-clustershell-ansible-file.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/generate-minified-hosts.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/handle-inventory-overwrite.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/merge-ansible-cfg.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/merge-inventory-files.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/move-group-vars.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/prepare-vars.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/reconcile-inventory.sh\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/render-python-requirements.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/requirements.txt\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/run.sh\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/test-requirements.txt\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/filter/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/filter/address.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/CLAUDE.md\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/base.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/bulk_loader.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/cache.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/config.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/connection.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/data_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/device_mapping.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/exceptions.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/filters.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/interfaces.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/main.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/netbox_client.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/parallel_processor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/retry_utils.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/utils.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/base.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/dhcp_config.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/interface_handler.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/manager.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/manager_mode.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/metalbox_mode.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/base_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/ceph_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/config_context_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/custom_field_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/frr_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/gnmic_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/netplan_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/primary_ip_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/secrets_extractor.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/manager.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/base.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/data_cache.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/file_writer.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/host_group_writer.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/manager.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/templates/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/templates/netbox.hosts.j2\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/clustershell.yml.j2\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/requirements.txt.j2\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/build.yml\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/pre.yml\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/test-unit.yml\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/conftest.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/__init__.py\ncd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/__init__.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/conftest.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_base_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_bulk_loader.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_cache.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_ceph_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_config.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_config_context_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_connection.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_custom_field_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_device_mapping.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_base.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_dhcp_config.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_interface_handler.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_manager.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_manager_mode.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_metalbox_mode.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_exceptions.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_filters.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_frr_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_gnmic_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_interfaces.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_netplan_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_parallel_processor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_primary_ip_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_retry_utils.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_secrets_extractor.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_smoke.py\n<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_utils.py\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ src/",
                                "cd+++++++++ src/github.com/",
                                "cd+++++++++ src/github.com/osism/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.ansible-lint",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.flake8",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.hadolint.yaml",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.yamllint.yml",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.zuul.yaml",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/CHANGELOG.md",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/Containerfile",
                                "cL+++++++++ src/github.com/osism/container-image-inventory-reconciler/Dockerfile -> Containerfile",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/LICENSE",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/README.md",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/pyproject.toml",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/COMMIT_EDITMSG",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/FETCH_HEAD",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/HEAD",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/ORIG_HEAD",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/config",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/config.worktree",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/description",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/index",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/packed-refs",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/branches/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/applypatch-msg.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/fsmonitor-watchman.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/post-update.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-applypatch.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-commit.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-merge-commit.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-push.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-rebase.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/pre-receive.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/prepare-commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/push-to-checkout.sample",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/hooks/update.sample",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/info/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/info/exclude",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/logs/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/logs/HEAD",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/00/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/00/dc68d10507b1d01125d0ded5026989c979f654",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/01/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/01/939a9a654c3db304a03ea8fd1a299eb8ebd899",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/07/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/07/818fb447eb9173a49078e0dba0b5131ed32fda",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/08/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/08/341d0fba2ba47d2d57041b2b13b3a2960dd386",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0d/4699ab9f417fa04c2593f7e05ad847bfd37a38",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0e/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/0e/c2d62ac23f5a5a3482c8264b1d26e451128662",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/0dc91ed87c52541e8b12668f9b1f1d40661576",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/13/44bea759f6a75c71d35ea40c4ec3df753000d6",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/18/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/18/bec30318c5c88290b1fe0509e25063a770c0be",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/19/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/19/d2cf75c90ca8e038a2db6dc422084aca754e9b",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1b/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1b/43008e2793f76d7f524a13d3e6a1b6d4031b20",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/1d/d62f4c6968ea09310bd01718a209923c13c735",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/26/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/26/590f98811867d24fdb349c72793f0d2adddd02",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/27/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/27/2658541083cbc3bf92d362eef8c31d1cadcad9",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/28/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/28/6fc0431fef27b2ba99f98d366adb0b88ce926d",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/29/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/29/114d5ec10b97ffef9e693aec068360b6eca165",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2c/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2c/c8de78319a74a5cebd896e69c1eec5f371019f",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2f/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/2f/d4f1e1295e991f5d55fd9ed90e6bdb160ada34",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/30/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/30/869a34a10704d10a6b298ccb83a8940dd2cfac",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/0d042319ad33ec074dc68b757da1456f6acaf8",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/36/abf03822aa30c46a025ae0f5ea34ccf9ded3d4",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/37/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/37/65d2132441ecff5413120ddb9b54c7cf4255c3",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3c/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3c/b21a6d03ce1546f5099373bbf441534f91787d",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/3d/4a5ff9551ab154d42f2c02a7e67c9609aad248",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/44/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/44/c884213b496dfb08237242e2c74ba02665839b",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/47/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/47/b032bed362b4e4443aba1e0a63279948b38b2a",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/49/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/49/6a347524e4dfd95177a2466a2ef6a60158b532",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4a/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4a/24c61f648eb220b39b145b659171fc029d0d0c",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4b/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4b/c19c73a1ca004786e50706d17e047d047ef111",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/b50a35a74238e721e7aaf51e795103465ec5e2",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4c/eb1dbdcc10b0b136012dbe8807adaf14f75d81",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4e/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/4e/763528513087ebe3dfb171e84c9dbdcbf3ad87",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/54/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/54/8183fe65418cd2f9935c603aed9736988c6924",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/55/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/55/245f4786225a86ed478cfd8cd9718aac54036d",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/0ae1a4c3ee4451a34559be9696296fe43efe2d",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/56/c132b335ee17c9c36ba469a7471920414d9c65",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/57/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/57/dbaff0fc570ebfffd6084d608335e8f573ba55",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/5d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/5d/39c382db283fc30cefc94e6428eb03eb467d44",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/60/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/60/b02ff8d2f110d946742fa425ea085da42d19d6",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/61/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/61/9ba876f6cb9223749a78367612119ca2db98b1",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/65/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/65/beb751ea5eb434d33e1b6c53839aecf9020056",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/66/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/66/ed54556effebcffa603f29f2359f0ef9ee1945",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/6d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/6d/97c6d29fe1e951d85c8a50652c10da9734b25e",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/79/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/79/bd67e01fbb68fb92934af26385f4c1049dee5e",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/7d/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/7d/70ed25d714666a01bda964a8b5e620cc2a5289",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/80/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/80/7090262cc844362558b5810139cec7c9aa2745",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/86/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/86/79e0a2776c2b39adc1009f9d61aa3a370d8f2d",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/89/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/89/e5f99ea453f7aa69f33ebda50f7327b41ace2c",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/128ddb69d1b861ccbc433228976fdaaa8fa688",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8a/b2b0d0789bb31974310547d1bc009bc188e85e",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8b/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/8b/bdf87a7ab9d5f57e5747cd5361e4a08dfc6037",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/93/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/93/b1e4866da1dc35b50b9c7abe2a2e76134ee791",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/97/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/97/186681c773c8a21e8ad70f1750bf8fc72522d5",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/23c3d699c1a47fbdeed016f6fc12037acb0349",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/98/bee85ac3f34700495adcf3caa3436e7e8b1024",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/9b/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/9b/78757f6d7d674cf31504d37bb80bc162f7f587",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/3ea577323e80e28fc5a2dae33d1c232d39bed3",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a3/eeefb1602d2c2b8323c77527faff0e2d032635",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a8/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a8/d6ff1b7007695550f30a45cdf84a2130fe98df",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a9/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/a9/3819bc2d5e6a25a2963331dcb23c493c867bce",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ab/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ab/bb2ec7c242abbba5f6e1bfe209e4fbd63f8232",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/411dd37de8610822c75ce52204279f8631080e",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ae/acb05050f0dd2d650962f037b7cb5581073fb5",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/af/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/af/78b69b688f85b3e2d7f9063b60a9759f400e87",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b0/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b0/54331feacdeb3013a1412ae607f64e954e66bf",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b1/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b1/3f75aefe642bcf5c1dc529a924352b479700cf",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b4/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b4/5f10cc21c577add3f3c12e846e53ec8178e36c",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b5/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b5/f98e4dfbd833feb60853b869818a32c6ff6c2f",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b6/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b6/05f5a099f2c6afe67b0dffbe1cd989aa7594a9",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b7/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b7/c4ef13aa90de0441dee7b692086bf59a650e5c",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b8/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/b8/7d777008ba9c4958decfeb72935dae118d1a98",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/bf/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/bf/5eb2ba258a023a15e4be90800e085ef737e825",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c0/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c0/4f1395a8968e7012d9cab98290cb1a32f778f0",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c6/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c6/49c6521934ca147db455af8e35bc48a96a6df6",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c9/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/c9/f390e5c46d5cb08bed3a88b772c26b88afa65e",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cd/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cd/2aaebc9cf37f59d4407c2fe5b7eb80fc2c9c5a",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ce/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ce/b6ff9b8be50ead6012a32c7e1ab08390ae932d",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cf/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/cf/ffc2312f8b3e5200ee05bc5d75b131b9e8e1cb",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/d5/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/d5/62364dffec5e740c1c551c53f93421d86ab210",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/db/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/db/f35d16c1644ed75706efb683df124e36bcf2c7",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/df/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/df/e29f9277c798adcf98e0a1232259b047bddf46",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e0/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e0/dbeae2cb5b039ca9055225686c356e11b0df09",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e5/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e5/ff556478042df0c832713fc0ec75c32a9415b6",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e6/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/e6/2d0cef6de313127be8b5a4f241bef1d2879f77",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ed/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ed/cfd2a36b9c2b831d343dca09a97040a1a2dcc2",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ee/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/ee/229f984e549656aacbee5d8aabe9fe1dc84e4f",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/f4/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/f4/34504ac3f83ae40ecfd49b823487ea2b7ed78f",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/fb/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/fb/305db6568b96d435deddee430499312ec64333",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/commit-graph",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/info/packs",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-099e13a41296cdbdb3dab9916e9e9a5b13e6b1a3.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-099e13a41296cdbdb3dab9916e9e9a5b13e6b1a3.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-2ae654281c8f45bb7d72d99db323466f763da990.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-2ae654281c8f45bb7d72d99db323466f763da990.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-6f16542d3cc13b2a7cd22419791b411c1a6ea156.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-6f16542d3cc13b2a7cd22419791b411c1a6ea156.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-89398c8161e568ff3076ec2cf76deaa954c719c3.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-89398c8161e568ff3076ec2cf76deaa954c719c3.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-8a62fddec289b3c959da3b13719933083101e8c9.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-8a62fddec289b3c959da3b13719933083101e8c9.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-a79f11a65d19909c9d24c4f7ca3e771114b3028a.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-a79f11a65d19909c9d24c4f7ca3e771114b3028a.pack",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-ddac8ccbb9da39bece939f75a3991c2f882ecf82.idx",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/objects/pack/pack-ddac8ccbb9da39bece939f75a3991c2f882ecf82.pack",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/heads/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/heads/main",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/origin/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/remotes/origin/main",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.git/refs/zuul/fetch",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/renovate.json",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/workflows/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/.github/workflows/add-to-project.yml",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/change.sh",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/entrypoint.sh",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/generate-clustershell-ansible-file.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/generate-minified-hosts.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/handle-inventory-overwrite.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/merge-ansible-cfg.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/merge-inventory-files.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/move-group-vars.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/prepare-vars.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/reconcile-inventory.sh",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/render-python-requirements.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/requirements.txt",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/run.sh",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/test-requirements.txt",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/filter/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/ansible/plugins/filter/address.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/CLAUDE.md",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/base.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/bulk_loader.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/cache.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/config.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/connection.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/data_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/device_mapping.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/exceptions.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/filters.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/interfaces.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/main.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/netbox_client.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/parallel_processor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/retry_utils.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/utils.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/base.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/dhcp_config.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/interface_handler.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/manager.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/manager_mode.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/dnsmasq/metalbox_mode.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/base_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/ceph_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/config_context_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/custom_field_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/frr_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/gnmic_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/netplan_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/primary_ip_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/extractors/secrets_extractor.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/gnmic/manager.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/base.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/data_cache.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/file_writer.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/host_group_writer.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/inventory/manager.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/templates/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/netbox/templates/netbox.hosts.j2",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/clustershell.yml.j2",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/files/templates/requirements.txt.j2",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/build.yml",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/pre.yml",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/playbooks/test-unit.yml",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/conftest.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/__init__.py",
                                "cd+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/__init__.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/conftest.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_base_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_bulk_loader.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_cache.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_ceph_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_config.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_config_context_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_connection.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_custom_field_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_device_mapping.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_base.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_dhcp_config.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_interface_handler.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_manager.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_manager_mode.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_dnsmasq_metalbox_mode.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_exceptions.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_filters.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_frr_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_gnmic_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_interfaces.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_netplan_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_parallel_processor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_primary_ip_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_retry_utils.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_secrets_extractor.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_smoke.py",
                                "<f+++++++++ src/github.com/osism/container-image-inventory-reconciler/tests/unit/netbox/test_utils.py"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:42.018320Z",
                            "start": "2026-07-22T14:15:41.152660Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000030",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "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": {
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "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": {
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "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-8f02-51f2-000000000032",
                        "name": "ensure-output-dirs-present",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/ensure-output-dirs-present"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:42.839742Z",
                            "start": "2026-07-22T14:15:42.063378Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000034",
                        "name": "Ensure Zuul output directories exist"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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-8f02-51f2-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:43.103678Z",
                            "start": "2026-07-22T14:15:42.852173Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000039",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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.062110",
                            "end": "2026-07-22 14:15:43.448914",
                            "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-8f02-51f2-00000000003a-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:15:43.386804",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-8f02-51f2-00000000003a-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:43.657608Z",
                            "start": "2026-07-22T14:15:43.139406Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000003a",
                        "name": "Probe first sudo invocation under strace"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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.110139",
                            "end": "2026-07-22 14:15:44.094890",
                            "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-8f02-51f2-00000000003b-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:15:43.984751",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-8f02-51f2-00000000003b-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:44.205549Z",
                            "start": "2026-07-22T14:15:43.697293Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000003b",
                        "name": "Snapshot DNS / PAM / logind state (no become)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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-8f02-51f2-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:44.531767Z",
                            "start": "2026-07-22T14:15:44.222896Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-00000000003f",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j869847036639.917",
                            "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:05.978438",
                            "end": "2026-07-22 14:15:51.300583",
                            "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-8f02-51f2-000000000040-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j869847036639.917",
                            "start": "2026-07-22 14:15:45.322145",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-8f02-51f2-000000000040-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:56.077904Z",
                            "start": "2026-07-22T14:15:44.539716Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000040",
                        "name": "Snapshot dual-stack network state (pre)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:56.129630Z",
                            "start": "2026-07-22T14:15:56.082719Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000041",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-8f02-51f2-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:56.183561Z",
                            "start": "2026-07-22T14:15:56.135270Z"
                        },
                        "id": "0242ac1f-6606-8f02-51f2-000000000042",
                        "name": "Probe container network namespace (teardown)"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 32,
            "rescued": 0,
            "skipped": 5,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "0",
    "phase": "run",
    "playbook": "github.com/osism/container-image-inventory-reconciler/playbooks/test-unit.yml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-07-22T14:16:17.677529Z",
                    "start": "2026-07-22T14:15:57.437968Z"
                },
                "id": "0242ac1f-6606-bc2f-6d2a-000000000002",
                "name": "Run unit tests for files/netbox/"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.package",
                            "cache_update_time": 1784695389,
                            "cache_updated": false,
                            "changed": false,
                            "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-venv"
                                    ],
                                    "only_upgrade": false,
                                    "package": [
                                        "python3-venv"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:15:58.536513Z",
                            "start": "2026-07-22T14:15:57.454396Z"
                        },
                        "id": "0242ac1f-6606-bc2f-6d2a-000000000004",
                        "name": "Ensure python3-venv is available"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": true,
                            "cmd": "set -e\nset -o pipefail\nset -x\n\npython3 -m venv \"/tmp/test-unit-venv\"\n\"/tmp/test-unit-venv/bin/pip\" install --upgrade pip\n\"/tmp/test-unit-venv/bin/pip\" install \\\n    -r files/requirements.txt \\\n    -r files/test-requirements.txt\n",
                            "delta": "0:00:15.357862",
                            "end": "2026-07-22 14:16:14.571717",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nset -o pipefail\nset -x\n\npython3 -m venv \"/tmp/test-unit-venv\"\n\"/tmp/test-unit-venv/bin/pip\" install --upgrade pip\n\"/tmp/test-unit-venv/bin/pip\" install \\\n    -r files/requirements.txt \\\n    -r files/test-requirements.txt\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/container-image-inventory-reconciler",
                                    "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-bc2f-6d2a-000000000005-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:15:59.213855",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ python3 -m venv /tmp/test-unit-venv\n+ /tmp/test-unit-venv/bin/pip install --upgrade pip\nRequirement already satisfied: pip in /tmp/test-unit-venv/lib/python3.11/site-packages (23.0.1)\nCollecting pip\n  Downloading pip-26.1.2-py3-none-any.whl (1.8 MB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.8/1.8 MB 15.4 MB/s eta 0:00:00\nInstalling collected packages: pip\n  Attempting uninstall: pip\n    Found existing installation: pip 23.0.1\n    Uninstalling pip-23.0.1:\n      Successfully uninstalled pip-23.0.1\nSuccessfully installed pip-26.1.2\n+ /tmp/test-unit-venv/bin/pip install -r files/requirements.txt -r files/test-requirements.txt\nCollecting Jinja2==3.1.6 (from -r files/requirements.txt (line 1))\n  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\nCollecting ansible-core==2.19.11 (from -r files/requirements.txt (line 2))\n  Downloading ansible_core-2.19.11-py3-none-any.whl.metadata (7.7 kB)\nCollecting dynaconf==3.3.2 (from -r files/requirements.txt (line 3))\n  Downloading dynaconf-3.3.2-py3-none-any.whl.metadata (8.5 kB)\nCollecting netaddr==1.3.0 (from -r files/requirements.txt (line 4))\n  Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB)\nCollecting pynetbox==7.8.0 (from -r files/requirements.txt (line 5))\n  Downloading pynetbox-7.8.0-py3-none-any.whl.metadata (5.3 kB)\nCollecting pytest==9.1.1 (from -r files/test-requirements.txt (line 2))\n  Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)\nCollecting pytest-cov==7.1.0 (from -r files/test-requirements.txt (line 3))\n  Downloading pytest_cov-7.1.0-py3-none-any.whl.metadata (32 kB)\nCollecting pytest-mock==3.15.1 (from -r files/test-requirements.txt (line 4))\n  Downloading pytest_mock-3.15.1-py3-none-any.whl.metadata (3.9 kB)\nCollecting loguru==0.7.3 (from -r files/test-requirements.txt (line 10))\n  Downloading loguru-0.7.3-py3-none-any.whl.metadata (22 kB)\nCollecting MarkupSafe>=2.0 (from Jinja2==3.1.6->-r files/requirements.txt (line 1))\n  Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)\nCollecting PyYAML>=5.1 (from ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)\nCollecting cryptography (from ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (4.3 kB)\nCollecting packaging (from ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting resolvelib<2.0.0,>=0.5.3 (from ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading resolvelib-1.2.1-py3-none-any.whl.metadata (3.7 kB)\nCollecting requests<3.0,>=2.20.0 (from pynetbox==7.8.0->-r files/requirements.txt (line 5))\n  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)\nCollecting iniconfig>=1.0.1 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))\n  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting pluggy<2,>=1.5 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))\n  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\nCollecting pygments>=2.7.2 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))\n  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting coverage>=7.10.6 (from coverage[toml]>=7.10.6->pytest-cov==7.1.0->-r files/test-requirements.txt (line 3))\n  Downloading coverage-7.15.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (8.6 kB)\nCollecting charset_normalizer<4,>=2 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))\n  Downloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (41 kB)\nCollecting idna<4,>=2.5 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))\n  Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)\nCollecting urllib3<3,>=1.26 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))\n  Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)\nCollecting certifi>=2023.5.7 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))\n  Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)\nCollecting cffi>=2.0.0 (from cryptography->ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)\nCollecting pycparser (from cffi>=2.0.0->cryptography->ansible-core==2.19.11->-r files/requirements.txt (line 2))\n  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)\nDownloading jinja2-3.1.6-py3-none-any.whl (134 kB)\nDownloading ansible_core-2.19.11-py3-none-any.whl (2.4 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.4/2.4 MB 47.6 MB/s  0:00:00\nDownloading dynaconf-3.3.2-py3-none-any.whl (270 kB)\nDownloading netaddr-1.3.0-py3-none-any.whl (2.3 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.3/2.3 MB 42.5 MB/s  0:00:00\nDownloading pynetbox-7.8.0-py3-none-any.whl (54 kB)\nDownloading pytest-9.1.1-py3-none-any.whl (386 kB)\nDownloading pytest_cov-7.1.0-py3-none-any.whl (22 kB)\nDownloading pytest_mock-3.15.1-py3-none-any.whl (10 kB)\nDownloading loguru-0.7.3-py3-none-any.whl (61 kB)\nDownloading pluggy-1.6.0-py3-none-any.whl (20 kB)\nDownloading requests-2.34.2-py3-none-any.whl (73 kB)\nDownloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (221 kB)\nDownloading idna-3.18-py3-none-any.whl (65 kB)\nDownloading resolvelib-1.2.1-py3-none-any.whl (18 kB)\nDownloading urllib3-2.7.0-py3-none-any.whl (131 kB)\nDownloading certifi-2026.7.22-py3-none-any.whl (136 kB)\nDownloading coverage-7.15.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (254 kB)\nDownloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)\nDownloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)\nDownloading packaging-26.2-py3-none-any.whl (100 kB)\nDownloading pygments-2.20.0-py3-none-any.whl (1.2 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.2/1.2 MB 23.1 MB/s  0:00:00\nDownloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 806.6/806.6 kB 32.1 MB/s  0:00:00\nDownloading cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl (4.7 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.7/4.7 MB 60.0 MB/s  0:00:00\nDownloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (217 kB)\nDownloading pycparser-3.0-py3-none-any.whl (48 kB)\nInstalling collected packages: urllib3, resolvelib, PyYAML, pygments, pycparser, pluggy, packaging, netaddr, MarkupSafe, loguru, iniconfig, idna, dynaconf, coverage, charset_normalizer, certifi, requests, pytest, Jinja2, cffi, pytest-mock, pytest-cov, pynetbox, cryptography, ansible-core\n\nSuccessfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 PyYAML-6.0.3 ansible-core-2.19.11 certifi-2026.7.22 cffi-2.1.0 charset_normalizer-3.4.9 coverage-7.15.2 cryptography-49.0.0 dynaconf-3.3.2 idna-3.18 iniconfig-2.3.0 loguru-0.7.3 netaddr-1.3.0 packaging-26.2 pluggy-1.6.0 pycparser-3.0 pygments-2.20.0 pynetbox-7.8.0 pytest-9.1.1 pytest-cov-7.1.0 pytest-mock-3.15.1 requests-2.34.2 resolvelib-1.2.1 urllib3-2.7.0",
                            "stdout_lines": [
                                "+ python3 -m venv /tmp/test-unit-venv",
                                "+ /tmp/test-unit-venv/bin/pip install --upgrade pip",
                                "Requirement already satisfied: pip in /tmp/test-unit-venv/lib/python3.11/site-packages (23.0.1)",
                                "Collecting pip",
                                "  Downloading pip-26.1.2-py3-none-any.whl (1.8 MB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.8/1.8 MB 15.4 MB/s eta 0:00:00",
                                "Installing collected packages: pip",
                                "  Attempting uninstall: pip",
                                "    Found existing installation: pip 23.0.1",
                                "    Uninstalling pip-23.0.1:",
                                "      Successfully uninstalled pip-23.0.1",
                                "Successfully installed pip-26.1.2",
                                "+ /tmp/test-unit-venv/bin/pip install -r files/requirements.txt -r files/test-requirements.txt",
                                "Collecting Jinja2==3.1.6 (from -r files/requirements.txt (line 1))",
                                "  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting ansible-core==2.19.11 (from -r files/requirements.txt (line 2))",
                                "  Downloading ansible_core-2.19.11-py3-none-any.whl.metadata (7.7 kB)",
                                "Collecting dynaconf==3.3.2 (from -r files/requirements.txt (line 3))",
                                "  Downloading dynaconf-3.3.2-py3-none-any.whl.metadata (8.5 kB)",
                                "Collecting netaddr==1.3.0 (from -r files/requirements.txt (line 4))",
                                "  Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB)",
                                "Collecting pynetbox==7.8.0 (from -r files/requirements.txt (line 5))",
                                "  Downloading pynetbox-7.8.0-py3-none-any.whl.metadata (5.3 kB)",
                                "Collecting pytest==9.1.1 (from -r files/test-requirements.txt (line 2))",
                                "  Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting pytest-cov==7.1.0 (from -r files/test-requirements.txt (line 3))",
                                "  Downloading pytest_cov-7.1.0-py3-none-any.whl.metadata (32 kB)",
                                "Collecting pytest-mock==3.15.1 (from -r files/test-requirements.txt (line 4))",
                                "  Downloading pytest_mock-3.15.1-py3-none-any.whl.metadata (3.9 kB)",
                                "Collecting loguru==0.7.3 (from -r files/test-requirements.txt (line 10))",
                                "  Downloading loguru-0.7.3-py3-none-any.whl.metadata (22 kB)",
                                "Collecting MarkupSafe>=2.0 (from Jinja2==3.1.6->-r files/requirements.txt (line 1))",
                                "  Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)",
                                "Collecting PyYAML>=5.1 (from ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)",
                                "Collecting cryptography (from ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (4.3 kB)",
                                "Collecting packaging (from ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting resolvelib<2.0.0,>=0.5.3 (from ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading resolvelib-1.2.1-py3-none-any.whl.metadata (3.7 kB)",
                                "Collecting requests<3.0,>=2.20.0 (from pynetbox==7.8.0->-r files/requirements.txt (line 5))",
                                "  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting iniconfig>=1.0.1 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))",
                                "  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting pluggy<2,>=1.5 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))",
                                "  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting pygments>=2.7.2 (from pytest==9.1.1->-r files/test-requirements.txt (line 2))",
                                "  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting coverage>=7.10.6 (from coverage[toml]>=7.10.6->pytest-cov==7.1.0->-r files/test-requirements.txt (line 3))",
                                "  Downloading coverage-7.15.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (8.6 kB)",
                                "Collecting charset_normalizer<4,>=2 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))",
                                "  Downloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (41 kB)",
                                "Collecting idna<4,>=2.5 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))",
                                "  Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)",
                                "Collecting urllib3<3,>=1.26 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))",
                                "  Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)",
                                "Collecting certifi>=2023.5.7 (from requests<3.0,>=2.20.0->pynetbox==7.8.0->-r files/requirements.txt (line 5))",
                                "  Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting cffi>=2.0.0 (from cryptography->ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)",
                                "Collecting pycparser (from cffi>=2.0.0->cryptography->ansible-core==2.19.11->-r files/requirements.txt (line 2))",
                                "  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)",
                                "Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)",
                                "Downloading ansible_core-2.19.11-py3-none-any.whl (2.4 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.4/2.4 MB 47.6 MB/s  0:00:00",
                                "Downloading dynaconf-3.3.2-py3-none-any.whl (270 kB)",
                                "Downloading netaddr-1.3.0-py3-none-any.whl (2.3 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.3/2.3 MB 42.5 MB/s  0:00:00",
                                "Downloading pynetbox-7.8.0-py3-none-any.whl (54 kB)",
                                "Downloading pytest-9.1.1-py3-none-any.whl (386 kB)",
                                "Downloading pytest_cov-7.1.0-py3-none-any.whl (22 kB)",
                                "Downloading pytest_mock-3.15.1-py3-none-any.whl (10 kB)",
                                "Downloading loguru-0.7.3-py3-none-any.whl (61 kB)",
                                "Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Downloading requests-2.34.2-py3-none-any.whl (73 kB)",
                                "Downloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (221 kB)",
                                "Downloading idna-3.18-py3-none-any.whl (65 kB)",
                                "Downloading resolvelib-1.2.1-py3-none-any.whl (18 kB)",
                                "Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)",
                                "Downloading certifi-2026.7.22-py3-none-any.whl (136 kB)",
                                "Downloading coverage-7.15.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (254 kB)",
                                "Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)",
                                "Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)",
                                "Downloading packaging-26.2-py3-none-any.whl (100 kB)",
                                "Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.2/1.2 MB 23.1 MB/s  0:00:00",
                                "Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 806.6/806.6 kB 32.1 MB/s  0:00:00",
                                "Downloading cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl (4.7 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.7/4.7 MB 60.0 MB/s  0:00:00",
                                "Downloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (217 kB)",
                                "Downloading pycparser-3.0-py3-none-any.whl (48 kB)",
                                "Installing collected packages: urllib3, resolvelib, PyYAML, pygments, pycparser, pluggy, packaging, netaddr, MarkupSafe, loguru, iniconfig, idna, dynaconf, coverage, charset_normalizer, certifi, requests, pytest, Jinja2, cffi, pytest-mock, pytest-cov, pynetbox, cryptography, ansible-core",
                                "",
                                "Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 PyYAML-6.0.3 ansible-core-2.19.11 certifi-2026.7.22 cffi-2.1.0 charset_normalizer-3.4.9 coverage-7.15.2 cryptography-49.0.0 dynaconf-3.3.2 idna-3.18 iniconfig-2.3.0 loguru-0.7.3 netaddr-1.3.0 packaging-26.2 pluggy-1.6.0 pycparser-3.0 pygments-2.20.0 pynetbox-7.8.0 pytest-9.1.1 pytest-cov-7.1.0 pytest-mock-3.15.1 requests-2.34.2 resolvelib-1.2.1 urllib3-2.7.0"
                            ],
                            "zuul_log_id": "0242ac1f-6606-bc2f-6d2a-000000000005-1-debianbookworm"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:14.638615Z",
                            "start": "2026-07-22T14:15:58.617419Z"
                        },
                        "id": "0242ac1f-6606-bc2f-6d2a-000000000005",
                        "name": "Create virtualenv and install dependencies"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": true,
                            "cmd": "set -e\nset -o pipefail\nset -x\n\n\"/tmp/test-unit-venv/bin/pytest\" tests/unit\n",
                            "delta": "0:00:02.371530",
                            "end": "2026-07-22 14:16:17.290243",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set -e\nset -o pipefail\nset -x\n\n\"/tmp/test-unit-venv/bin/pytest\" tests/unit\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/container-image-inventory-reconciler",
                                    "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-bc2f-6d2a-000000000006-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-07-22 14:16:14.918713",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "+ /tmp/test-unit-venv/bin/pytest tests/unit\n============================= test session starts ==============================\nplatform linux -- Python 3.11.2, pytest-9.1.1, pluggy-1.6.0\nrootdir: /home/zuul/src/github.com/osism/container-image-inventory-reconciler\nconfigfile: pyproject.toml\nplugins: cov-7.1.0, mock-3.15.1\ncollected 626 items\n\ntests/unit/netbox/test_base_extractor.py ......                          [  0%]\ntests/unit/netbox/test_bulk_loader.py ...........................        [  5%]\ntests/unit/netbox/test_cache.py .............                            [  7%]\ntests/unit/netbox/test_ceph_extractor.py ....................            [ 10%]\ntests/unit/netbox/test_config.py ..........................              [ 14%]\ntests/unit/netbox/test_config_context_extractor.py .........             [ 16%]\ntests/unit/netbox/test_connection.py .............                       [ 18%]\ntests/unit/netbox/test_custom_field_extractor.py .............           [ 20%]\ntests/unit/netbox/test_device_mapping.py ..................              [ 23%]\ntests/unit/netbox/test_dnsmasq_base.py .....                             [ 23%]\ntests/unit/netbox/test_dnsmasq_dhcp_config.py .....................      [ 27%]\ntests/unit/netbox/test_dnsmasq_interface_handler.py .........            [ 28%]\ntests/unit/netbox/test_dnsmasq_manager.py ........                       [ 30%]\ntests/unit/netbox/test_dnsmasq_manager_mode.py ...........               [ 31%]\ntests/unit/netbox/test_dnsmasq_metalbox_mode.py ........................ [ 35%]\n........................................                                 [ 42%]\ntests/unit/netbox/test_exceptions.py ........                            [ 43%]\ntests/unit/netbox/test_filters.py ...................................... [ 49%]\n.........                                                                [ 50%]\ntests/unit/netbox/test_frr_extractor.py ................................ [ 55%]\n...............................................................          [ 65%]\ntests/unit/netbox/test_gnmic_extractor.py ...........................    [ 70%]\ntests/unit/netbox/test_interfaces.py ...........................         [ 74%]\ntests/unit/netbox/test_netplan_extractor.py ............................ [ 79%]\n..................................................                       [ 87%]\ntests/unit/netbox/test_parallel_processor.py ...................         [ 90%]\ntests/unit/netbox/test_primary_ip_extractor.py .......                   [ 91%]\ntests/unit/netbox/test_retry_utils.py ....................               [ 94%]\ntests/unit/netbox/test_secrets_extractor.py .............                [ 96%]\ntests/unit/netbox/test_smoke.py ...                                      [ 96%]\ntests/unit/netbox/test_utils.py ...................                      [100%]\n\n============================= 626 passed in 1.91s ==============================",
                            "stdout_lines": [
                                "+ /tmp/test-unit-venv/bin/pytest tests/unit",
                                "============================= test session starts ==============================",
                                "platform linux -- Python 3.11.2, pytest-9.1.1, pluggy-1.6.0",
                                "rootdir: /home/zuul/src/github.com/osism/container-image-inventory-reconciler",
                                "configfile: pyproject.toml",
                                "plugins: cov-7.1.0, mock-3.15.1",
                                "collected 626 items",
                                "",
                                "tests/unit/netbox/test_base_extractor.py ......                          [  0%]",
                                "tests/unit/netbox/test_bulk_loader.py ...........................        [  5%]",
                                "tests/unit/netbox/test_cache.py .............                            [  7%]",
                                "tests/unit/netbox/test_ceph_extractor.py ....................            [ 10%]",
                                "tests/unit/netbox/test_config.py ..........................              [ 14%]",
                                "tests/unit/netbox/test_config_context_extractor.py .........             [ 16%]",
                                "tests/unit/netbox/test_connection.py .............                       [ 18%]",
                                "tests/unit/netbox/test_custom_field_extractor.py .............           [ 20%]",
                                "tests/unit/netbox/test_device_mapping.py ..................              [ 23%]",
                                "tests/unit/netbox/test_dnsmasq_base.py .....                             [ 23%]",
                                "tests/unit/netbox/test_dnsmasq_dhcp_config.py .....................      [ 27%]",
                                "tests/unit/netbox/test_dnsmasq_interface_handler.py .........            [ 28%]",
                                "tests/unit/netbox/test_dnsmasq_manager.py ........                       [ 30%]",
                                "tests/unit/netbox/test_dnsmasq_manager_mode.py ...........               [ 31%]",
                                "tests/unit/netbox/test_dnsmasq_metalbox_mode.py ........................ [ 35%]",
                                "........................................                                 [ 42%]",
                                "tests/unit/netbox/test_exceptions.py ........                            [ 43%]",
                                "tests/unit/netbox/test_filters.py ...................................... [ 49%]",
                                ".........                                                                [ 50%]",
                                "tests/unit/netbox/test_frr_extractor.py ................................ [ 55%]",
                                "...............................................................          [ 65%]",
                                "tests/unit/netbox/test_gnmic_extractor.py ...........................    [ 70%]",
                                "tests/unit/netbox/test_interfaces.py ...........................         [ 74%]",
                                "tests/unit/netbox/test_netplan_extractor.py ............................ [ 79%]",
                                "..................................................                       [ 87%]",
                                "tests/unit/netbox/test_parallel_processor.py ...................         [ 90%]",
                                "tests/unit/netbox/test_primary_ip_extractor.py .......                   [ 91%]",
                                "tests/unit/netbox/test_retry_utils.py ....................               [ 94%]",
                                "tests/unit/netbox/test_secrets_extractor.py .............                [ 96%]",
                                "tests/unit/netbox/test_smoke.py ...                                      [ 96%]",
                                "tests/unit/netbox/test_utils.py ...................                      [100%]",
                                "",
                                "============================= 626 passed in 1.91s =============================="
                            ],
                            "zuul_log_id": "0242ac1f-6606-bc2f-6d2a-000000000006-1-debianbookworm"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:17.677529Z",
                            "start": "2026-07-22T14:16:14.667458Z"
                        },
                        "id": "0242ac1f-6606-bc2f-6d2a-000000000006",
                        "name": "Run pytest"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 3,
            "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-07-22T14:16:46.778462Z",
                    "start": "2026-07-22T14:16:18.646492Z"
                },
                "id": "0242ac1f-6606-2ebc-8b45-000000000002",
                "name": "Base post-fetch"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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-2ebc-8b45-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:19.066645Z",
                            "start": "2026-07-22T14:16:18.661501Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000009",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j784663062353.1121",
                            "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:05.945882",
                            "end": "2026-07-22 14:16:25.974931",
                            "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-2ebc-8b45-00000000000a-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j784663062353.1121",
                            "start": "2026-07-22 14:16:20.029049",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-2ebc-8b45-00000000000a-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:30.835348Z",
                            "start": "2026-07-22T14:16:19.074693Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000a",
                        "name": "Snapshot dual-stack network state (post)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j28655990540.1227",
                            "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.007978",
                            "end": "2026-07-22 14:16:31.528678",
                            "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-2ebc-8b45-00000000000b-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j28655990540.1227",
                            "start": "2026-07-22 14:16:31.520700",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-2ebc-8b45-00000000000b-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:36.924850Z",
                            "start": "2026-07-22T14:16:30.848186Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000b",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j686831206711.1264",
                            "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.008912",
                            "end": "2026-07-22 14:16:37.624200",
                            "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-2ebc-8b45-00000000000c-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j686831206711.1264",
                            "start": "2026-07-22 14:16:37.615288",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-2ebc-8b45-00000000000c-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:42.974484Z",
                            "start": "2026-07-22T14:16:36.933249Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000c",
                        "name": "Probe container network namespace (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000e",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:43.034769Z",
                            "start": "2026-07-22T14:16:42.988043Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000010",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000e",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:43.110652Z",
                            "start": "2026-07-22T14:16:43.046551Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000011",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000e",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:44.040093Z",
                            "start": "2026-07-22T14:16:43.116140Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000012",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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:fe92:5e72]:/home/zuul/zuul-output/logs/' /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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:fe92:5e72]:/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/a6c69e9054ba4a66b784ae80a56e9c7f/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:fe92:5e72]:/home/zuul/zuul-output/artifacts/' /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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:fe92:5e72]:/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/a6c69e9054ba4a66b784ae80a56e9c7f/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:fe92:5e72]:/home/zuul/zuul-output/docs/' /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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:fe92:5e72]:/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-00000000000e",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:46.076875Z",
                            "start": "2026-07-22T14:16:44.046872Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000014",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/artifacts/* /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.006668",
                                    "end": "2026-07-22 14:16:46.384421",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/artifacts/* /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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-07-22 14:16:46.377753",
                                    "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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs/* /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.006381",
                                    "end": "2026-07-22 14:16:46.732665",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/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/a6c69e9054ba4a66b784ae80a56e9c7f/work/docs/* /var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/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-07-22 14:16:46.726284",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-2ebc-8b45-000000000017",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:46.778462Z",
                            "start": "2026-07-22T14:16:46.087639Z"
                        },
                        "id": "0242ac1f-6606-2ebc-8b45-000000000019",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 8,
            "rescued": 0,
            "skipped": 1,
            "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-07-22T14:16:48.351066Z",
                    "start": "2026-07-22T14:16:47.702928Z"
                },
                "id": "0242ac1f-6606-1a8c-1624-000000000002",
                "name": "Base post"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCubwKiwGUPZX5MPf7u6sKcGV2NulhLTpIyFilIH4fnYUzgWo66LhtvUaM9zM5Le9TuGQexqTEtXhKjZ2KAXsuOyFZceyGQt55GOCROk/eT1m0gR3ezFRyE4rSu/lPwKvFwYJCyxriJoK4zEYi+Bg31x3RF8XM3O0zgWoSOIxBPEGGBSy7dvTk394gGfbet8z/S6acJCVP4QpfmWDDbXhAlEZ42Ux/3HG3uCNltou5TUOaAjN+426ZECNlFZgUuRjhAXoSMXeAEgHIfAAVI17WXWXZUSTK2b0iCeA22fFQo0of9KZDyUNOlGWERBJznlYS4DOQAa55YZ0ugiEAEkgX5yqLNEszA4VXDbgYm2qeSMd4KBFoL6V/pDk9Rxl6jjSxQDs2ia/ZY8bng2z5Mrao9nhtnYV1Zhsf9FRySuQgEW3bueNyS9+/gXcqOWLg496gVSYfIXOOoboc4L39aMVQL7WL2uPsr8dIk/smBzsN+8fukzBoYQyxeyJerUXHGooM= 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 AAAAB3NzaC1yc2EAAAADAQABAAABgQCubwKiwGUPZX5MPf7u6sKcGV2NulhLTpIyFilIH4fnYUzgWo66LhtvUaM9zM5Le9TuGQexqTEtXhKjZ2KAXsuOyFZceyGQt55GOCROk/eT1m0gR3ezFRyE4rSu/lPwKvFwYJCyxriJoK4zEYi+Bg31x3RF8XM3O0zgWoSOIxBPEGGBSy7dvTk394gGfbet8z/S6acJCVP4QpfmWDDbXhAlEZ42Ux/3HG3uCNltou5TUOaAjN+426ZECNlFZgUuRjhAXoSMXeAEgHIfAAVI17WXWXZUSTK2b0iCeA22fFQo0of9KZDyUNOlGWERBJznlYS4DOQAa55YZ0ugiEAEkgX5yqLNEszA4VXDbgYm2qeSMd4KBFoL6V/pDk9Rxl6jjSxQDs2ia/ZY8bng2z5Mrao9nhtnYV1Zhsf9FRySuQgEW3bueNyS9+/gXcqOWLg496gVSYfIXOOoboc4L39aMVQL7WL2uPsr8dIk/smBzsN+8fukzBoYQyxeyJerUXHGooM= 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-1a8c-1624-000000000005",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/a6c69e9054ba4a66b784ae80a56e9c7f/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-07-22T14:16:48.351066Z",
                            "start": "2026-07-22T14:16:47.719480Z"
                        },
                        "id": "0242ac1f-6606-1a8c-1624-000000000007",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
