[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "gitlab.com/softwarefactory-project/centosinfra-prod/dci-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:43:07.581885Z",
                    "start": "2026-06-10T18:43:04.805930Z"
                },
                "id": "0a580a2a-001b-9502-e799-000000000002",
                "name": "localhost"
            },
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "action": "gather_facts",
                            "ansible_facts": {
                                "ansible_apparmor": {
                                    "status": "disabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "NA",
                                "ansible_bios_vendor": "NA",
                                "ansible_bios_version": "NA",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "NA",
                                "ansible_chassis_version": "NA",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "(hd0,gpt3)/vmlinuz-5.14.0-427.13.1.el9_4.x86_64",
                                    "console": "ttyS0,115200n8",
                                    "crashkernel": "1G-4G:192M,4G-64G:256M,64G-:512M",
                                    "net.ifnames": "0",
                                    "no_timer_check": true,
                                    "root": "UUID=2fb0abc1-9d08-48bc-9719-108d4ed14685"
                                },
                                "ansible_date_time": {
                                    "date": "2026-06-10",
                                    "day": "10",
                                    "epoch": "1781116985",
                                    "epoch_int": "1781116985",
                                    "hour": "18",
                                    "iso8601": "2026-06-10T18:43:05Z",
                                    "iso8601_basic": "20260610T184305458282",
                                    "iso8601_basic_short": "20260610T184305",
                                    "iso8601_micro": "2026-06-10T18:43:05.458282Z",
                                    "minute": "43",
                                    "month": "06",
                                    "second": "05",
                                    "time": "18:43:05",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Wednesday",
                                    "weekday_number": "3",
                                    "weeknumber": "23",
                                    "year": "2026"
                                },
                                "ansible_devices": {},
                                "ansible_distribution": "Redhat",
                                "ansible_distribution_major_version": "9",
                                "ansible_distribution_release": "Plow",
                                "ansible_distribution_version": "9.7",
                                "ansible_dns": {
                                    "nameservers": [
                                        "10.43.0.10"
                                    ],
                                    "options": {
                                        "ndots": "5"
                                    },
                                    "search": [
                                        "sf.svc.cluster.local",
                                        "svc.cluster.local",
                                        "cluster.local",
                                        "softwarefactory-project.io"
                                    ]
                                },
                                "ansible_domain": "zuul-executor-headless.sf.svc.cluster.local",
                                "ansible_effective_group_id": 0,
                                "ansible_effective_user_id": 1000,
                                "ansible_env": {
                                    "ANSIBLE_CONFIG": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/ansible/pre_playbook_0/ansible.cfg",
                                    "FLUENT_BIT_PORT": "tcp://10.43.174.239:2020",
                                    "FLUENT_BIT_PORT_2020_TCP": "tcp://10.43.174.239:2020",
                                    "FLUENT_BIT_PORT_2020_TCP_ADDR": "10.43.174.239",
                                    "FLUENT_BIT_PORT_2020_TCP_PORT": "2020",
                                    "FLUENT_BIT_PORT_2020_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_PORT_24224_TCP": "tcp://10.43.174.239:24224",
                                    "FLUENT_BIT_PORT_24224_TCP_ADDR": "10.43.174.239",
                                    "FLUENT_BIT_PORT_24224_TCP_PORT": "24224",
                                    "FLUENT_BIT_PORT_24224_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_PORT_5140_TCP": "tcp://10.43.174.239:5140",
                                    "FLUENT_BIT_PORT_5140_TCP_ADDR": "10.43.174.239",
                                    "FLUENT_BIT_PORT_5140_TCP_PORT": "5140",
                                    "FLUENT_BIT_PORT_5140_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_SERVICE_HOST": "10.43.174.239",
                                    "FLUENT_BIT_SERVICE_PORT": "2020",
                                    "FLUENT_BIT_SERVICE_PORT_FB_FWD_INPUT": "24224",
                                    "FLUENT_BIT_SERVICE_PORT_FB_HTTP_INPUT": "5140",
                                    "FLUENT_BIT_SERVICE_PORT_HTTP": "2020",
                                    "HOME": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work",
                                    "HOSTNAME": "zuul-executor-0",
                                    "K8S_COMPONENT": "zuul",
                                    "K8S_CONTAINER": "zuul-executor",
                                    "K8S_LABELS_APP": "sf",
                                    "K8S_LABELS_RUN": "zuul-executor",
                                    "K8S_NAMESPACE": "sf",
                                    "K8S_NODENAME": "microshift-ze01.softwarefactory-project.io",
                                    "K8S_PODIP": "10.42.0.27",
                                    "K8S_PODNAME": "zuul-executor-0",
                                    "KUBECONFIG": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/kube/config",
                                    "KUBERNETES_PORT": "tcp://10.43.0.1:443",
                                    "KUBERNETES_PORT_443_TCP": "tcp://10.43.0.1:443",
                                    "KUBERNETES_PORT_443_TCP_ADDR": "10.43.0.1",
                                    "KUBERNETES_PORT_443_TCP_PORT": "443",
                                    "KUBERNETES_PORT_443_TCP_PROTO": "tcp",
                                    "KUBERNETES_SERVICE_HOST": "10.43.0.1",
                                    "KUBERNETES_SERVICE_PORT": "443",
                                    "KUBERNETES_SERVICE_PORT_HTTPS": "443",
                                    "LC_CTYPE": "C.UTF-8",
                                    "NSS_SDB_USE_CACHE": "no",
                                    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                    "PWD": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_0/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config/playbooks/base",
                                    "PYTHONPATH": "/var/lib/zuul/ansible/9",
                                    "REQUESTS_CA_BUNDLE": "/etc/ssl/certs/ca-bundle.crt",
                                    "SHLVL": "1",
                                    "SSH_AGENT_PID": "3808301",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-XXXXXXrryOGZ/agent.3808300",
                                    "TERM": "xterm",
                                    "TMP": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/tmp",
                                    "XDG_CACHE_HOME": "/var/cache/dhall",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/ansible/logging.json",
                                    "ZUUL_OUTPUT_MAX_BYTES": "1073741824",
                                    "_": "/usr/lib/zuul/ansible/9/bin/python",
                                    "container": "oci"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "NA",
                                "ansible_fqdn": "zuul-executor-0.zuul-executor-headless.sf.svc.cluster.local",
                                "ansible_hostname": "zuul-executor-0",
                                "ansible_hostnqn": "",
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "5.14.0-427.13.1.el9_4.x86_64",
                                "ansible_kernel_version": "#1 SMP PREEMPT_DYNAMIC Wed Apr 10 10:29:16 EDT 2024",
                                "ansible_loadavg": {
                                    "15m": 1.32,
                                    "1m": 1.37,
                                    "5m": 1.33
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 1678,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 9145,
                                        "used": 6591
                                    },
                                    "real": {
                                        "free": 1678,
                                        "total": 15736,
                                        "used": 14058
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 15736,
                                "ansible_mounts": [
                                    {
                                        "block_available": 20592053,
                                        "block_size": 4096,
                                        "block_total": 25884155,
                                        "block_used": 5292102,
                                        "device": "/dev/vda4",
                                        "fstype": "xfs",
                                        "inode_available": 51132690,
                                        "inode_total": 51801024,
                                        "inode_used": 668334,
                                        "mount": "/etc/hosts",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 84345049088,
                                        "size_total": 106021498880,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work",
                                        "options": "rw,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 20592053,
                                        "block_size": 4096,
                                        "block_total": 25884155,
                                        "block_used": 5292102,
                                        "device": "/dev/vda4",
                                        "fstype": "xfs",
                                        "inode_available": 51132690,
                                        "inode_total": 51801024,
                                        "inode_used": 668334,
                                        "mount": "/etc/pki/ca-trust/extracted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 84345049088,
                                        "size_total": 106021498880,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/ansible",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/kube",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/ansible/pre_playbook_0",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5217343,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2630593,
                                        "device": "/dev/topolvm/fca70fb6-33c3-4b13-ac96-46f2db9c32d6",
                                        "fstype": "xfs",
                                        "inode_available": 15322517,
                                        "inode_total": 15728640,
                                        "inode_used": 406123,
                                        "mount": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/.ansible",
                                        "options": "rw,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21370236928,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    }
                                ],
                                "ansible_nodename": "zuul-executor-0",
                                "ansible_os_family": "Redhat",
                                "ansible_pkg_mgr": "unknown",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "(hd0,gpt3)/vmlinuz-5.14.0-427.13.1.el9_4.x86_64",
                                    "console": [
                                        "tty0",
                                        "ttyS0,115200n8"
                                    ],
                                    "crashkernel": "1G-4G:192M,4G-64G:256M,64G-:512M",
                                    "net.ifnames": "0",
                                    "no_timer_check": true,
                                    "root": "UUID=2fb0abc1-9d08-48bc-9719-108d4ed14685"
                                },
                                "ansible_processor": [
                                    "0",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "1",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "2",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "3",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "4",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "5",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "6",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor",
                                    "7",
                                    "AuthenticAMD",
                                    "AMD EPYC-Rome Processor"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 8,
                                "ansible_processor_nproc": 8,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 8,
                                "ansible_product_name": "NA",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "NA",
                                "ansible_python": {
                                    "executable": "/usr/lib/zuul/ansible/9/bin/python",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 13,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        13,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.13",
                                "ansible_real_group_id": 0,
                                "ansible_real_user_id": 1000,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "bwrap",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": [
                                    ""
                                ],
                                "ansible_system_capabilities_enforced": "True",
                                "ansible_system_vendor": "NA",
                                "ansible_uptime_seconds": 9849141,
                                "ansible_user_dir": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work",
                                "ansible_user_gecos": "1000 user",
                                "ansible_user_gid": 0,
                                "ansible_user_id": "1000",
                                "ansible_user_shell": "/sbin/nologin",
                                "ansible_user_uid": 1000,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "guest",
                                "ansible_virtualization_tech_guest": [
                                    "container"
                                ],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "container",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "deprecations": [],
                            "warnings": []
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:05.810070Z",
                            "start": "2026-06-10T18:43:04.813901Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-0000000000a3",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:05.851721Z",
                            "start": "2026-06-10T18:43:05.817899Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "abe/dci/abe0d52c4e734b18b4c37a6470e4366c"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-0000000000c6",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:05.916087Z",
                            "start": "2026-06-10T18:43:05.874613Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-0000000000c8",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.18\nJob: dci-python-test-with-dciclient-job\nPipeline: check\nExecutor: 38.102.83.47\nTriggered by: https://github.com/distributedci/dci-analytics/pull/31\nEvent ID: 21d83630-64fc-11f1-9ecb-f75c1cae36f0\n"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:05.972546Z",
                            "start": "2026-06-10T18:43:05.923740Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000000b",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: testrunner\nHostname: 727b3c204f2d\nUsername: zuul\nDistro: RedHat 8.10\nProvider: k1s04\nRegion: \nLabel: zuul-worker-ubi8\nProduct Name: OpenStack Nova\nInterface IP: zuul-worker-ubi8-0000070086\n",
                                    "zj_item": "testrunner"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:06.076614Z",
                            "start": "2026-06-10T18:43:05.976043Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "mode": "0755",
                                    "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "mode": "02755",
                                    "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/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/abe0d52c4e734b18b4c37a6470e4366c/work/logs/zuul-info",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "1000",
                            "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/zuul-info",
                            "size": 6,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-00000000001b",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:06.581647Z",
                            "start": "2026-06-10T18:43:06.086611Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000001d",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "dddad07e8eb0110e4e835ff244fbb57f57ed11c8",
                            "dest": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "dddad07e8eb0110e4e835ff244fbb57f57ed11c8",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/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/abe0d52c4e734b18b4c37a6470e4366c/work/.ansible/tmp/ansible-tmp-1781116986.6248193-57-274263806440503/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "9a239085626fdeebc542c9180c48de65",
                            "mode": "0644",
                            "owner": "1000",
                            "size": 15690,
                            "src": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/.ansible/tmp/ansible-tmp-1781116986.6248193-57-274263806440503/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-00000000001b",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:07.581885Z",
                            "start": "2026-06-10T18:43:06.590127Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000001e",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:43:53.126836Z",
                    "start": "2026-06-10T18:43:07.591952Z"
                },
                "id": "0a580a2a-001b-9502-e799-000000000026",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-00000000002c",
                        "name": "start-zuul-console",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/start-zuul-console"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.352426Z",
                            "start": "2026-06-10T18:43:07.606146Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000002e",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.390458Z",
                            "start": "2026-06-10T18:43:13.365489Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000003b",
                        "name": "Define zuul_info_dir fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.428294Z",
                            "start": "2026-06-10T18:43:13.394482Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000003c",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "setup",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.455909Z",
                            "start": "2026-06-10T18:43:13.432165Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000003d",
                        "name": "Collect information about the host"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.491964Z",
                            "start": "2026-06-10T18:43:13.465608Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000003e",
                        "name": "Sanitize hostname"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "template",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.536815Z",
                            "start": "2026-06-10T18:43:13.500137Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000003f",
                        "name": "Write out all ansible variables/facts known for each host"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "zuul_debug_info",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.573390Z",
                            "start": "2026-06-10T18:43:13.544866Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000041",
                        "name": "Collect information about zuul worker"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "template",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.619633Z",
                            "start": "2026-06-10T18:43:13.581990Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000042",
                        "name": "Write out all zuul information for each host"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "zuul_console",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000059",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.659960Z",
                            "start": "2026-06-10T18:43:13.632918Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000005b",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "synchronize",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": false,
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000059",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.709295Z",
                            "start": "2026-06-10T18:43:13.673143Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000005c",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000068",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.751737Z",
                            "start": "2026-06-10T18:43:13.724591Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000006a",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_connection != 'kubectl'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000068",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.786043Z",
                            "start": "2026-06-10T18:43:13.759661Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000006b",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_pod",
                                    "include": "rsync.yaml",
                                    "include_args": {},
                                    "zj_pod": [
                                        "testrunner",
                                        {
                                            "context": "main:zuul-worker/38-102-83-54:9023",
                                            "namespace": "main",
                                            "pod": "zuul-worker-ubi8-0000070086",
                                            "resources": {
                                                "cores": 0,
                                                "instances": 1,
                                                "ram": 0
                                            },
                                            "stream_port1": 33417,
                                            "stream_port2": 43289
                                        }
                                    ]
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:13.857705Z",
                            "start": "2026-06-10T18:43:13.799421Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-00000000007a",
                        "name": "Include rsync tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "oc",
                                "--context",
                                "main:zuul-worker/38-102-83-54:9023",
                                "--namespace",
                                "main",
                                "exec",
                                "zuul-worker-ubi8-0000070086",
                                "mkdir",
                                "src"
                            ],
                            "delta": "0:00:00.934950",
                            "end": "2026-06-10 18:43:15.225706",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "oc --context \"main:zuul-worker/38-102-83-54:9023\"\n   --namespace \"main\"\n   exec zuul-worker-ubi8-0000070086 mkdir src\n",
                                    "_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": "0a580a2a-001b-9502-e799-000000000126-0-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:43:14.290756",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-001b-9502-e799-000000000126-0-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:15.298906Z",
                            "start": "2026-06-10T18:43:13.876776Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000126",
                        "name": "Create src directory"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",
                            "changed": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:17.678572Z",
                            "start": "2026-06-10T18:43:15.309063Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000127",
                        "name": "Copy src repos to the pod"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/var/lib/zuul-ssh/..data/priv"
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000085",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:18.091719Z",
                            "start": "2026-06-10T18:43:17.690554Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000087",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/root/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/root/zuul-output/logs",
                                    "state": "absent",
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/root/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/root/zuul-output/artifacts",
                                    "state": "absent",
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": null,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/root/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "absent",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "path": "/root/zuul-output/docs",
                                    "state": "absent",
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000092",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:35.439184Z",
                            "start": "2026-06-10T18:43:18.104599Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000094",
                        "name": "Empty Zuul Output directories by removing them"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/root/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/root/zuul-output/logs",
                                            "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": "/root/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/root/zuul-output/logs",
                                    "size": 6,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/root/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/root/zuul-output/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": "/root/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/root/zuul-output/artifacts",
                                    "size": 6,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/root/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/root/zuul-output/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": "/root/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/root/zuul-output/docs",
                                    "size": 6,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-9502-e799-000000000092",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:53.126836Z",
                            "start": "2026-06-10T18:43:35.446645Z"
                        },
                        "id": "0a580a2a-001b-9502-e799-000000000096",
                        "name": "Ensure Zuul Output directories exist"
                    }
                }
            ]
        }
    ],
    "stats": {
        "localhost": {
            "changed": 2,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        },
        "testrunner": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 7,
            "rescued": 0,
            "skipped": 11,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "master",
    "index": "1",
    "phase": "pre",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/unittests/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:44:13.054598Z",
                    "start": "2026-06-10T18:43:53.858504Z"
                },
                "id": "0a580a2a-001b-ca3c-0e50-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "bindep"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:53.936824Z",
                            "start": "2026-06-10T18:43:53.868086Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000004",
                        "name": "Install binary dependencies"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "find.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:43:53.998497Z",
                            "start": "2026-06-10T18:43:53.956867Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001e",
                        "name": "Include find tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/distributedci/dci-analytics/bindep.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:00.266935Z",
                            "start": "2026-06-10T18:43:54.017490Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-00000000003e",
                        "name": "Look for bindep.txt"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "bindep_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:00.301067Z",
                            "start": "2026-06-10T18:44:00.271804Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-00000000003f",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/distributedci/dci-analytics/other-requirements.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.193400Z",
                            "start": "2026-06-10T18:44:00.306390Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000040",
                        "name": "Look for other-requirements.txt"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_other_file_stat is skipped and  bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.237110Z",
                            "start": "2026-06-10T18:44:06.199749Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000041",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "bindep_fallback is defined and not bindep_other_file_stat is skipped and not bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.290900Z",
                            "start": "2026-06-10T18:44:06.244258Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000042",
                        "name": "Look for bindep fallback file"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_fallback_file_stat is skipped and  bindep_fallback_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.335755Z",
                            "start": "2026-06-10T18:44:06.298097Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000043",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.382069Z",
                            "start": "2026-06-10T18:44:06.344409Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001f",
                        "name": "Include bindep tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.422300Z",
                            "start": "2026-06-10T18:44:06.387592Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000020",
                        "name": "Include install tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.480483Z",
                            "start": "2026-06-10T18:44:06.425831Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000021",
                        "name": "Include package tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "test-setup"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:06.517361Z",
                            "start": "2026-06-10T18:44:06.486606Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000005",
                        "name": "Run test-setup role"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/distributedci/dci-analytics/tools/test-setup.sh"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:12.487061Z",
                            "start": "2026-06-10T18:44:06.544162Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000091",
                        "name": "Check if project's tools/test-setup.sh exists"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "p.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-ca3c-0e50-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:13.054598Z",
                            "start": "2026-06-10T18:44:12.525704Z"
                        },
                        "id": "0a580a2a-001b-ca3c-0e50-000000000092",
                        "name": "Run tools/test-setup.sh"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 0,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "2",
    "phase": "pre",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:44:40.497412Z",
                    "start": "2026-06-10T18:44:13.840511Z"
                },
                "id": "0a580a2a-001b-3b30-1047-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "assert",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:13.886568Z",
                            "start": "2026-06-10T18:44:13.851723Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000008",
                        "name": "Validate python_version value"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:13.925102Z",
                            "start": "2026-06-10T18:44:13.890374Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000000a",
                        "name": "Install specified version of python interpreter and development files (DEB)"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:13.953765Z",
                            "start": "2026-06-10T18:44:13.928564Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000000b",
                        "name": "Pull in venv package"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:13.990199Z",
                            "start": "2026-06-10T18:44:13.963748Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000000d",
                        "name": "Set default RPM package name"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:14.034209Z",
                            "start": "2026-06-10T18:44:13.997479Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000000e",
                        "name": "Set RPM package name for CentOS/RHEL 9/10"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:14.078780Z",
                            "start": "2026-06-10T18:44:14.041281Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000000f",
                        "name": "Install RPM package"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_use_pyenv",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:14.113271Z",
                            "start": "2026-06-10T18:44:14.087142Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000011",
                        "name": "Install python using pyenv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:14.156557Z",
                            "start": "2026-06-10T18:44:14.120802Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000012",
                        "name": "Activate python using stow"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:14.192377Z",
                            "start": "2026-06-10T18:44:14.170379Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000016",
                        "name": "Install pip"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                            "delta": "0:00:00.195979",
                            "end": "2026-06-10 18:44:19.421721",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-3b30-1047-000000000081-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:44:19.225742",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/pip3\nusage: __main__.py [-h]\n                   {unpack,install,install-scripts,convert,version,help} ...\n\npositional arguments:\n  {unpack,install,install-scripts,convert,version,help}\n                        commands\n    unpack              Unpack wheel\n    install             Install wheels\n    install-scripts     Install console_scripts\n    convert             Convert egg or wininst to wheel\n    version             Print version and exit\n    help                Show this help\n\noptional arguments:\n  -h, --help            show this help message and exit",
                            "stdout_lines": [
                                "/usr/bin/pip3",
                                "usage: __main__.py [-h]",
                                "                   {unpack,install,install-scripts,convert,version,help} ...",
                                "",
                                "positional arguments:",
                                "  {unpack,install,install-scripts,convert,version,help}",
                                "                        commands",
                                "    unpack              Unpack wheel",
                                "    install             Install wheels",
                                "    install-scripts     Install console_scripts",
                                "    convert             Convert egg or wininst to wheel",
                                "    version             Print version and exit",
                                "    help                Show this help",
                                "",
                                "optional arguments:",
                                "  -h, --help            show this help message and exit"
                            ],
                            "zuul_log_id": "0a580a2a-001b-3b30-1047-000000000081-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.505384Z",
                            "start": "2026-06-10T18:44:14.245095Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000081",
                        "name": "Check if pip is installed"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_distro_os",
                                    "changed": false,
                                    "false_condition": "pip_preinstalled.rc != 0",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_distro_os": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/RedHat.yaml"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.555120Z",
                            "start": "2026-06-10T18:44:20.513503Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000082",
                        "name": "Install pip from packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_python.version.major == 2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.591054Z",
                            "start": "2026-06-10T18:44:20.564301Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000087",
                        "name": "Ensure setuptools"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == 'Debian'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.914024Z",
                            "start": "2026-06-10T18:44:20.630725Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000088",
                        "name": "Check for ensurepip module"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_os_family == 'Debian'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.951347Z",
                            "start": "2026-06-10T18:44:20.923544Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000089",
                        "name": "Ensure python3-venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ensure_pip_from_upstream",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:20.986774Z",
                            "start": "2026-06-10T18:44:20.959880Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000008a",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.008980",
                            "end": "2026-06-10 18:44:26.018497",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v python3\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-3b30-1047-00000000008b-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:44:26.009517",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0a580a2a-001b-3b30-1047-00000000008b-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:27.126416Z",
                            "start": "2026-06-10T18:44:21.024815Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000008b",
                        "name": "Probe for venv python full path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "_host_virtualenv": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:27.208542Z",
                            "start": "2026-06-10T18:44:27.132952Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000008c",
                        "name": "Set host default"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_pip_virtualenv_command": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:27.280674Z",
                            "start": "2026-06-10T18:44:27.214868Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000008d",
                        "name": "Set ensure_pip_virtualenv_command"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v tox /root/.local/tox/bin/tox || exit 1\n",
                            "delta": "0:00:00.008266",
                            "end": "2026-06-10 18:44:32.195670",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v tox /root/.local/tox/bin/tox || exit 1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-3b30-1047-000000000017-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:44:32.187404",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/.local/bin/tox",
                            "stdout_lines": [
                                "/workspace/.local/bin/tox"
                            ],
                            "zuul_log_id": "0a580a2a-001b-3b30-1047-000000000017-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:33.192319Z",
                            "start": "2026-06-10T18:44:27.320019Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000017",
                        "name": "Check if tox is installed"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "tox_executable": "/workspace/.local/bin/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:33.255119Z",
                            "start": "2026-06-10T18:44:33.199792Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-000000000018",
                        "name": "Export preinstalled tox_exectuable"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:33.522038Z",
                            "start": "2026-06-10T18:44:33.289966Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000001a",
                        "name": "Create local venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:33.981286Z",
                            "start": "2026-06-10T18:44:33.595291Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000001b",
                        "name": "Install tox to local venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:34.016639Z",
                            "start": "2026-06-10T18:44:33.990046Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000001c",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.437162",
                            "end": "2026-06-10 18:44:39.398993",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-3b30-1047-00000000001e-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:44:38.961831",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0a580a2a-001b-3b30-1047-00000000001e-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:40.463504Z",
                            "start": "2026-06-10T18:44:34.053843Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000001e",
                        "name": "Output tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "ensure_global_symlinks",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-3b30-1047-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:40.497412Z",
                            "start": "2026-06-10T18:44:40.469843Z"
                        },
                        "id": "0a580a2a-001b-3b30-1047-00000000001f",
                        "name": "Make global symlink"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 4,
            "failures": 0,
            "ignored": 0,
            "ok": 7,
            "rescued": 0,
            "skipped": 17,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "3",
    "phase": "pre",
    "playbook": "gitlab.com/softwarefactory-project/centosinfra-prod/dci-config/playbooks/python/pre-run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:49:11.168282Z",
                    "start": "2026-06-10T18:44:41.326840Z"
                },
                "id": "0a580a2a-001b-15d3-7936-000000000002",
                "name": "testrunner"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "ansible.builtin.command",
                            "changed": false,
                            "cmd": [
                                "readlink",
                                "-f",
                                "src/github.com/distributedci/dci-analytics"
                            ],
                            "delta": "0:00:00.010385",
                            "end": "2026-06-10 18:44:46.369504",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "readlink -f src/github.com/distributedci/dci-analytics",
                                    "_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": "0a580a2a-001b-15d3-7936-000000000004-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:44:46.359119",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/src/github.com/distributedci/dci-analytics",
                            "stdout_lines": [
                                "/workspace/src/github.com/distributedci/dci-analytics"
                            ],
                            "zuul_log_id": "0a580a2a-001b-15d3-7936-000000000004-1-testrunner"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:47.472536Z",
                            "start": "2026-06-10T18:44:41.349144Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000004",
                        "name": "Get full path of current project's src dir"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_basedir": "/workspace"
                            },
                            "changed": false
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:44:47.557324Z",
                            "start": "2026-06-10T18:44:47.479829Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000005",
                        "name": "Set fact for zuul_basedir"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "allow_downgrade": false,
                                    "allowerasing": false,
                                    "autoremove": false,
                                    "bugfix": false,
                                    "cacheonly": false,
                                    "conf_file": null,
                                    "disable_excludes": null,
                                    "disable_gpg_check": false,
                                    "disable_plugin": [],
                                    "disablerepo": [],
                                    "download_dir": null,
                                    "download_only": false,
                                    "enable_plugin": [],
                                    "enablerepo": [],
                                    "exclude": [],
                                    "install_repoquery": true,
                                    "install_weak_deps": true,
                                    "installroot": "/",
                                    "list": null,
                                    "lock_timeout": 30,
                                    "name": [
                                        "gcc",
                                        "git",
                                        "libpq-devel",
                                        "python3",
                                        "python3-devel",
                                        "python3-pip",
                                        "python3.12",
                                        "python3.12-devel",
                                        "python3.12-pip",
                                        "postgresql-server",
                                        "postgresql-devel"
                                    ],
                                    "nobest": false,
                                    "releasever": null,
                                    "security": false,
                                    "skip_broken": false,
                                    "sslverify": true,
                                    "state": "latest",
                                    "update_cache": false,
                                    "update_only": false,
                                    "use_backend": "auto",
                                    "validate_certs": true
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results": [
                                "Installed: gcc-8.5.0-28.el8_10.x86_64",
                                "Installed: gcc-c++-8.5.0-28.el8_10.x86_64",
                                "Installed: gcc-plugin-annobin-8.5.0-28.el8_10.x86_64",
                                "Installed: git-2.43.7-1.el8_10.x86_64",
                                "Installed: git-core-2.43.7-1.el8_10.x86_64",
                                "Installed: git-core-doc-2.43.7-1.el8_10.noarch",
                                "Installed: cpp-8.5.0-28.el8_10.x86_64",
                                "Installed: python3.12-setuptools-68.2.2-5.el8_10.noarch",
                                "Installed: mpdecimal-2.5.1-3.el8.x86_64",
                                "Installed: python3.12-pip-wheel-23.2.1-4.el8.noarch",
                                "Installed: libpq-13.23-1.el8_10.x86_64",
                                "Installed: python3.12-pip-23.2.1-4.el8.noarch",
                                "Installed: libpq-devel-13.23-1.el8_10.x86_64",
                                "Installed: python3.12-3.12.13-2.el8_10.x86_64",
                                "Installed: postgresql-10.23-4.module+el8.9.0+21317+d2c6bf8a.x86_64",
                                "Installed: python3.12-devel-3.12.13-2.el8_10.x86_64",
                                "Installed: python3.12-libs-3.12.13-2.el8_10.x86_64",
                                "Installed: libstdc++-devel-8.5.0-28.el8_10.x86_64",
                                "Installed: libgcc-8.5.0-28.el8_10.x86_64",
                                "Installed: libgomp-8.5.0-28.el8_10.x86_64",
                                "Installed: postgresql-server-10.23-4.module+el8.9.0+21317+d2c6bf8a.x86_64",
                                "Installed: libstdc++-8.5.0-28.el8_10.x86_64",
                                "Installed: perl-Git-2.43.7-1.el8_10.noarch",
                                "Removed: git-core-2.43.5-1.el8_10.x86_64",
                                "Removed: git-core-doc-2.43.5-1.el8_10.noarch",
                                "Removed: libstdc++-devel-8.5.0-22.el8_10.x86_64",
                                "Removed: libgomp-8.5.0-22.el8_10.x86_64",
                                "Removed: cpp-8.5.0-22.el8_10.x86_64",
                                "Removed: perl-Git-2.43.5-1.el8_10.noarch",
                                "Removed: libgcc-8.5.0-22.el8_10.x86_64",
                                "Removed: gcc-8.5.0-22.el8_10.x86_64",
                                "Removed: gcc-c++-8.5.0-22.el8_10.x86_64",
                                "Removed: gcc-plugin-annobin-8.5.0-22.el8_10.x86_64",
                                "Removed: libstdc++-8.5.0-22.el8_10.x86_64",
                                "Removed: git-2.43.5-1.el8_10.x86_64"
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:11.754694Z",
                            "start": "2026-06-10T18:44:47.568281Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000006",
                        "name": "Install required packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-tox"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:11.785461Z",
                            "start": "2026-06-10T18:46:11.761167Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000007",
                        "name": "Install tox"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:11.838603Z",
                            "start": "2026-06-10T18:46:11.818327Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000045",
                        "name": "Install pip"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                            "delta": "0:00:00.125216",
                            "end": "2026-06-10 18:46:16.794368",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-15d3-7936-00000000009a-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:46:16.669152",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/pip3\nusage: __main__.py [-h]\n                   {unpack,install,install-scripts,convert,version,help} ...\n\npositional arguments:\n  {unpack,install,install-scripts,convert,version,help}\n                        commands\n    unpack              Unpack wheel\n    install             Install wheels\n    install-scripts     Install console_scripts\n    convert             Convert egg or wininst to wheel\n    version             Print version and exit\n    help                Show this help\n\noptional arguments:\n  -h, --help            show this help message and exit",
                            "stdout_lines": [
                                "/usr/bin/pip3",
                                "usage: __main__.py [-h]",
                                "                   {unpack,install,install-scripts,convert,version,help} ...",
                                "",
                                "positional arguments:",
                                "  {unpack,install,install-scripts,convert,version,help}",
                                "                        commands",
                                "    unpack              Unpack wheel",
                                "    install             Install wheels",
                                "    install-scripts     Install console_scripts",
                                "    convert             Convert egg or wininst to wheel",
                                "    version             Print version and exit",
                                "    help                Show this help",
                                "",
                                "optional arguments:",
                                "  -h, --help            show this help message and exit"
                            ],
                            "zuul_log_id": "0a580a2a-001b-15d3-7936-00000000009a-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:17.822181Z",
                            "start": "2026-06-10T18:46:11.883618Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000009a",
                        "name": "Check if pip is installed"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_distro_os",
                                    "changed": false,
                                    "false_condition": "pip_preinstalled.rc != 0",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_distro_os": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/RedHat.yaml"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:17.866170Z",
                            "start": "2026-06-10T18:46:17.828775Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000009b",
                        "name": "Install pip from packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_python.version.major == 2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:17.900991Z",
                            "start": "2026-06-10T18:46:17.874032Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a0",
                        "name": "Ensure setuptools"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == 'Debian'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:18.214773Z",
                            "start": "2026-06-10T18:46:17.937554Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a1",
                        "name": "Check for ensurepip module"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_os_family == 'Debian'",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:18.246275Z",
                            "start": "2026-06-10T18:46:18.220783Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a2",
                        "name": "Ensure python3-venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ensure_pip_from_upstream",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:18.277571Z",
                            "start": "2026-06-10T18:46:18.252237Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a3",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.006614",
                            "end": "2026-06-10 18:46:23.021006",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v python3\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-15d3-7936-0000000000a4-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:46:23.014392",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0a580a2a-001b-15d3-7936-0000000000a4-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:24.030962Z",
                            "start": "2026-06-10T18:46:18.303123Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a4",
                        "name": "Probe for venv python full path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "_host_virtualenv": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:24.110931Z",
                            "start": "2026-06-10T18:46:24.033824Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a5",
                        "name": "Set host default"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_pip_virtualenv_command": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:24.171885Z",
                            "start": "2026-06-10T18:46:24.113743Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-0000000000a6",
                        "name": "Set ensure_pip_virtualenv_command"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v /workspace/.local/bin/tox /root/.local/tox/bin/tox || exit 1\n",
                            "delta": "0:00:00.007618",
                            "end": "2026-06-10 18:46:28.926457",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v /workspace/.local/bin/tox /root/.local/tox/bin/tox || exit 1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-15d3-7936-000000000046-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:46:28.918839",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/.local/bin/tox",
                            "stdout_lines": [
                                "/workspace/.local/bin/tox"
                            ],
                            "zuul_log_id": "0a580a2a-001b-15d3-7936-000000000046-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:29.957907Z",
                            "start": "2026-06-10T18:46:24.190169Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000046",
                        "name": "Check if tox is installed"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "tox_executable": "/workspace/.local/bin/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:30.020133Z",
                            "start": "2026-06-10T18:46:29.964701Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000047",
                        "name": "Export preinstalled tox_exectuable"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:30.348527Z",
                            "start": "2026-06-10T18:46:30.087476Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000049",
                        "name": "Create local venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:30.779149Z",
                            "start": "2026-06-10T18:46:30.385805Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000004a",
                        "name": "Install tox to local venv"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:30.818726Z",
                            "start": "2026-06-10T18:46:30.790863Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000004b",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.220523",
                            "end": "2026-06-10 18:46:35.910549",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-15d3-7936-00000000004d-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:46:35.690026",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0a580a2a-001b-15d3-7936-00000000004d-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:36.931683Z",
                            "start": "2026-06-10T18:46:30.848848Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000004d",
                        "name": "Output tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "ensure_global_symlinks",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-15d3-7936-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:46:36.960010Z",
                            "start": "2026-06-10T18:46:36.934671Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000004e",
                        "name": "Make global symlink"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/dci-analytics",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "3c65d3966253e13fce7022a7bd687ce872354cac",
                                        "name": "distributedci/dci-analytics",
                                        "required": false,
                                        "short_name": "dci-analytics",
                                        "src_dir": "src/github.com/distributedci/dci-analytics"
                                    },
                                    "stat": {
                                        "atime": 1781116997.0656776,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "1ba35064fed1c698840bf8f23af34af1e42d32e1",
                                        "ctime": 1781116997.0656776,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 93367345,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116972.0440536,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 21,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/dci-control-server",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "4ba1a779be565de9a6f47d616151c8b0bd23f864",
                                        "name": "distributedci/dci-control-server",
                                        "required": true,
                                        "short_name": "dci-control-server",
                                        "src_dir": "src/github.com/distributedci/dci-control-server"
                                    },
                                    "stat": {
                                        "atime": 1781116997.1256795,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "f270aee2e10540b70349cbabd822a21c2fb555d0",
                                        "ctime": 1781116997.1256795,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 186477839,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116972.845075,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 71,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/python-dciclient",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "c9b527d6c9d54be7760427c87d32f025cfb9f570",
                                        "name": "distributedci/python-dciclient",
                                        "required": true,
                                        "short_name": "python-dciclient",
                                        "src_dir": "src/github.com/distributedci/python-dciclient"
                                    },
                                    "stat": {
                                        "atime": 1781116997.4146883,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "ad3395704c4007032ce26a4301b15abf23543967",
                                        "ctime": 1781116997.4146883,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 194080353,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116973.0420802,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 52,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config/test-requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "gitlab.com",
                                        "canonical_name": "gitlab.com/softwarefactory-project/centosinfra-prod/dci-config",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "401c077f4f321288dc08f65b2bd861fbd6a8e7ea",
                                        "name": "softwarefactory-project/centosinfra-prod/dci-config",
                                        "required": true,
                                        "short_name": "dci-config",
                                        "src_dir": "src/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config"
                                    },
                                    "stat": {
                                        "exists": false
                                    }
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:00.518563Z",
                            "start": "2026-06-10T18:46:36.966572Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000008",
                        "name": "Gather existing test-requirements.txt files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "existing_requirements_files": [
                                    "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                    "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                    "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:00.603056Z",
                            "start": "2026-06-10T18:47:00.523355Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000009",
                        "name": "Initialize existing_requirements_files with existing test-requirements.txt"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/dci-analytics",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "3c65d3966253e13fce7022a7bd687ce872354cac",
                                        "name": "distributedci/dci-analytics",
                                        "required": false,
                                        "short_name": "dci-analytics",
                                        "src_dir": "src/github.com/distributedci/dci-analytics"
                                    },
                                    "stat": {
                                        "atime": 1781116997.0646777,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "49a08f2f93b1c489179099a7888b1d079c406371",
                                        "ctime": 1781116997.0646777,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 93367342,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116972.0440536,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 200,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/dci-control-server",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "4ba1a779be565de9a6f47d616151c8b0bd23f864",
                                        "name": "distributedci/dci-control-server",
                                        "required": true,
                                        "short_name": "dci-control-server",
                                        "src_dir": "src/github.com/distributedci/dci-control-server"
                                    },
                                    "stat": {
                                        "atime": 1781116997.1256795,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "7ae231b431e065d5589545f62e3c391d2acc3172",
                                        "ctime": 1781116997.1256795,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 186477837,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116972.844075,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 231,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "github.com",
                                        "canonical_name": "github.com/distributedci/python-dciclient",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "c9b527d6c9d54be7760427c87d32f025cfb9f570",
                                        "name": "distributedci/python-dciclient",
                                        "required": true,
                                        "short_name": "python-dciclient",
                                        "src_dir": "src/github.com/distributedci/python-dciclient"
                                    },
                                    "stat": {
                                        "atime": 1781116997.4136882,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "bee3e7afb93f992ab773081a0f927bd150f7be2a",
                                        "ctime": 1781116997.4136882,
                                        "dev": 52,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 194080350,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781116973.0410802,
                                        "nlink": 1,
                                        "path": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                        "pw_name": "root",
                                        "readable": true,
                                        "rgrp": true,
                                        "roth": true,
                                        "rusr": true,
                                        "size": 29,
                                        "uid": 0,
                                        "version": null,
                                        "wgrp": false,
                                        "woth": false,
                                        "writeable": true,
                                        "wusr": true,
                                        "xgrp": false,
                                        "xoth": false,
                                        "xusr": false
                                    }
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "checksum_algorithm": "sha1",
                                            "follow": false,
                                            "get_attributes": true,
                                            "get_checksum": true,
                                            "get_mime": true,
                                            "path": "/workspace/src/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config/requirements.txt"
                                        }
                                    },
                                    "item": {
                                        "canonical_hostname": "gitlab.com",
                                        "canonical_name": "gitlab.com/softwarefactory-project/centosinfra-prod/dci-config",
                                        "checkout": "main",
                                        "checkout_description": "zuul branch",
                                        "commit": "401c077f4f321288dc08f65b2bd861fbd6a8e7ea",
                                        "name": "softwarefactory-project/centosinfra-prod/dci-config",
                                        "required": true,
                                        "short_name": "dci-config",
                                        "src_dir": "src/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config"
                                    },
                                    "stat": {
                                        "exists": false
                                    }
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:23.868552Z",
                            "start": "2026-06-10T18:47:00.606948Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000a",
                        "name": "Gather existing requirements.txt files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "existing_requirements_files": [
                                    "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                    "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                    "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                    "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                    "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                    "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:23.930607Z",
                            "start": "2026-06-10T18:47:23.875539Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000b",
                        "name": "Append existing requirements.txt to existing_requirements_files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "debug",
                            "changed": false,
                            "existing_requirements_files": [
                                "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:23.981262Z",
                            "start": "2026-06-10T18:47:23.937031Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000c",
                        "name": "Debug all existing requirements files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "replace",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                    "msg": "1 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                    "msg": "1 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                            "regexp": "^.*dci-control-server.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/dci-control-server",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:47:59.382609Z",
                            "start": "2026-06-10T18:47:23.988160Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000d",
                        "name": "Replace dci-control-server link in all existing requirements files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "replace",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                    "msg": "1 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": true,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                    "msg": "1 replacements made",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "after": null,
                                            "attributes": null,
                                            "backup": false,
                                            "before": null,
                                            "encoding": "utf-8",
                                            "group": null,
                                            "mode": null,
                                            "owner": null,
                                            "path": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                            "regexp": "^.*dciclient.*$",
                                            "replace": "-e /workspace/src/github.com/distributedci/python-dciclient",
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "unsafe_writes": false,
                                            "validate": null
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                    "msg": "",
                                    "rc": 0
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:48:33.993663Z",
                            "start": "2026-06-10T18:47:59.388832Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000e",
                        "name": "Replace dciclient link in all existing requirements files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "slurp",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "dG94Cm1vY2sKcHl0ZXN0CmJsYWNr",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "bW9jawpweXRlc3QKLWUgL3dvcmtzcGFjZS9zcmMvZ2l0aHViLmNvbS9kaXN0cmlidXRlZGNpL3B5dGhvbi1kY2ljbGllbnQKZmxha2U4CnRveApyZXNwb25zZXMKaW1wb3J0bGliLW1ldGFkYXRhCmZyZWV6ZWd1bg==",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "cHl0ZXN0Ci1lIC93b3Jrc3BhY2Uvc3JjL2dpdGh1Yi5jb20vZGlzdHJpYnV0ZWRjaS9kY2ktY29udHJvbC1zZXJ2ZXIKbW9jawpib3RvMwpyZXNwb25zZXM=",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "LWUgL3dvcmtzcGFjZS9zcmMvZ2l0aHViLmNvbS9kaXN0cmlidXRlZGNpL3B5dGhvbi1kY2ljbGllbnQKZmxhc2sKamluamEyCml0c2Rhbmdlcm91cwp3ZXJremV1Zwprb21idQpseG1sCnJlcXVlc3RzCm51bXB5CnBhbmRhcwpndW5pY29ybgpwc3ljb3BnW2JpbmFyeSxwb29sXQpTUUxBbGNoZW15ClNRTEFsY2hlbXktVXRpbHMKdXJsbGliMwotZSAvd29ya3NwYWNlL3NyYy9naXRodWIuY29tL2Rpc3RyaWJ1dGVkY2kvZGNpLWNvbnRyb2wtc2VydmVyCg==",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "cHlqd3QKY3J5cHRvZ3JhcGh5CnB5cGFyc2luZwpweXR6CnBzeWNvcGdbYmluYXJ5LHBvb2xdCnB5T3BlblNTTApqc29uc2NoZW1hClNRTEFsY2hlbXkKYWxlbWJpYwpzaXgKcmVxdWVzdHMKZ3VuaWNvcm5bZ2V2ZW50XQpmbGFzawpqaW5qYTIKbWFya3Vwc2FmZQppdHNkYW5nZXJvdXMKd2Vya3pldWcKU1FMQWxjaGVteS1VdGlscwpwYXNzbGliCmtvbWJ1CmJvdG8zCnJlZGlzCmRjaWF1dGgKdGVuYWNpdHkK",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "content": "UHJldHR5VGFibGUKcmVxdWVzdHMKZGNpYXV0aAo=",
                                    "encoding": "base64",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "src": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                        }
                                    },
                                    "item": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                    "source": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:11.031874Z",
                            "start": "2026-06-10T18:48:34.000464Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-00000000000f",
                        "name": "Read and display all requirements files from remote host"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "dG94Cm1vY2sKcHl0ZXN0CmJsYWNr",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt:\ntox\nmock\npytest\nblack\n"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "bW9jawpweXRlc3QKLWUgL3dvcmtzcGFjZS9zcmMvZ2l0aHViLmNvbS9kaXN0cmlidXRlZGNpL3B5dGhvbi1kY2ljbGllbnQKZmxha2U4CnRveApyZXNwb25zZXMKaW1wb3J0bGliLW1ldGFkYXRhCmZyZWV6ZWd1bg==",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/dci-control-server/test-requirements.txt:\nmock\npytest\n-e /workspace/src/github.com/distributedci/python-dciclient\nflake8\ntox\nresponses\nimportlib-metadata\nfreezegun\n"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "cHl0ZXN0Ci1lIC93b3Jrc3BhY2Uvc3JjL2dpdGh1Yi5jb20vZGlzdHJpYnV0ZWRjaS9kY2ktY29udHJvbC1zZXJ2ZXIKbW9jawpib3RvMwpyZXNwb25zZXM=",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/python-dciclient/test-requirements.txt:\npytest\n-e /workspace/src/github.com/distributedci/dci-control-server\nmock\nboto3\nresponses\n"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "LWUgL3dvcmtzcGFjZS9zcmMvZ2l0aHViLmNvbS9kaXN0cmlidXRlZGNpL3B5dGhvbi1kY2ljbGllbnQKZmxhc2sKamluamEyCml0c2Rhbmdlcm91cwp3ZXJremV1Zwprb21idQpseG1sCnJlcXVlc3RzCm51bXB5CnBhbmRhcwpndW5pY29ybgpwc3ljb3BnW2JpbmFyeSxwb29sXQpTUUxBbGNoZW15ClNRTEFsY2hlbXktVXRpbHMKdXJsbGliMwotZSAvd29ya3NwYWNlL3NyYy9naXRodWIuY29tL2Rpc3RyaWJ1dGVkY2kvZGNpLWNvbnRyb2wtc2VydmVyCg==",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/dci-analytics/requirements.txt:\n-e /workspace/src/github.com/distributedci/python-dciclient\nflask\njinja2\nitsdangerous\nwerkzeug\nkombu\nlxml\nrequests\nnumpy\npandas\ngunicorn\npsycopg[binary,pool]\nSQLAlchemy\nSQLAlchemy-Utils\nurllib3\n-e /workspace/src/github.com/distributedci/dci-control-server\n"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "cHlqd3QKY3J5cHRvZ3JhcGh5CnB5cGFyc2luZwpweXR6CnBzeWNvcGdbYmluYXJ5LHBvb2xdCnB5T3BlblNTTApqc29uc2NoZW1hClNRTEFsY2hlbXkKYWxlbWJpYwpzaXgKcmVxdWVzdHMKZ3VuaWNvcm5bZ2V2ZW50XQpmbGFzawpqaW5qYTIKbWFya3Vwc2FmZQppdHNkYW5nZXJvdXMKd2Vya3pldWcKU1FMQWxjaGVteS1VdGlscwpwYXNzbGliCmtvbWJ1CmJvdG8zCnJlZGlzCmRjaWF1dGgKdGVuYWNpdHkK",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/dci-control-server/requirements.txt:\npyjwt\ncryptography\npyparsing\npytz\npsycopg[binary,pool]\npyOpenSSL\njsonschema\nSQLAlchemy\nalembic\nsix\nrequests\ngunicorn[gevent]\nflask\njinja2\nmarkupsafe\nitsdangerous\nwerkzeug\nSQLAlchemy-Utils\npasslib\nkombu\nboto3\nredis\ndciauth\ntenacity\n"
                                },
                                {
                                    "ansible_loop_var": "item",
                                    "changed": false,
                                    "failed": false,
                                    "item": {
                                        "ansible_loop_var": "item",
                                        "changed": false,
                                        "content": "UHJldHR5VGFibGUKcmVxdWVzdHMKZGNpYXV0aAo=",
                                        "encoding": "base64",
                                        "failed": false,
                                        "invocation": {
                                            "module_args": {
                                                "src": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                            }
                                        },
                                        "item": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt",
                                        "source": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt"
                                    },
                                    "msg": "/workspace/src/github.com/distributedci/python-dciclient/requirements.txt:\nPrettyTable\nrequests\ndciauth\n"
                                }
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:11.168282Z",
                            "start": "2026-06-10T18:49:11.038153Z"
                        },
                        "id": "0a580a2a-001b-15d3-7936-000000000010",
                        "name": "Show contents of requirements files"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 7,
            "failures": 0,
            "ignored": 0,
            "ok": 19,
            "rescued": 0,
            "skipped": 9,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "master",
    "index": "0",
    "phase": "run",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:51:01.442612Z",
                    "start": "2026-06-10T18:49:11.967646Z"
                },
                "id": "0a580a2a-001b-8924-4c25-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "sudo",
                                "-n",
                                "true"
                            ],
                            "delta": "0:00:00.035998",
                            "end": "2026-06-10 18:49:17.152040",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "sudo -n true",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000008-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:49:17.116042",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000008-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:18.196107Z",
                            "start": "2026-06-10T18:49:11.990717Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000008",
                        "name": "Check if zuul is sudoer"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "rm",
                                "-rf",
                                "/etc/sudoers.d/zuul",
                                "/etc/sudoers.d/90-cloud-init-users"
                            ],
                            "delta": "0:00:00.008852",
                            "end": "2026-06-10 18:49:23.035836",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "rm -rf /etc/sudoers.d/zuul /etc/sudoers.d/90-cloud-init-users",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000009-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:49:23.026984",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000009-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:24.071808Z",
                            "start": "2026-06-10T18:49:18.233803Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000009",
                        "name": "Remove sudo access for zuul user."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "! sudo -n true",
                            "delta": "0:00:00.027535",
                            "end": "2026-06-10 18:49:28.992456",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "! sudo -n true",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-8924-4c25-00000000000a-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:49:28.964921",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "root is not in the sudoers file.  This incident will be reported.",
                            "stdout_lines": [
                                "root is not in the sudoers file.  This incident will be reported."
                            ],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-00000000000a-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:30.052857Z",
                            "start": "2026-06-10T18:49:24.104791Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-00000000000a",
                        "name": "Prove that general sudo access is actually revoked."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:30.097780Z",
                            "start": "2026-06-10T18:49:30.060726Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-00000000000e",
                        "name": "Check to see if the constraints file exists"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "fail",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined and not stat_results.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:30.144414Z",
                            "start": "2026-06-10T18:49:30.106599Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-00000000000f",
                        "name": "Fail if constraints file is missing"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:30.191873Z",
                            "start": "2026-06-10T18:49:30.153549Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000010",
                        "name": "Record file location"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "siblings.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:49:30.228291Z",
                            "start": "2026-06-10T18:49:30.196884Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000011",
                        "name": "Install tox siblings"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--notest",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:00:38.282400",
                            "end": "2026-06-10 18:50:13.324135",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox  --notest  -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/distributedci/dci-analytics",
                                    "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": "0a580a2a-001b-8924-4c25-000000000053-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:49:35.041735",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1113)\nusing tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1113)\nskipping sdist step\npython3.12 (/usr/bin/python3.12) is {'executable': '/usr/bin/python3.12', 'implementation': 'CPython', 'version_info': [3, 12, 13, 'final', 0], 'version': '3.12.13 (main, Apr 16 2026, 22:51:04) [GCC 8.5.0 20210514 (Red Hat 8.5.0-28)]', 'is_64': True, 'sysplatform': 'linux', 'os_sep': '/', 'extra_version_info': None}\nlint uses /usr/bin/python3.12\nlint start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint\nlint cannot reuse: no previous config /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/.tox-config1\nlint create: /workspace/src/github.com/distributedci/dci-analytics/.tox/lint\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1120] /workspace/src/github.com/distributedci/dci-analytics/.tox$ /usr/bin/python3.6 -m virtualenv --download --python /usr/bin/python3.12 lint\ncreated virtual environment CPython3.12.13.final.0-64 in 2532ms\n  creator CPython3Posix(dest=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint, clear=False, no_vcs_ignore=False, global=False)\n  seeder FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/workspace/.local/share/virtualenv)\n    added seed packages: pip==26.1.2, setuptools==82.0.1, wheel==0.47.0\n  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator\nlint installdeps: flake8, flake8-colors, black\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1146] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip install -U flake8 flake8-colors black\nCollecting flake8\n  Downloading flake8-7.3.0-py2.py3-none-any.whl.metadata (3.8 kB)\nCollecting flake8-colors\n  Downloading flake8_colors-0.1.9-py3-none-any.whl.metadata (1.6 kB)\nCollecting black\n  Downloading black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (95 kB)\nCollecting mccabe<0.8.0,>=0.7.0 (from flake8)\n  Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)\nCollecting pycodestyle<2.15.0,>=2.14.0 (from flake8)\n  Downloading pycodestyle-2.14.0-py2.py3-none-any.whl.metadata (4.5 kB)\nCollecting pyflakes<3.5.0,>=3.4.0 (from flake8)\n  Downloading pyflakes-3.4.0-py2.py3-none-any.whl.metadata (3.5 kB)\nCollecting click>=8.0.0 (from black)\n  Downloading click-8.4.1-py3-none-any.whl.metadata (2.6 kB)\nCollecting mypy-extensions>=0.4.3 (from black)\n  Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)\nCollecting packaging>=22.0 (from black)\n  Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting pathspec>=1.0.0 (from black)\n  Downloading pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)\nCollecting platformdirs>=2 (from black)\n  Downloading platformdirs-4.10.0-py3-none-any.whl.metadata (5.5 kB)\nCollecting pytokens~=0.4.0 (from black)\n  Downloading pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)\nDownloading flake8-7.3.0-py2.py3-none-any.whl (57 kB)\nDownloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)\nDownloading pycodestyle-2.14.0-py2.py3-none-any.whl (31 kB)\nDownloading pyflakes-3.4.0-py2.py3-none-any.whl (63 kB)\nDownloading flake8_colors-0.1.9-py3-none-any.whl (4.0 kB)\nDownloading black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.9/1.9 MB 103.1 MB/s  0:00:00\nDownloading pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB)\nDownloading click-8.4.1-py3-none-any.whl (116 kB)\nDownloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)\nDownloading packaging-26.2-py3-none-any.whl (100 kB)\nDownloading pathspec-1.1.1-py3-none-any.whl (57 kB)\nDownloading platformdirs-4.10.0-py3-none-any.whl (22 kB)\nInstalling collected packages: pytokens, pyflakes, pycodestyle, platformdirs, pathspec, packaging, mypy-extensions, mccabe, click, flake8, black, flake8-colors\n\nSuccessfully installed black-26.5.1 click-8.4.1 flake8-7.3.0 flake8-colors-0.1.9 mccabe-0.7.0 mypy-extensions-1.1.0 packaging-26.2 pathspec-1.1.1 platformdirs-4.10.0 pycodestyle-2.14.0 pyflakes-3.4.0 pytokens-0.4.1\nlint finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint after 5.03 seconds\nlint start: finishvenv \nwrite config to /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/.tox-config1 as '3b216f65bfc5462e9f61982facead6997167d30ef7d810c700b7d5c70c61e33f /usr/bin/python3.12\\n3.28.0 0 1 0\\n00000000000000000000000000000000 flake8\\n00000000000000000000000000000000 flake8-colors\\n00000000000000000000000000000000 black'\nlint finish: finishvenv  after 0.00 seconds\nlint start: envreport \nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1152] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip freeze >.tox/lint/log/lint-0.log\nlint finish: envreport  after 0.26 seconds\nlint installed: black==26.5.1,click==8.4.1,flake8==7.3.0,flake8-colors==0.1.9,mccabe==0.7.0,mypy_extensions==1.1.0,packaging==26.2,pathspec==1.1.1,platformdirs==4.10.0,pycodestyle==2.14.0,pyflakes==3.4.0,pytokens==0.4.1,setuptools==82.0.1,wheel==0.47.0\nunit uses /usr/bin/python3.12\nunit start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit\nunit cannot reuse: no previous config /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/.tox-config1\nunit create: /workspace/src/github.com/distributedci/dci-analytics/.tox/unit\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1153] /workspace/src/github.com/distributedci/dci-analytics/.tox$ /usr/bin/python3.6 -m virtualenv --download --python /usr/bin/python3.12 unit\nwheel-0.47.0-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/wheel.json\npip-26.1.2-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/pip.json\nsetuptools-82.0.1-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/setuptools.json\ncreated virtual environment CPython3.12.13.final.0-64 in 1982ms\n  creator CPython3Posix(dest=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit, clear=False, no_vcs_ignore=False, global=False)\n  seeder FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/workspace/.local/share/virtualenv)\n    added seed packages: pip==26.1.2, setuptools==82.0.1, wheel==0.47.0\n  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator\nunit installdeps: -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt, -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1178] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip install -U -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt\nObtaining file:///workspace/src/github.com/distributedci/python-dciclient (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Checking if build backend supports build_editable: started\n  Checking if build backend supports build_editable: finished with status 'done'\n  Getting requirements to build editable: started\n  Getting requirements to build editable: finished with status 'done'\n  Preparing editable metadata (pyproject.toml): started\n  Preparing editable metadata (pyproject.toml): finished with status 'done'\nObtaining file:///workspace/src/github.com/distributedci/dci-control-server (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Checking if build backend supports build_editable: started\n  Checking if build backend supports build_editable: finished with status 'done'\n  Getting requirements to build editable: started\n  Getting requirements to build editable: finished with status 'done'\n  Preparing editable metadata (pyproject.toml): started\n  Preparing editable metadata (pyproject.toml): finished with status 'done'\nCollecting flask (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))\n  Downloading flask-3.1.3-py3-none-any.whl.metadata (3.2 kB)\nCollecting jinja2 (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 3))\n  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\nCollecting itsdangerous (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 4))\n  Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)\nCollecting werkzeug (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 5))\n  Downloading werkzeug-3.1.8-py3-none-any.whl.metadata (4.0 kB)\nCollecting kombu (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))\n  Downloading kombu-5.6.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting lxml (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 7))\n  Downloading lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.5 kB)\nCollecting requests (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))\n  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)\nCollecting numpy (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 9))\n  Downloading numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (6.6 kB)\nCollecting pandas (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 10))\n  Downloading pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB)\nCollecting gunicorn (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 11))\n  Downloading gunicorn-26.0.0-py3-none-any.whl.metadata (5.4 kB)\nCollecting SQLAlchemy (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 13))\n  Downloading sqlalchemy-2.0.50-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB)\nCollecting SQLAlchemy-Utils (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 14))\n  Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl.metadata (4.6 kB)\nCollecting urllib3 (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 15))\n  Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)\nCollecting tox (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading tox-4.55.1-py3-none-any.whl.metadata (3.8 kB)\nCollecting mock (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 2))\n  Downloading mock-5.2.0-py3-none-any.whl.metadata (3.1 kB)\nCollecting pytest (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))\n  Downloading pytest-9.0.3-py3-none-any.whl.metadata (7.6 kB)\nCollecting black (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))\n  Using cached black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (95 kB)\nCollecting psycopg[binary,pool] (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))\n  Downloading psycopg-3.3.4-py3-none-any.whl.metadata (4.3 kB)\nCollecting PrettyTable (from dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))\n  Downloading prettytable-3.17.0-py3-none-any.whl.metadata (34 kB)\nCollecting dciauth (from dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))\n  Downloading dciauth-4.0.1.post202603121510-py3-none-any.whl.metadata (2.8 kB)\nCollecting pyjwt (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading pyjwt-2.13.0-py3-none-any.whl.metadata (3.4 kB)\nCollecting cryptography (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading cryptography-48.0.1-cp311-abi3-manylinux_2_28_x86_64.whl.metadata (4.3 kB)\nCollecting pyparsing (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)\nCollecting pytz (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading pytz-2026.2-py2.py3-none-any.whl.metadata (22 kB)\nCollecting pyOpenSSL (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading pyopenssl-26.2.0-py3-none-any.whl.metadata (19 kB)\nCollecting jsonschema (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)\nCollecting alembic (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading alembic-1.18.4-py3-none-any.whl.metadata (7.2 kB)\nCollecting six (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)\nCollecting markupsafe (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)\nCollecting passlib (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading passlib-1.7.4-py2.py3-none-any.whl.metadata (1.7 kB)\nCollecting boto3 (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading boto3-1.43.26-py3-none-any.whl.metadata (6.6 kB)\nCollecting redis (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading redis-8.0.0-py3-none-any.whl.metadata (13 kB)\nCollecting tenacity (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading tenacity-9.1.4-py3-none-any.whl.metadata (1.2 kB)\nCollecting blinker>=1.9.0 (from flask->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))\n  Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)\nCollecting click>=8.1.3 (from flask->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))\n  Using cached click-8.4.1-py3-none-any.whl.metadata (2.6 kB)\nCollecting amqp<6.0.0,>=5.1.1 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))\n  Downloading amqp-5.3.1-py3-none-any.whl.metadata (8.9 kB)\nCollecting vine==5.1.0 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))\n  Downloading vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)\nCollecting tzdata>=2025.2 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))\n  Downloading tzdata-2026.2-py2.py3-none-any.whl.metadata (1.4 kB)\nCollecting packaging (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))\n  Using cached packaging-26.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting charset_normalizer<4,>=2 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))\n  Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)\nCollecting idna<4,>=2.5 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))\n  Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)\nCollecting certifi>=2023.5.7 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))\n  Downloading certifi-2026.5.20-py3-none-any.whl.metadata (2.5 kB)\nCollecting python-dateutil>=2.8.2 (from pandas->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 10))\n  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)\nCollecting typing-extensions>=4.6 (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))\n  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting psycopg-binary==3.3.4 (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))\n  Downloading psycopg_binary-3.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB)\nCollecting psycopg-pool (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))\n  Downloading psycopg_pool-3.3.1-py3-none-any.whl.metadata (2.8 kB)\nCollecting greenlet>=1 (from SQLAlchemy->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 13))\n  Downloading greenlet-3.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)\nCollecting cachetools>=7.0.3 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading cachetools-7.1.4-py3-none-any.whl.metadata (5.5 kB)\nCollecting colorama>=0.4.6 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\nCollecting filelock>=3.25 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading filelock-3.29.3-py3-none-any.whl.metadata (2.0 kB)\nCollecting platformdirs>=4.9.4 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Using cached platformdirs-4.10.0-py3-none-any.whl.metadata (5.5 kB)\nCollecting pluggy>=1.6 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\nCollecting pyproject-api>=1.10 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading pyproject_api-1.10.1-py3-none-any.whl.metadata (2.3 kB)\nCollecting python-discovery>=1.2.2 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading python_discovery-1.4.0-py3-none-any.whl.metadata (5.6 kB)\nCollecting tomli-w>=1.2 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading tomli_w-1.2.0-py3-none-any.whl.metadata (5.7 kB)\nCollecting virtualenv>=21.1 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading virtualenv-21.4.2-py3-none-any.whl.metadata (3.5 kB)\nCollecting iniconfig>=1.0.1 (from pytest->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))\n  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting pygments>=2.7.2 (from pytest->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))\n  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting mypy-extensions>=0.4.3 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))\n  Using cached mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)\nCollecting pathspec>=1.0.0 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))\n  Using cached pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)\nCollecting pytokens~=0.4.0 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))\n  Using cached pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)\nCollecting distlib<1,>=0.3.7 (from virtualenv>=21.1->tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))\n  Downloading distlib-0.4.2-py2.py3-none-any.whl.metadata (5.3 kB)\nCollecting Mako (from alembic->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading mako-1.3.12-py3-none-any.whl.metadata (2.9 kB)\nCollecting botocore<1.44.0,>=1.43.26 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading botocore-1.43.26-py3-none-any.whl.metadata (5.6 kB)\nCollecting jmespath<2.0.0,>=0.7.1 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading jmespath-1.1.0-py3-none-any.whl.metadata (7.6 kB)\nCollecting s3transfer<0.19.0,>=0.18.0 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading s3transfer-0.18.0-py3-none-any.whl.metadata (1.7 kB)\nCollecting cffi>=2.0.0 (from cryptography->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB)\nCollecting pycparser (from cffi>=2.0.0->cryptography->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)\nCollecting gevent>=24.10.1 (from gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading gevent-26.5.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (14 kB)\nCollecting zope.event (from gevent>=24.10.1->gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading zope_event-6.2-py3-none-any.whl.metadata (5.4 kB)\nCollecting zope.interface (from gevent>=24.10.1->gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading zope_interface-8.5-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (47 kB)\nCollecting attrs>=22.2.0 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)\nCollecting jsonschema-specifications>=2023.03.6 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB)\nCollecting referencing>=0.28.4 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB)\nCollecting rpds-py>=0.25.0 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))\n  Downloading rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)\nCollecting wcwidth (from PrettyTable->dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))\n  Downloading wcwidth-0.8.1-py3-none-any.whl.metadata (43 kB)\nDownloading flask-3.1.3-py3-none-any.whl (103 kB)\nDownloading jinja2-3.1.6-py3-none-any.whl (134 kB)\nDownloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)\nDownloading werkzeug-3.1.8-py3-none-any.whl (226 kB)\nDownloading kombu-5.6.2-py3-none-any.whl (214 kB)\nDownloading vine-5.1.0-py3-none-any.whl (9.6 kB)\nDownloading amqp-5.3.1-py3-none-any.whl (50 kB)\nDownloading lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.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 5.2/5.2 MB 62.7 MB/s  0:00:00\nDownloading requests-2.34.2-py3-none-any.whl (73 kB)\nDownloading urllib3-2.7.0-py3-none-any.whl (131 kB)\nDownloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)\nDownloading idna-3.18-py3-none-any.whl (65 kB)\nDownloading numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 16.6/16.6 MB 39.1 MB/s  0:00:00\nDownloading pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.9 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 10.9/10.9 MB 31.1 MB/s  0:00:00\nDownloading gunicorn-26.0.0-py3-none-any.whl (212 kB)\nDownloading psycopg-3.3.4-py3-none-any.whl (213 kB)\nDownloading psycopg_binary-3.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.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 5.2/5.2 MB 29.4 MB/s  0:00:00\nDownloading sqlalchemy-2.0.50-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.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 3.4/3.4 MB 29.6 MB/s  0:00:00\nDownloading sqlalchemy_utils-0.42.1-py3-none-any.whl (91 kB)\nDownloading tox-4.55.1-py3-none-any.whl (215 kB)\nDownloading mock-5.2.0-py3-none-any.whl (31 kB)\nDownloading pytest-9.0.3-py3-none-any.whl (375 kB)\nDownloading pluggy-1.6.0-py3-none-any.whl (20 kB)\nUsing cached black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB)\nUsing cached pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB)\nDownloading blinker-1.9.0-py3-none-any.whl (8.5 kB)\nDownloading cachetools-7.1.4-py3-none-any.whl (16 kB)\nDownloading certifi-2026.5.20-py3-none-any.whl (134 kB)\nUsing cached click-8.4.1-py3-none-any.whl (116 kB)\nDownloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\nDownloading filelock-3.29.3-py3-none-any.whl (42 kB)\nDownloading greenlet-3.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (611 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 611.4/611.4 kB 24.1 MB/s  0:00:00\nDownloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)\nDownloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)\nUsing cached mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)\nUsing cached packaging-26.2-py3-none-any.whl (100 kB)\nUsing cached pathspec-1.1.1-py3-none-any.whl (57 kB)\nUsing cached platformdirs-4.10.0-py3-none-any.whl (22 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 28.0 MB/s  0:00:00\nDownloading pyproject_api-1.10.1-py3-none-any.whl (12 kB)\nDownloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)\nDownloading python_discovery-1.4.0-py3-none-any.whl (33 kB)\nDownloading six-1.17.0-py2.py3-none-any.whl (11 kB)\nDownloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)\nDownloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)\nDownloading tzdata-2026.2-py2.py3-none-any.whl (349 kB)\nDownloading virtualenv-21.4.2-py3-none-any.whl (7.6 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 7.6/7.6 MB 32.5 MB/s  0:00:00\nDownloading distlib-0.4.2-py2.py3-none-any.whl (470 kB)\nDownloading alembic-1.18.4-py3-none-any.whl (263 kB)\nDownloading boto3-1.43.26-py3-none-any.whl (140 kB)\nDownloading botocore-1.43.26-py3-none-any.whl (15.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 15.2/15.2 MB 36.1 MB/s  0:00:00\nDownloading jmespath-1.1.0-py3-none-any.whl (20 kB)\nDownloading s3transfer-0.18.0-py3-none-any.whl (88 kB)\nDownloading cryptography-48.0.1-cp311-abi3-manylinux_2_28_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 37.2 MB/s  0:00:00\nDownloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB)\nDownloading dciauth-4.0.1.post202603121510-py3-none-any.whl (13 kB)\nDownloading gevent-26.5.0-cp312-cp312-manylinux_2_28_x86_64.whl (2.1 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.1/2.1 MB 26.8 MB/s  0:00:00\nDownloading jsonschema-4.26.0-py3-none-any.whl (90 kB)\nDownloading attrs-26.1.0-py3-none-any.whl (67 kB)\nDownloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)\nDownloading referencing-0.37.0-py3-none-any.whl (26 kB)\nDownloading rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (376 kB)\nDownloading mako-1.3.12-py3-none-any.whl (78 kB)\nDownloading passlib-1.7.4-py2.py3-none-any.whl (525 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 525.6/525.6 kB 24.7 MB/s  0:00:00\nDownloading prettytable-3.17.0-py3-none-any.whl (34 kB)\nDownloading psycopg_pool-3.3.1-py3-none-any.whl (40 kB)\nDownloading pycparser-3.0-py3-none-any.whl (48 kB)\nDownloading pyjwt-2.13.0-py3-none-any.whl (31 kB)\nDownloading pyopenssl-26.2.0-py3-none-any.whl (55 kB)\nDownloading pyparsing-3.3.2-py3-none-any.whl (122 kB)\nDownloading pytz-2026.2-py2.py3-none-any.whl (510 kB)\nDownloading redis-8.0.0-py3-none-any.whl (499 kB)\nDownloading tenacity-9.1.4-py3-none-any.whl (28 kB)\nDownloading wcwidth-0.8.1-py3-none-any.whl (323 kB)\nDownloading zope_event-6.2-py3-none-any.whl (6.5 kB)\nDownloading zope_interface-8.5-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (270 kB)\nBuilding wheels for collected packages: dciclient, dci-control-server\n  Building editable for dciclient (pyproject.toml): started\n  Building editable for dciclient (pyproject.toml): finished with status 'done'\n  Created wheel for dciclient: filename=dciclient-4.1.0-0.editable-py3-none-any.whl size=10285 sha256=b9d5b0f5f661f28c7fb437103fb0860b77a738117a822268c5dcbe6e22085af6\n  Stored in directory: /tmp/pip-ephem-wheel-cache-fvqapf_s/wheels/5e/8b/cb/54bb301c681d785c94be9a38666075ff541fa046900831c0d4\n  Building editable for dci-control-server (pyproject.toml): started\n  Building editable for dci-control-server (pyproject.toml): finished with status 'done'\n  Created wheel for dci-control-server: filename=dci_control_server-1.0.0-0.editable-py3-none-any.whl size=12904 sha256=be5864fc69ad8367a8c9807d1b6ebfb0190ef675ca19e373e19223297084a6d1\n  Stored in directory: /tmp/pip-ephem-wheel-cache-fvqapf_s/wheels/f3/57/52/5cb931717a8c444059a78f3ef38fc2299f55144feef22c3972\nSuccessfully built dciclient dci-control-server\nInstalling collected packages: pytz, passlib, distlib, dciauth, zope.interface, zope.event, wcwidth, vine, urllib3, tzdata, typing-extensions, tomli-w, tenacity, six, rpds-py, redis, pytokens, pyparsing, pyjwt, pygments, pycparser, psycopg-binary, pluggy, platformdirs, pathspec, packaging, numpy, mypy-extensions, mock, markupsafe, lxml, jmespath, itsdangerous, iniconfig, idna, greenlet, filelock, colorama, click, charset_normalizer, certifi, cachetools, blinker, attrs, werkzeug, SQLAlchemy, requests, referencing, python-discovery, python-dateutil, pytest, pyproject-api, psycopg-pool, psycopg, PrettyTable, Mako, jinja2, gunicorn, gevent, cffi, black, amqp, virtualenv, SQLAlchemy-Utils, pandas, kombu, jsonschema-specifications, flask, dciclient, cryptography, botocore, alembic, tox, s3transfer, pyOpenSSL, jsonschema, boto3, dci-control-server\n\nSuccessfully installed Mako-1.3.12 PrettyTable-3.17.0 SQLAlchemy-2.0.50 SQLAlchemy-Utils-0.42.1 alembic-1.18.4 amqp-5.3.1 attrs-26.1.0 black-26.5.1 blinker-1.9.0 boto3-1.43.26 botocore-1.43.26 cachetools-7.1.4 certifi-2026.5.20 cffi-2.0.0 charset_normalizer-3.4.7 click-8.4.1 colorama-0.4.6 cryptography-48.0.1 dci-control-server-1.0.0 dciauth-4.0.1.post202603121510 dciclient-4.1.0 distlib-0.4.2 filelock-3.29.3 flask-3.1.3 gevent-26.5.0 greenlet-3.5.1 gunicorn-26.0.0 idna-3.18 iniconfig-2.3.0 itsdangerous-2.2.0 jinja2-3.1.6 jmespath-1.1.0 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 kombu-5.6.2 lxml-6.1.1 markupsafe-3.0.3 mock-5.2.0 mypy-extensions-1.1.0 numpy-2.4.6 packaging-26.2 pandas-3.0.3 passlib-1.7.4 pathspec-1.1.1 platformdirs-4.10.0 pluggy-1.6.0 psycopg-3.3.4 psycopg-binary-3.3.4 psycopg-pool-3.3.1 pyOpenSSL-26.2.0 pycparser-3.0 pygments-2.20.0 pyjwt-2.13.0 pyparsing-3.3.2 pyproject-api-1.10.1 pytest-9.0.3 python-dateutil-2.9.0.post0 python-discovery-1.4.0 pytokens-0.4.1 pytz-2026.2 redis-8.0.0 referencing-0.37.0 requests-2.34.2 rpds-py-2026.5.1 s3transfer-0.18.0 six-1.17.0 tenacity-9.1.4 tomli-w-1.2.0 tox-4.55.1 typing-extensions-4.15.0 tzdata-2026.2 urllib3-2.7.0 vine-5.1.0 virtualenv-21.4.2 wcwidth-0.8.1 werkzeug-3.1.8 zope.event-6.2 zope.interface-8.5\nunit finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit after 30.11 seconds\nunit start: developpkg /workspace/src/github.com/distributedci/dci-analytics\nunit develop-inst: /workspace/src/github.com/distributedci/dci-analytics\nwrite config to /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/.tox-config1 as '3b216f65bfc5462e9f61982facead6997167d30ef7d810c700b7d5c70c61e33f /usr/bin/python3.12\\n3.28.0 0 1 0\\n00000000000000000000000000000000 -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt\\n00000000000000000000000000000000 -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt'\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1210] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip install -U -e .\nObtaining file:///workspace/src/github.com/distributedci/dci-analytics\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Checking if build backend supports build_editable: started\n  Checking if build backend supports build_editable: finished with status 'done'\n  Getting requirements to build editable: started\n  Getting requirements to build editable: finished with status 'done'\n  Preparing editable metadata (pyproject.toml): started\n  Preparing editable metadata (pyproject.toml): finished with status 'done'\nBuilding wheels for collected packages: dci-analytics\n  Building editable for dci-analytics (pyproject.toml): started\n  Building editable for dci-analytics (pyproject.toml): finished with status 'done'\n  Created wheel for dci-analytics: filename=dci_analytics-0.1.0-0.editable-py3-none-any.whl size=6818 sha256=4fc9cf8d5c9cdf32672e47467b3dba210b19fd6fb4d4929c429e04971458ea9d\n  Stored in directory: /tmp/pip-ephem-wheel-cache-_i8gtlnw/wheels/bf/ed/55/222f84063c48a42bec37037edb4881a72c2b161d2c1168b8ee\nSuccessfully built dci-analytics\nInstalling collected packages: dci-analytics\nSuccessfully installed dci-analytics-0.1.0\nunit finish: developpkg /workspace/src/github.com/distributedci/dci-analytics after 2.21 seconds\nunit start: envreport \nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1220] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip freeze >.tox/unit/log/unit-0.log\nunit finish: envreport  after 0.36 seconds\nunit installed: alembic==1.18.4,amqp==5.3.1,attrs==26.1.0,black==26.5.1,blinker==1.9.0,boto3==1.43.26,botocore==1.43.26,cachetools==7.1.4,certifi==2026.5.20,cffi==2.0.0,charset-normalizer==3.4.7,click==8.4.1,colorama==0.4.6,cryptography==48.0.1,dci-analytics==0.1.0,-e git+file:///dev/null@4ba1a779be565de9a6f47d616151c8b0bd23f864#egg=dci_control_server,dciauth==4.0.1.post202603121510,-e git+file:///dev/null@c9b527d6c9d54be7760427c87d32f025cfb9f570#egg=dciclient,distlib==0.4.2,filelock==3.29.3,Flask==3.1.3,gevent==26.5.0,greenlet==3.5.1,gunicorn==26.0.0,idna==3.18,iniconfig==2.3.0,itsdangerous==2.2.0,Jinja2==3.1.6,jmespath==1.1.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,kombu==5.6.2,lxml==6.1.1,Mako==1.3.12,MarkupSafe==3.0.3,mock==5.2.0,mypy_extensions==1.1.0,numpy==2.4.6,packaging==26.2,pandas==3.0.3,passlib==1.7.4,pathspec==1.1.1,platformdirs==4.10.0,pluggy==1.6.0,prettytable==3.17.0,psycopg==3.3.4,psycopg-binary==3.3.4,psycopg-pool==3.3.1,pycparser==3.0,Pygments==2.20.0,PyJWT==2.13.0,pyOpenSSL==26.2.0,pyparsing==3.3.2,pyproject-api==1.10.1,pytest==9.0.3,python-dateutil==2.9.0.post0,python-discovery==1.4.0,pytokens==0.4.1,pytz==2026.2,redis==8.0.0,referencing==0.37.0,requests==2.34.2,rpds-py==2026.5.1,s3transfer==0.18.0,setuptools==82.0.1,six==1.17.0,SQLAlchemy==2.0.50,SQLAlchemy-Utils==0.42.1,tenacity==9.1.4,tomli_w==1.2.0,tox==4.55.1,typing_extensions==4.15.0,tzdata==2026.2,urllib3==2.7.0,vine==5.1.0,virtualenv==21.4.2,wcwidth==0.8.1,Werkzeug==3.1.8,wheel==0.47.0,zope.event==6.2,zope.interface==8.5\n___________________________________ summary ____________________________________\n  lint: skipped tests\n  unit: skipped tests\n  congratulations :)",
                            "stdout_lines": [
                                "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1113)",
                                "using tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1113)",
                                "skipping sdist step",
                                "python3.12 (/usr/bin/python3.12) is {'executable': '/usr/bin/python3.12', 'implementation': 'CPython', 'version_info': [3, 12, 13, 'final', 0], 'version': '3.12.13 (main, Apr 16 2026, 22:51:04) [GCC 8.5.0 20210514 (Red Hat 8.5.0-28)]', 'is_64': True, 'sysplatform': 'linux', 'os_sep': '/', 'extra_version_info': None}",
                                "lint uses /usr/bin/python3.12",
                                "lint start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint",
                                "lint cannot reuse: no previous config /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/.tox-config1",
                                "lint create: /workspace/src/github.com/distributedci/dci-analytics/.tox/lint",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1120] /workspace/src/github.com/distributedci/dci-analytics/.tox$ /usr/bin/python3.6 -m virtualenv --download --python /usr/bin/python3.12 lint",
                                "created virtual environment CPython3.12.13.final.0-64 in 2532ms",
                                "  creator CPython3Posix(dest=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint, clear=False, no_vcs_ignore=False, global=False)",
                                "  seeder FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/workspace/.local/share/virtualenv)",
                                "    added seed packages: pip==26.1.2, setuptools==82.0.1, wheel==0.47.0",
                                "  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator",
                                "lint installdeps: flake8, flake8-colors, black",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1146] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip install -U flake8 flake8-colors black",
                                "Collecting flake8",
                                "  Downloading flake8-7.3.0-py2.py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting flake8-colors",
                                "  Downloading flake8_colors-0.1.9-py3-none-any.whl.metadata (1.6 kB)",
                                "Collecting black",
                                "  Downloading black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (95 kB)",
                                "Collecting mccabe<0.8.0,>=0.7.0 (from flake8)",
                                "  Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)",
                                "Collecting pycodestyle<2.15.0,>=2.14.0 (from flake8)",
                                "  Downloading pycodestyle-2.14.0-py2.py3-none-any.whl.metadata (4.5 kB)",
                                "Collecting pyflakes<3.5.0,>=3.4.0 (from flake8)",
                                "  Downloading pyflakes-3.4.0-py2.py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting click>=8.0.0 (from black)",
                                "  Downloading click-8.4.1-py3-none-any.whl.metadata (2.6 kB)",
                                "Collecting mypy-extensions>=0.4.3 (from black)",
                                "  Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)",
                                "Collecting packaging>=22.0 (from black)",
                                "  Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting pathspec>=1.0.0 (from black)",
                                "  Downloading pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)",
                                "Collecting platformdirs>=2 (from black)",
                                "  Downloading platformdirs-4.10.0-py3-none-any.whl.metadata (5.5 kB)",
                                "Collecting pytokens~=0.4.0 (from black)",
                                "  Downloading pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)",
                                "Downloading flake8-7.3.0-py2.py3-none-any.whl (57 kB)",
                                "Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)",
                                "Downloading pycodestyle-2.14.0-py2.py3-none-any.whl (31 kB)",
                                "Downloading pyflakes-3.4.0-py2.py3-none-any.whl (63 kB)",
                                "Downloading flake8_colors-0.1.9-py3-none-any.whl (4.0 kB)",
                                "Downloading black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.9/1.9 MB 103.1 MB/s  0:00:00",
                                "Downloading pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB)",
                                "Downloading click-8.4.1-py3-none-any.whl (116 kB)",
                                "Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)",
                                "Downloading packaging-26.2-py3-none-any.whl (100 kB)",
                                "Downloading pathspec-1.1.1-py3-none-any.whl (57 kB)",
                                "Downloading platformdirs-4.10.0-py3-none-any.whl (22 kB)",
                                "Installing collected packages: pytokens, pyflakes, pycodestyle, platformdirs, pathspec, packaging, mypy-extensions, mccabe, click, flake8, black, flake8-colors",
                                "",
                                "Successfully installed black-26.5.1 click-8.4.1 flake8-7.3.0 flake8-colors-0.1.9 mccabe-0.7.0 mypy-extensions-1.1.0 packaging-26.2 pathspec-1.1.1 platformdirs-4.10.0 pycodestyle-2.14.0 pyflakes-3.4.0 pytokens-0.4.1",
                                "lint finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint after 5.03 seconds",
                                "lint start: finishvenv ",
                                "write config to /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/.tox-config1 as '3b216f65bfc5462e9f61982facead6997167d30ef7d810c700b7d5c70c61e33f /usr/bin/python3.12\\n3.28.0 0 1 0\\n00000000000000000000000000000000 flake8\\n00000000000000000000000000000000 flake8-colors\\n00000000000000000000000000000000 black'",
                                "lint finish: finishvenv  after 0.00 seconds",
                                "lint start: envreport ",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1152] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip freeze >.tox/lint/log/lint-0.log",
                                "lint finish: envreport  after 0.26 seconds",
                                "lint installed: black==26.5.1,click==8.4.1,flake8==7.3.0,flake8-colors==0.1.9,mccabe==0.7.0,mypy_extensions==1.1.0,packaging==26.2,pathspec==1.1.1,platformdirs==4.10.0,pycodestyle==2.14.0,pyflakes==3.4.0,pytokens==0.4.1,setuptools==82.0.1,wheel==0.47.0",
                                "unit uses /usr/bin/python3.12",
                                "unit start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit",
                                "unit cannot reuse: no previous config /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/.tox-config1",
                                "unit create: /workspace/src/github.com/distributedci/dci-analytics/.tox/unit",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1153] /workspace/src/github.com/distributedci/dci-analytics/.tox$ /usr/bin/python3.6 -m virtualenv --download --python /usr/bin/python3.12 unit",
                                "wheel-0.47.0-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/wheel.json",
                                "pip-26.1.2-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/pip.json",
                                "setuptools-82.0.1-py3-none-any.whl already present in /workspace/.local/share/virtualenv/wheel/3.12/embed/3/setuptools.json",
                                "created virtual environment CPython3.12.13.final.0-64 in 1982ms",
                                "  creator CPython3Posix(dest=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit, clear=False, no_vcs_ignore=False, global=False)",
                                "  seeder FromAppData(download=True, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/workspace/.local/share/virtualenv)",
                                "    added seed packages: pip==26.1.2, setuptools==82.0.1, wheel==0.47.0",
                                "  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator",
                                "unit installdeps: -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt, -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1178] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip install -U -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt",
                                "Obtaining file:///workspace/src/github.com/distributedci/python-dciclient (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Checking if build backend supports build_editable: started",
                                "  Checking if build backend supports build_editable: finished with status 'done'",
                                "  Getting requirements to build editable: started",
                                "  Getting requirements to build editable: finished with status 'done'",
                                "  Preparing editable metadata (pyproject.toml): started",
                                "  Preparing editable metadata (pyproject.toml): finished with status 'done'",
                                "Obtaining file:///workspace/src/github.com/distributedci/dci-control-server (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Checking if build backend supports build_editable: started",
                                "  Checking if build backend supports build_editable: finished with status 'done'",
                                "  Getting requirements to build editable: started",
                                "  Getting requirements to build editable: finished with status 'done'",
                                "  Preparing editable metadata (pyproject.toml): started",
                                "  Preparing editable metadata (pyproject.toml): finished with status 'done'",
                                "Collecting flask (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))",
                                "  Downloading flask-3.1.3-py3-none-any.whl.metadata (3.2 kB)",
                                "Collecting jinja2 (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 3))",
                                "  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting itsdangerous (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 4))",
                                "  Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)",
                                "Collecting werkzeug (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 5))",
                                "  Downloading werkzeug-3.1.8-py3-none-any.whl.metadata (4.0 kB)",
                                "Collecting kombu (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))",
                                "  Downloading kombu-5.6.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting lxml (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 7))",
                                "  Downloading lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.5 kB)",
                                "Collecting requests (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))",
                                "  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting numpy (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 9))",
                                "  Downloading numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (6.6 kB)",
                                "Collecting pandas (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 10))",
                                "  Downloading pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB)",
                                "Collecting gunicorn (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 11))",
                                "  Downloading gunicorn-26.0.0-py3-none-any.whl.metadata (5.4 kB)",
                                "Collecting SQLAlchemy (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 13))",
                                "  Downloading sqlalchemy-2.0.50-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB)",
                                "Collecting SQLAlchemy-Utils (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 14))",
                                "  Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl.metadata (4.6 kB)",
                                "Collecting urllib3 (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 15))",
                                "  Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)",
                                "Collecting tox (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading tox-4.55.1-py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting mock (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 2))",
                                "  Downloading mock-5.2.0-py3-none-any.whl.metadata (3.1 kB)",
                                "Collecting pytest (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))",
                                "  Downloading pytest-9.0.3-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting black (from -r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))",
                                "  Using cached black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (95 kB)",
                                "Collecting psycopg[binary,pool] (from -r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))",
                                "  Downloading psycopg-3.3.4-py3-none-any.whl.metadata (4.3 kB)",
                                "Collecting PrettyTable (from dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))",
                                "  Downloading prettytable-3.17.0-py3-none-any.whl.metadata (34 kB)",
                                "Collecting dciauth (from dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))",
                                "  Downloading dciauth-4.0.1.post202603121510-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting pyjwt (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading pyjwt-2.13.0-py3-none-any.whl.metadata (3.4 kB)",
                                "Collecting cryptography (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading cryptography-48.0.1-cp311-abi3-manylinux_2_28_x86_64.whl.metadata (4.3 kB)",
                                "Collecting pyparsing (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)",
                                "Collecting pytz (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading pytz-2026.2-py2.py3-none-any.whl.metadata (22 kB)",
                                "Collecting pyOpenSSL (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading pyopenssl-26.2.0-py3-none-any.whl.metadata (19 kB)",
                                "Collecting jsonschema (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting alembic (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading alembic-1.18.4-py3-none-any.whl.metadata (7.2 kB)",
                                "Collecting six (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting markupsafe (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)",
                                "Collecting passlib (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading passlib-1.7.4-py2.py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting boto3 (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading boto3-1.43.26-py3-none-any.whl.metadata (6.6 kB)",
                                "Collecting redis (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading redis-8.0.0-py3-none-any.whl.metadata (13 kB)",
                                "Collecting tenacity (from dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading tenacity-9.1.4-py3-none-any.whl.metadata (1.2 kB)",
                                "Collecting blinker>=1.9.0 (from flask->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))",
                                "  Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)",
                                "Collecting click>=8.1.3 (from flask->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 2))",
                                "  Using cached click-8.4.1-py3-none-any.whl.metadata (2.6 kB)",
                                "Collecting amqp<6.0.0,>=5.1.1 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))",
                                "  Downloading amqp-5.3.1-py3-none-any.whl.metadata (8.9 kB)",
                                "Collecting vine==5.1.0 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))",
                                "  Downloading vine-5.1.0-py3-none-any.whl.metadata (2.7 kB)",
                                "Collecting tzdata>=2025.2 (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))",
                                "  Downloading tzdata-2026.2-py2.py3-none-any.whl.metadata (1.4 kB)",
                                "Collecting packaging (from kombu->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 6))",
                                "  Using cached packaging-26.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting charset_normalizer<4,>=2 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))",
                                "  Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB)",
                                "Collecting idna<4,>=2.5 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))",
                                "  Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)",
                                "Collecting certifi>=2023.5.7 (from requests->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 8))",
                                "  Downloading certifi-2026.5.20-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting python-dateutil>=2.8.2 (from pandas->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 10))",
                                "  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)",
                                "Collecting typing-extensions>=4.6 (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))",
                                "  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)",
                                "Collecting psycopg-binary==3.3.4 (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))",
                                "  Downloading psycopg_binary-3.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB)",
                                "Collecting psycopg-pool (from psycopg[binary,pool]->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 12))",
                                "  Downloading psycopg_pool-3.3.1-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting greenlet>=1 (from SQLAlchemy->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 13))",
                                "  Downloading greenlet-3.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)",
                                "Collecting cachetools>=7.0.3 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading cachetools-7.1.4-py3-none-any.whl.metadata (5.5 kB)",
                                "Collecting colorama>=0.4.6 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)",
                                "Collecting filelock>=3.25 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading filelock-3.29.3-py3-none-any.whl.metadata (2.0 kB)",
                                "Collecting platformdirs>=4.9.4 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Using cached platformdirs-4.10.0-py3-none-any.whl.metadata (5.5 kB)",
                                "Collecting pluggy>=1.6 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting pyproject-api>=1.10 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading pyproject_api-1.10.1-py3-none-any.whl.metadata (2.3 kB)",
                                "Collecting python-discovery>=1.2.2 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading python_discovery-1.4.0-py3-none-any.whl.metadata (5.6 kB)",
                                "Collecting tomli-w>=1.2 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading tomli_w-1.2.0-py3-none-any.whl.metadata (5.7 kB)",
                                "Collecting virtualenv>=21.1 (from tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading virtualenv-21.4.2-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting iniconfig>=1.0.1 (from pytest->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))",
                                "  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting pygments>=2.7.2 (from pytest->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 3))",
                                "  Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting mypy-extensions>=0.4.3 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))",
                                "  Using cached mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)",
                                "Collecting pathspec>=1.0.0 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))",
                                "  Using cached pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)",
                                "Collecting pytokens~=0.4.0 (from black->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 4))",
                                "  Using cached pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)",
                                "Collecting distlib<1,>=0.3.7 (from virtualenv>=21.1->tox->-r /workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt (line 1))",
                                "  Downloading distlib-0.4.2-py2.py3-none-any.whl.metadata (5.3 kB)",
                                "Collecting Mako (from alembic->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading mako-1.3.12-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting botocore<1.44.0,>=1.43.26 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading botocore-1.43.26-py3-none-any.whl.metadata (5.6 kB)",
                                "Collecting jmespath<2.0.0,>=0.7.1 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading jmespath-1.1.0-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting s3transfer<0.19.0,>=0.18.0 (from boto3->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading s3transfer-0.18.0-py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting cffi>=2.0.0 (from cryptography->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB)",
                                "Collecting pycparser (from cffi>=2.0.0->cryptography->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)",
                                "Collecting gevent>=24.10.1 (from gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading gevent-26.5.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (14 kB)",
                                "Collecting zope.event (from gevent>=24.10.1->gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading zope_event-6.2-py3-none-any.whl.metadata (5.4 kB)",
                                "Collecting zope.interface (from gevent>=24.10.1->gunicorn[gevent]->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading zope_interface-8.5-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (47 kB)",
                                "Collecting attrs>=22.2.0 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)",
                                "Collecting jsonschema-specifications>=2023.03.6 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting referencing>=0.28.4 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB)",
                                "Collecting rpds-py>=0.25.0 (from jsonschema->dci-control-server==1.0.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 16))",
                                "  Downloading rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)",
                                "Collecting wcwidth (from PrettyTable->dciclient==4.1.0->-r /workspace/src/github.com/distributedci/dci-analytics/requirements.txt (line 1))",
                                "  Downloading wcwidth-0.8.1-py3-none-any.whl.metadata (43 kB)",
                                "Downloading flask-3.1.3-py3-none-any.whl (103 kB)",
                                "Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)",
                                "Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)",
                                "Downloading werkzeug-3.1.8-py3-none-any.whl (226 kB)",
                                "Downloading kombu-5.6.2-py3-none-any.whl (214 kB)",
                                "Downloading vine-5.1.0-py3-none-any.whl (9.6 kB)",
                                "Downloading amqp-5.3.1-py3-none-any.whl (50 kB)",
                                "Downloading lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.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 5.2/5.2 MB 62.7 MB/s  0:00:00",
                                "Downloading requests-2.34.2-py3-none-any.whl (73 kB)",
                                "Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)",
                                "Downloading charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (216 kB)",
                                "Downloading idna-3.18-py3-none-any.whl (65 kB)",
                                "Downloading numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 16.6/16.6 MB 39.1 MB/s  0:00:00",
                                "Downloading pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.9 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 10.9/10.9 MB 31.1 MB/s  0:00:00",
                                "Downloading gunicorn-26.0.0-py3-none-any.whl (212 kB)",
                                "Downloading psycopg-3.3.4-py3-none-any.whl (213 kB)",
                                "Downloading psycopg_binary-3.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.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 5.2/5.2 MB 29.4 MB/s  0:00:00",
                                "Downloading sqlalchemy-2.0.50-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.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 3.4/3.4 MB 29.6 MB/s  0:00:00",
                                "Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl (91 kB)",
                                "Downloading tox-4.55.1-py3-none-any.whl (215 kB)",
                                "Downloading mock-5.2.0-py3-none-any.whl (31 kB)",
                                "Downloading pytest-9.0.3-py3-none-any.whl (375 kB)",
                                "Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Using cached black-26.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB)",
                                "Using cached pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB)",
                                "Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)",
                                "Downloading cachetools-7.1.4-py3-none-any.whl (16 kB)",
                                "Downloading certifi-2026.5.20-py3-none-any.whl (134 kB)",
                                "Using cached click-8.4.1-py3-none-any.whl (116 kB)",
                                "Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)",
                                "Downloading filelock-3.29.3-py3-none-any.whl (42 kB)",
                                "Downloading greenlet-3.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (611 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 611.4/611.4 kB 24.1 MB/s  0:00:00",
                                "Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)",
                                "Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)",
                                "Using cached mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)",
                                "Using cached packaging-26.2-py3-none-any.whl (100 kB)",
                                "Using cached pathspec-1.1.1-py3-none-any.whl (57 kB)",
                                "Using cached platformdirs-4.10.0-py3-none-any.whl (22 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 28.0 MB/s  0:00:00",
                                "Downloading pyproject_api-1.10.1-py3-none-any.whl (12 kB)",
                                "Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)",
                                "Downloading python_discovery-1.4.0-py3-none-any.whl (33 kB)",
                                "Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)",
                                "Downloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)",
                                "Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)",
                                "Downloading tzdata-2026.2-py2.py3-none-any.whl (349 kB)",
                                "Downloading virtualenv-21.4.2-py3-none-any.whl (7.6 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 7.6/7.6 MB 32.5 MB/s  0:00:00",
                                "Downloading distlib-0.4.2-py2.py3-none-any.whl (470 kB)",
                                "Downloading alembic-1.18.4-py3-none-any.whl (263 kB)",
                                "Downloading boto3-1.43.26-py3-none-any.whl (140 kB)",
                                "Downloading botocore-1.43.26-py3-none-any.whl (15.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 15.2/15.2 MB 36.1 MB/s  0:00:00",
                                "Downloading jmespath-1.1.0-py3-none-any.whl (20 kB)",
                                "Downloading s3transfer-0.18.0-py3-none-any.whl (88 kB)",
                                "Downloading cryptography-48.0.1-cp311-abi3-manylinux_2_28_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 37.2 MB/s  0:00:00",
                                "Downloading cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (219 kB)",
                                "Downloading dciauth-4.0.1.post202603121510-py3-none-any.whl (13 kB)",
                                "Downloading gevent-26.5.0-cp312-cp312-manylinux_2_28_x86_64.whl (2.1 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.1/2.1 MB 26.8 MB/s  0:00:00",
                                "Downloading jsonschema-4.26.0-py3-none-any.whl (90 kB)",
                                "Downloading attrs-26.1.0-py3-none-any.whl (67 kB)",
                                "Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)",
                                "Downloading referencing-0.37.0-py3-none-any.whl (26 kB)",
                                "Downloading rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (376 kB)",
                                "Downloading mako-1.3.12-py3-none-any.whl (78 kB)",
                                "Downloading passlib-1.7.4-py2.py3-none-any.whl (525 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 525.6/525.6 kB 24.7 MB/s  0:00:00",
                                "Downloading prettytable-3.17.0-py3-none-any.whl (34 kB)",
                                "Downloading psycopg_pool-3.3.1-py3-none-any.whl (40 kB)",
                                "Downloading pycparser-3.0-py3-none-any.whl (48 kB)",
                                "Downloading pyjwt-2.13.0-py3-none-any.whl (31 kB)",
                                "Downloading pyopenssl-26.2.0-py3-none-any.whl (55 kB)",
                                "Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB)",
                                "Downloading pytz-2026.2-py2.py3-none-any.whl (510 kB)",
                                "Downloading redis-8.0.0-py3-none-any.whl (499 kB)",
                                "Downloading tenacity-9.1.4-py3-none-any.whl (28 kB)",
                                "Downloading wcwidth-0.8.1-py3-none-any.whl (323 kB)",
                                "Downloading zope_event-6.2-py3-none-any.whl (6.5 kB)",
                                "Downloading zope_interface-8.5-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (270 kB)",
                                "Building wheels for collected packages: dciclient, dci-control-server",
                                "  Building editable for dciclient (pyproject.toml): started",
                                "  Building editable for dciclient (pyproject.toml): finished with status 'done'",
                                "  Created wheel for dciclient: filename=dciclient-4.1.0-0.editable-py3-none-any.whl size=10285 sha256=b9d5b0f5f661f28c7fb437103fb0860b77a738117a822268c5dcbe6e22085af6",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-fvqapf_s/wheels/5e/8b/cb/54bb301c681d785c94be9a38666075ff541fa046900831c0d4",
                                "  Building editable for dci-control-server (pyproject.toml): started",
                                "  Building editable for dci-control-server (pyproject.toml): finished with status 'done'",
                                "  Created wheel for dci-control-server: filename=dci_control_server-1.0.0-0.editable-py3-none-any.whl size=12904 sha256=be5864fc69ad8367a8c9807d1b6ebfb0190ef675ca19e373e19223297084a6d1",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-fvqapf_s/wheels/f3/57/52/5cb931717a8c444059a78f3ef38fc2299f55144feef22c3972",
                                "Successfully built dciclient dci-control-server",
                                "Installing collected packages: pytz, passlib, distlib, dciauth, zope.interface, zope.event, wcwidth, vine, urllib3, tzdata, typing-extensions, tomli-w, tenacity, six, rpds-py, redis, pytokens, pyparsing, pyjwt, pygments, pycparser, psycopg-binary, pluggy, platformdirs, pathspec, packaging, numpy, mypy-extensions, mock, markupsafe, lxml, jmespath, itsdangerous, iniconfig, idna, greenlet, filelock, colorama, click, charset_normalizer, certifi, cachetools, blinker, attrs, werkzeug, SQLAlchemy, requests, referencing, python-discovery, python-dateutil, pytest, pyproject-api, psycopg-pool, psycopg, PrettyTable, Mako, jinja2, gunicorn, gevent, cffi, black, amqp, virtualenv, SQLAlchemy-Utils, pandas, kombu, jsonschema-specifications, flask, dciclient, cryptography, botocore, alembic, tox, s3transfer, pyOpenSSL, jsonschema, boto3, dci-control-server",
                                "",
                                "Successfully installed Mako-1.3.12 PrettyTable-3.17.0 SQLAlchemy-2.0.50 SQLAlchemy-Utils-0.42.1 alembic-1.18.4 amqp-5.3.1 attrs-26.1.0 black-26.5.1 blinker-1.9.0 boto3-1.43.26 botocore-1.43.26 cachetools-7.1.4 certifi-2026.5.20 cffi-2.0.0 charset_normalizer-3.4.7 click-8.4.1 colorama-0.4.6 cryptography-48.0.1 dci-control-server-1.0.0 dciauth-4.0.1.post202603121510 dciclient-4.1.0 distlib-0.4.2 filelock-3.29.3 flask-3.1.3 gevent-26.5.0 greenlet-3.5.1 gunicorn-26.0.0 idna-3.18 iniconfig-2.3.0 itsdangerous-2.2.0 jinja2-3.1.6 jmespath-1.1.0 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 kombu-5.6.2 lxml-6.1.1 markupsafe-3.0.3 mock-5.2.0 mypy-extensions-1.1.0 numpy-2.4.6 packaging-26.2 pandas-3.0.3 passlib-1.7.4 pathspec-1.1.1 platformdirs-4.10.0 pluggy-1.6.0 psycopg-3.3.4 psycopg-binary-3.3.4 psycopg-pool-3.3.1 pyOpenSSL-26.2.0 pycparser-3.0 pygments-2.20.0 pyjwt-2.13.0 pyparsing-3.3.2 pyproject-api-1.10.1 pytest-9.0.3 python-dateutil-2.9.0.post0 python-discovery-1.4.0 pytokens-0.4.1 pytz-2026.2 redis-8.0.0 referencing-0.37.0 requests-2.34.2 rpds-py-2026.5.1 s3transfer-0.18.0 six-1.17.0 tenacity-9.1.4 tomli-w-1.2.0 tox-4.55.1 typing-extensions-4.15.0 tzdata-2026.2 urllib3-2.7.0 vine-5.1.0 virtualenv-21.4.2 wcwidth-0.8.1 werkzeug-3.1.8 zope.event-6.2 zope.interface-8.5",
                                "unit finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit after 30.11 seconds",
                                "unit start: developpkg /workspace/src/github.com/distributedci/dci-analytics",
                                "unit develop-inst: /workspace/src/github.com/distributedci/dci-analytics",
                                "write config to /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/.tox-config1 as '3b216f65bfc5462e9f61982facead6997167d30ef7d810c700b7d5c70c61e33f /usr/bin/python3.12\\n3.28.0 0 1 0\\n00000000000000000000000000000000 -r/workspace/src/github.com/distributedci/dci-analytics/requirements.txt\\n00000000000000000000000000000000 -r/workspace/src/github.com/distributedci/dci-analytics/test-requirements.txt'",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1210] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip install -U -e .",
                                "Obtaining file:///workspace/src/github.com/distributedci/dci-analytics",
                                "  Installing build dependencies: started",
                                "  Installing build dependencies: finished with status 'done'",
                                "  Checking if build backend supports build_editable: started",
                                "  Checking if build backend supports build_editable: finished with status 'done'",
                                "  Getting requirements to build editable: started",
                                "  Getting requirements to build editable: finished with status 'done'",
                                "  Preparing editable metadata (pyproject.toml): started",
                                "  Preparing editable metadata (pyproject.toml): finished with status 'done'",
                                "Building wheels for collected packages: dci-analytics",
                                "  Building editable for dci-analytics (pyproject.toml): started",
                                "  Building editable for dci-analytics (pyproject.toml): finished with status 'done'",
                                "  Created wheel for dci-analytics: filename=dci_analytics-0.1.0-0.editable-py3-none-any.whl size=6818 sha256=4fc9cf8d5c9cdf32672e47467b3dba210b19fd6fb4d4929c429e04971458ea9d",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-_i8gtlnw/wheels/bf/ed/55/222f84063c48a42bec37037edb4881a72c2b161d2c1168b8ee",
                                "Successfully built dci-analytics",
                                "Installing collected packages: dci-analytics",
                                "Successfully installed dci-analytics-0.1.0",
                                "unit finish: developpkg /workspace/src/github.com/distributedci/dci-analytics after 2.21 seconds",
                                "unit start: envreport ",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1220] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip freeze >.tox/unit/log/unit-0.log",
                                "unit finish: envreport  after 0.36 seconds",
                                "unit installed: alembic==1.18.4,amqp==5.3.1,attrs==26.1.0,black==26.5.1,blinker==1.9.0,boto3==1.43.26,botocore==1.43.26,cachetools==7.1.4,certifi==2026.5.20,cffi==2.0.0,charset-normalizer==3.4.7,click==8.4.1,colorama==0.4.6,cryptography==48.0.1,dci-analytics==0.1.0,-e git+file:///dev/null@4ba1a779be565de9a6f47d616151c8b0bd23f864#egg=dci_control_server,dciauth==4.0.1.post202603121510,-e git+file:///dev/null@c9b527d6c9d54be7760427c87d32f025cfb9f570#egg=dciclient,distlib==0.4.2,filelock==3.29.3,Flask==3.1.3,gevent==26.5.0,greenlet==3.5.1,gunicorn==26.0.0,idna==3.18,iniconfig==2.3.0,itsdangerous==2.2.0,Jinja2==3.1.6,jmespath==1.1.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,kombu==5.6.2,lxml==6.1.1,Mako==1.3.12,MarkupSafe==3.0.3,mock==5.2.0,mypy_extensions==1.1.0,numpy==2.4.6,packaging==26.2,pandas==3.0.3,passlib==1.7.4,pathspec==1.1.1,platformdirs==4.10.0,pluggy==1.6.0,prettytable==3.17.0,psycopg==3.3.4,psycopg-binary==3.3.4,psycopg-pool==3.3.1,pycparser==3.0,Pygments==2.20.0,PyJWT==2.13.0,pyOpenSSL==26.2.0,pyparsing==3.3.2,pyproject-api==1.10.1,pytest==9.0.3,python-dateutil==2.9.0.post0,python-discovery==1.4.0,pytokens==0.4.1,pytz==2026.2,redis==8.0.0,referencing==0.37.0,requests==2.34.2,rpds-py==2026.5.1,s3transfer==0.18.0,setuptools==82.0.1,six==1.17.0,SQLAlchemy==2.0.50,SQLAlchemy-Utils==0.42.1,tenacity==9.1.4,tomli_w==1.2.0,tox==4.55.1,typing_extensions==4.15.0,tzdata==2026.2,urllib3==2.7.0,vine==5.1.0,virtualenv==21.4.2,wcwidth==0.8.1,Werkzeug==3.1.8,wheel==0.47.0,zope.event==6.2,zope.interface==8.5",
                                "___________________________________ summary ____________________________________",
                                "  lint: skipped tests",
                                "  unit: skipped tests",
                                "  congratulations :)"
                            ],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000053-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:14.390151Z",
                            "start": "2026-06-10T18:49:30.267001Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000053",
                        "name": "Run tox without tests"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "tempfile",
                            "changed": true,
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "path": null,
                                    "prefix": "ansible.",
                                    "state": "file",
                                    "suffix": ""
                                }
                            },
                            "mode": "0600",
                            "owner": "root",
                            "path": "/tmp/ansible.y8cf0x97",
                            "size": 0,
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:20.273567Z",
                            "start": "2026-06-10T18:50:14.400183Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000054",
                        "name": "Create a tempfile to save tox showconfig"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version",
                                "--quiet"
                            ],
                            "delta": "0:00:00.218523",
                            "end": "2026-06-10 18:50:25.335630",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox --version --quiet",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/distributedci/dci-analytics",
                                    "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": "0a580a2a-001b-8924-4c25-000000000055-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:50:25.117107",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000055-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:26.394006Z",
                            "start": "2026-06-10T18:50:20.307804Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000055",
                        "name": "Detect tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "/workspace/.local/bin/tox   --showconfig   > /tmp/ansible.y8cf0x97",
                            "delta": "0:00:00.369697",
                            "end": "2026-06-10 18:50:31.633509",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox   --showconfig   > /tmp/ansible.y8cf0x97",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": "src/github.com/distributedci/dci-analytics",
                                    "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": "0a580a2a-001b-8924-4c25-000000000056-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:50:31.263812",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000056-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:32.660571Z",
                            "start": "2026-06-10T18:50:26.429469Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000056",
                        "name": "Get tox envlist config"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "tox_install_sibling_packages",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "project_dir": "src/github.com/distributedci/dci-analytics",
                                    "projects": [
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/distributedci/dci-control-server",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "4ba1a779be565de9a6f47d616151c8b0bd23f864",
                                            "name": "distributedci/dci-control-server",
                                            "required": true,
                                            "short_name": "dci-control-server",
                                            "src_dir": "src/github.com/distributedci/dci-control-server"
                                        },
                                        {
                                            "canonical_hostname": "github.com",
                                            "canonical_name": "github.com/distributedci/python-dciclient",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "c9b527d6c9d54be7760427c87d32f025cfb9f570",
                                            "name": "distributedci/python-dciclient",
                                            "required": true,
                                            "short_name": "python-dciclient",
                                            "src_dir": "src/github.com/distributedci/python-dciclient"
                                        },
                                        {
                                            "canonical_hostname": "gitlab.com",
                                            "canonical_name": "gitlab.com/softwarefactory-project/centosinfra-prod/dci-config",
                                            "checkout": "main",
                                            "checkout_description": "zuul branch",
                                            "commit": "401c077f4f321288dc08f65b2bd861fbd6a8e7ea",
                                            "name": "softwarefactory-project/centosinfra-prod/dci-config",
                                            "required": true,
                                            "short_name": "dci-config",
                                            "src_dir": "src/gitlab.com/softwarefactory-project/centosinfra-prod/dci-config"
                                        }
                                    ],
                                    "tox_constraints_file": null,
                                    "tox_package_name": null,
                                    "tox_show_config": "/tmp/ansible.y8cf0x97"
                                }
                            },
                            "msg": "No setup.cfg, no action needed"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:38.726067Z",
                            "start": "2026-06-10T18:50:32.664682Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000057",
                        "name": "Install any sibling python packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/ansible.y8cf0x97",
                                    "state": "absent"
                                },
                                "before": {
                                    "path": "/tmp/ansible.y8cf0x97",
                                    "state": "file"
                                }
                            },
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/ansible.y8cf0x97",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "absent",
                                    "unsafe_writes": false
                                }
                            },
                            "path": "/tmp/ansible.y8cf0x97",
                            "state": "absent"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:44.743904Z",
                            "start": "2026-06-10T18:50:38.732788Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000058",
                        "name": "Remove tempfile"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "debug",
                            "changed": false,
                            "msg": "/workspace/.local/bin/tox   -vv --skip-missing-interpreters=false"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:44.871172Z",
                            "start": "2026-06-10T18:50:44.763919Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000012",
                        "name": "Emit tox command"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:00:04.585537",
                            "end": "2026-06-10 18:50:54.508791",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox   -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/distributedci/dci-analytics",
                                    "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": "0a580a2a-001b-8924-4c25-000000000014-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:50:49.923254",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1345)\n  removing /workspace/src/github.com/distributedci/dci-analytics/.tox/log\nusing tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1345)\nskipping sdist step\npython3.12 (/usr/bin/python3.12) is {'executable': '/usr/bin/python3.12', 'implementation': 'CPython', 'version_info': [3, 12, 13, 'final', 0], 'version': '3.12.13 (main, Apr 16 2026, 22:51:04) [GCC 8.5.0 20210514 (Red Hat 8.5.0-28)]', 'is_64': True, 'sysplatform': 'linux', 'os_sep': '/', 'extra_version_info': None}\nlint uses /usr/bin/python3.12\nlint start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint\nlint reusing: /workspace/src/github.com/distributedci/dci-analytics/.tox/lint\nlint finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint after 0.05 seconds\nlint start: finishvenv \nlint finish: finishvenv  after 0.00 seconds\nlint start: envreport \nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1353] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip freeze >.tox/lint/log/lint-1.log\nlint finish: envreport  after 0.25 seconds\nlint installed: black==26.5.1,click==8.4.1,dci-analytics==0.1.0,flake8==7.3.0,flake8-colors==0.1.9,mccabe==0.7.0,mypy_extensions==1.1.0,packaging==26.2,pathspec==1.1.1,platformdirs==4.10.0,pycodestyle==2.14.0,pyflakes==3.4.0,pytokens==0.4.1,setuptools==82.0.1,wheel==0.47.0\nlint start: run-test-pre \nlint run-test-pre: PYTHONHASHSEED='2915422315'\nlint finish: run-test-pre  after 0.00 seconds\nlint start: run-test \nlint run-test: commands[0] | black --check dci_analytics\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1354] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/black --check dci_analytics\nAll done! \u2728 \ud83c\udf70 \u2728\n18 files would be left unchanged.\nlint run-test: commands[1] | black --check tests\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1361] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/black --check tests\nAll done! \u2728 \ud83c\udf70 \u2728\n8 files would be left unchanged.\nlint run-test: commands[2] | flake8 dci_analytics\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1368] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/flake8 dci_analytics\nlint run-test: commands[3] | flake8 tests\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1376] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/flake8 tests\nlint finish: run-test  after 1.56 seconds\nlint start: run-test-post \nlint finish: run-test-post  after 0.00 seconds\nunit uses /usr/bin/python3.12\nunit start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit\nunit reusing: /workspace/src/github.com/distributedci/dci-analytics/.tox/unit\nunit finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit after 0.05 seconds\nunit start: developpkg /workspace/src/github.com/distributedci/dci-analytics\n[1385] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python setup.py --name\n/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/lib/python3.12/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.\n!!\n\n        ********************************************************************************\n        Please consider removing the following classifiers in favor of a SPDX license expression:\n\n        License :: OSI Approved :: Apache Software License\n\n        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.\n        ********************************************************************************\n\n!!\n  self._finalize_license_expression()\n[1386] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -c 'import sys;  import json; print(json.dumps(sys.path))'\nunit develop-inst-noop: /workspace/src/github.com/distributedci/dci-analytics\nunit finish: developpkg /workspace/src/github.com/distributedci/dci-analytics after 0.30 seconds\nunit start: envreport \nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1387] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip freeze >.tox/unit/log/unit-1.log\nunit finish: envreport  after 0.34 seconds\nunit installed: alembic==1.18.4,amqp==5.3.1,attrs==26.1.0,black==26.5.1,blinker==1.9.0,boto3==1.43.26,botocore==1.43.26,cachetools==7.1.4,certifi==2026.5.20,cffi==2.0.0,charset-normalizer==3.4.7,click==8.4.1,colorama==0.4.6,cryptography==48.0.1,dci-analytics==0.1.0,-e git+file:///dev/null@4ba1a779be565de9a6f47d616151c8b0bd23f864#egg=dci_control_server,dciauth==4.0.1.post202603121510,-e git+file:///dev/null@c9b527d6c9d54be7760427c87d32f025cfb9f570#egg=dciclient,distlib==0.4.2,filelock==3.29.3,Flask==3.1.3,gevent==26.5.0,greenlet==3.5.1,gunicorn==26.0.0,idna==3.18,iniconfig==2.3.0,itsdangerous==2.2.0,Jinja2==3.1.6,jmespath==1.1.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,kombu==5.6.2,lxml==6.1.1,Mako==1.3.12,MarkupSafe==3.0.3,mock==5.2.0,mypy_extensions==1.1.0,numpy==2.4.6,packaging==26.2,pandas==3.0.3,passlib==1.7.4,pathspec==1.1.1,platformdirs==4.10.0,pluggy==1.6.0,prettytable==3.17.0,psycopg==3.3.4,psycopg-binary==3.3.4,psycopg-pool==3.3.1,pycparser==3.0,Pygments==2.20.0,PyJWT==2.13.0,pyOpenSSL==26.2.0,pyparsing==3.3.2,pyproject-api==1.10.1,pytest==9.0.3,python-dateutil==2.9.0.post0,python-discovery==1.4.0,pytokens==0.4.1,pytz==2026.2,redis==8.0.0,referencing==0.37.0,requests==2.34.2,rpds-py==2026.5.1,s3transfer==0.18.0,setuptools==82.0.1,six==1.17.0,SQLAlchemy==2.0.50,SQLAlchemy-Utils==0.42.1,tenacity==9.1.4,tomli_w==1.2.0,tox==4.55.1,typing_extensions==4.15.0,tzdata==2026.2,urllib3==2.7.0,vine==5.1.0,virtualenv==21.4.2,wcwidth==0.8.1,Werkzeug==3.1.8,wheel==0.47.0,zope.event==6.2,zope.interface==8.5\nunit start: run-test-pre \nunit run-test-pre: PYTHONHASHSEED='2915422315'\nunit finish: run-test-pre  after 0.00 seconds\nunit start: run-test \nunit run-test: commands[0] | py.test -v tests\nsetting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n[1396] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/py.test -v tests\n============================= test session starts ==============================\nplatform linux -- Python 3.12.13, pytest-9.0.3, pluggy-1.6.0 -- /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python\ncachedir: .tox/unit/.pytest_cache\nrootdir: /workspace/src/github.com/distributedci/dci-analytics\ncollecting ... collected 50 items\n\ntests/api/test_junit.py::test_generate_bar_chart_data PASSED             [  2%]\ntests/api/test_junit.py::test_dates PASSED                               [  4%]\ntests/api/test_junit.py::test_filter_jobs PASSED                         [  6%]\ntests/api/test_pipeline.py::test_sort_components PASSED                  [  8%]\ntests/synchronizers/test_components_coverage.py::test_update_component_coverage PASSED [ 10%]\ntests/synchronizers/test_jobs.py::test_get_tests PASSED                  [ 12%]\ntests/synchronizers/test_jobs.py::test_clean_doted_keys PASSED           [ 14%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_valid_data PASSED [ 16%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_missing_hardware_wrapper PASSED [ 18%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_invalid_hardware_type PASSED [ 20%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_with_id PASSED [ 22%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_without_id PASSED [ 24%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_none PASSED [ 26%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_with_ids PASSED [ 28%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_without_ids PASSED [ 30%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_none PASSED [ 32%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_dell_model PASSED [ 34%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_hpe_model PASSED [ 36%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_kvm_model PASSED [ 38%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_model_without_parenthesis PASSED [ 40%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_dell_not_provided_sku PASSED [ 42%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_broadcom_firmware PASSED [ 44%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_intel_firmware PASSED [ 46%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_mellanox_firmware PASSED [ 48%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_firmware_none PASSED [ 50%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_physical_function PASSED [ 52%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_virtual_function PASSED [ 54%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_non_pci_device PASSED [ 56%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_basic PASSED [ 58%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_cpu PASSED [ 60%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_memory PASSED [ 62%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_bios PASSED [ 64%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_network PASSED [ 66%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_storage PASSED [ 68%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_basic PASSED [ 70%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_cpu PASSED [ 72%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_memory PASSED [ 74%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_broadcom PASSED [ 76%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_intel PASSED [ 78%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_mellanox PASSED [ 80%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_virtual_function PASSED [ 82%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_storage PASSED [ 84%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_pci_accelerators PASSED [ 86%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_success PASSED [ 88%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_invalid_data PASSED [ 90%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_bare_metal PASSED [ 92%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_empty_children PASSED [ 94%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_missing_configuration PASSED [ 96%]\ntests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_cores_threads_as_strings PASSED [ 98%]\ntests/synchronizers/test_task_duration_cumulated.py::test__get_tasks_duration_cumulated PASSED [100%]\n\n=============================== warnings summary ===============================\n../dci-control-server/dci/db/query_dsl.py:41\n  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:41: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'\n    _operations = pp.oneOf(\" \".join(_operations))\n\n../dci-control-server/dci/db/query_dsl.py:45\n  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:45: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'\n    _unary_operations = pp.oneOf(\" \".join(_unary_operations))\n\n../dci-control-server/dci/db/query_dsl.py:52\n  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:52: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'\n    _lbop = pp.oneOf(\" \".join(_logical_operations))\n\n.tox/unit/lib/python3.12/site-packages/passlib/utils/__init__.py:854\n  /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/lib/python3.12/site-packages/passlib/utils/__init__.py:854: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13\n    from crypt import crypt as _crypt\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n======================== 50 passed, 4 warnings in 1.03s ========================\nunit finish: run-test  after 1.70 seconds\nunit start: run-test-post \nunit finish: run-test-post  after 0.00 seconds\n___________________________________ summary ____________________________________\n  lint: commands succeeded\n  unit: commands succeeded\n  congratulations :)",
                            "stdout_lines": [
                                "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1345)",
                                "  removing /workspace/src/github.com/distributedci/dci-analytics/.tox/log",
                                "using tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1345)",
                                "skipping sdist step",
                                "python3.12 (/usr/bin/python3.12) is {'executable': '/usr/bin/python3.12', 'implementation': 'CPython', 'version_info': [3, 12, 13, 'final', 0], 'version': '3.12.13 (main, Apr 16 2026, 22:51:04) [GCC 8.5.0 20210514 (Red Hat 8.5.0-28)]', 'is_64': True, 'sysplatform': 'linux', 'os_sep': '/', 'extra_version_info': None}",
                                "lint uses /usr/bin/python3.12",
                                "lint start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint",
                                "lint reusing: /workspace/src/github.com/distributedci/dci-analytics/.tox/lint",
                                "lint finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/lint after 0.05 seconds",
                                "lint start: finishvenv ",
                                "lint finish: finishvenv  after 0.00 seconds",
                                "lint start: envreport ",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1353] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/python -m pip freeze >.tox/lint/log/lint-1.log",
                                "lint finish: envreport  after 0.25 seconds",
                                "lint installed: black==26.5.1,click==8.4.1,dci-analytics==0.1.0,flake8==7.3.0,flake8-colors==0.1.9,mccabe==0.7.0,mypy_extensions==1.1.0,packaging==26.2,pathspec==1.1.1,platformdirs==4.10.0,pycodestyle==2.14.0,pyflakes==3.4.0,pytokens==0.4.1,setuptools==82.0.1,wheel==0.47.0",
                                "lint start: run-test-pre ",
                                "lint run-test-pre: PYTHONHASHSEED='2915422315'",
                                "lint finish: run-test-pre  after 0.00 seconds",
                                "lint start: run-test ",
                                "lint run-test: commands[0] | black --check dci_analytics",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1354] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/black --check dci_analytics",
                                "All done! \u2728 \ud83c\udf70 \u2728",
                                "18 files would be left unchanged.",
                                "lint run-test: commands[1] | black --check tests",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1361] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/black --check tests",
                                "All done! \u2728 \ud83c\udf70 \u2728",
                                "8 files would be left unchanged.",
                                "lint run-test: commands[2] | flake8 dci_analytics",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1368] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/flake8 dci_analytics",
                                "lint run-test: commands[3] | flake8 tests",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1376] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/lint/bin/flake8 tests",
                                "lint finish: run-test  after 1.56 seconds",
                                "lint start: run-test-post ",
                                "lint finish: run-test-post  after 0.00 seconds",
                                "unit uses /usr/bin/python3.12",
                                "unit start: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit",
                                "unit reusing: /workspace/src/github.com/distributedci/dci-analytics/.tox/unit",
                                "unit finish: getenv /workspace/src/github.com/distributedci/dci-analytics/.tox/unit after 0.05 seconds",
                                "unit start: developpkg /workspace/src/github.com/distributedci/dci-analytics",
                                "[1385] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python setup.py --name",
                                "/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/lib/python3.12/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.",
                                "!!",
                                "",
                                "        ********************************************************************************",
                                "        Please consider removing the following classifiers in favor of a SPDX license expression:",
                                "",
                                "        License :: OSI Approved :: Apache Software License",
                                "",
                                "        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.",
                                "        ********************************************************************************",
                                "",
                                "!!",
                                "  self._finalize_license_expression()",
                                "[1386] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -c 'import sys;  import json; print(json.dumps(sys.path))'",
                                "unit develop-inst-noop: /workspace/src/github.com/distributedci/dci-analytics",
                                "unit finish: developpkg /workspace/src/github.com/distributedci/dci-analytics after 0.30 seconds",
                                "unit start: envreport ",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1387] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python -m pip freeze >.tox/unit/log/unit-1.log",
                                "unit finish: envreport  after 0.34 seconds",
                                "unit installed: alembic==1.18.4,amqp==5.3.1,attrs==26.1.0,black==26.5.1,blinker==1.9.0,boto3==1.43.26,botocore==1.43.26,cachetools==7.1.4,certifi==2026.5.20,cffi==2.0.0,charset-normalizer==3.4.7,click==8.4.1,colorama==0.4.6,cryptography==48.0.1,dci-analytics==0.1.0,-e git+file:///dev/null@4ba1a779be565de9a6f47d616151c8b0bd23f864#egg=dci_control_server,dciauth==4.0.1.post202603121510,-e git+file:///dev/null@c9b527d6c9d54be7760427c87d32f025cfb9f570#egg=dciclient,distlib==0.4.2,filelock==3.29.3,Flask==3.1.3,gevent==26.5.0,greenlet==3.5.1,gunicorn==26.0.0,idna==3.18,iniconfig==2.3.0,itsdangerous==2.2.0,Jinja2==3.1.6,jmespath==1.1.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,kombu==5.6.2,lxml==6.1.1,Mako==1.3.12,MarkupSafe==3.0.3,mock==5.2.0,mypy_extensions==1.1.0,numpy==2.4.6,packaging==26.2,pandas==3.0.3,passlib==1.7.4,pathspec==1.1.1,platformdirs==4.10.0,pluggy==1.6.0,prettytable==3.17.0,psycopg==3.3.4,psycopg-binary==3.3.4,psycopg-pool==3.3.1,pycparser==3.0,Pygments==2.20.0,PyJWT==2.13.0,pyOpenSSL==26.2.0,pyparsing==3.3.2,pyproject-api==1.10.1,pytest==9.0.3,python-dateutil==2.9.0.post0,python-discovery==1.4.0,pytokens==0.4.1,pytz==2026.2,redis==8.0.0,referencing==0.37.0,requests==2.34.2,rpds-py==2026.5.1,s3transfer==0.18.0,setuptools==82.0.1,six==1.17.0,SQLAlchemy==2.0.50,SQLAlchemy-Utils==0.42.1,tenacity==9.1.4,tomli_w==1.2.0,tox==4.55.1,typing_extensions==4.15.0,tzdata==2026.2,urllib3==2.7.0,vine==5.1.0,virtualenv==21.4.2,wcwidth==0.8.1,Werkzeug==3.1.8,wheel==0.47.0,zope.event==6.2,zope.interface==8.5",
                                "unit start: run-test-pre ",
                                "unit run-test-pre: PYTHONHASHSEED='2915422315'",
                                "unit finish: run-test-pre  after 0.00 seconds",
                                "unit start: run-test ",
                                "unit run-test: commands[0] | py.test -v tests",
                                "setting PATH=/workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                                "[1396] /workspace/src/github.com/distributedci/dci-analytics$ /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/py.test -v tests",
                                "============================= test session starts ==============================",
                                "platform linux -- Python 3.12.13, pytest-9.0.3, pluggy-1.6.0 -- /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/bin/python",
                                "cachedir: .tox/unit/.pytest_cache",
                                "rootdir: /workspace/src/github.com/distributedci/dci-analytics",
                                "collecting ... collected 50 items",
                                "",
                                "tests/api/test_junit.py::test_generate_bar_chart_data PASSED             [  2%]",
                                "tests/api/test_junit.py::test_dates PASSED                               [  4%]",
                                "tests/api/test_junit.py::test_filter_jobs PASSED                         [  6%]",
                                "tests/api/test_pipeline.py::test_sort_components PASSED                  [  8%]",
                                "tests/synchronizers/test_components_coverage.py::test_update_component_coverage PASSED [ 10%]",
                                "tests/synchronizers/test_jobs.py::test_get_tests PASSED                  [ 12%]",
                                "tests/synchronizers/test_jobs.py::test_clean_doted_keys PASSED           [ 14%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_valid_data PASSED [ 16%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_missing_hardware_wrapper PASSED [ 18%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestHardwareInfoInit::test_init_invalid_hardware_type PASSED [ 20%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_with_id PASSED [ 22%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_without_id PASSED [ 24%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVendorString::test_parse_vendor_none PASSED [ 26%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_with_ids PASSED [ 28%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_without_ids PASSED [ 30%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseProductString::test_parse_product_none PASSED [ 32%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_dell_model PASSED [ 34%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_hpe_model PASSED [ 36%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_kvm_model PASSED [ 38%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_model_without_parenthesis PASSED [ 40%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseSystemModel::test_parse_dell_not_provided_sku PASSED [ 42%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_broadcom_firmware PASSED [ 44%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_intel_firmware PASSED [ 46%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_mellanox_firmware PASSED [ 48%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseFirmwareString::test_parse_firmware_none PASSED [ 50%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_physical_function PASSED [ 52%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_virtual_function PASSED [ 54%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestIsVirtualFunction::test_non_pci_device PASSED [ 56%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_basic PASSED [ 58%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_cpu PASSED [ 60%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_memory PASSED [ 62%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_bios PASSED [ 64%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_network PASSED [ 66%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseVM::test_parse_vm_storage PASSED [ 68%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_basic PASSED [ 70%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_cpu PASSED [ 72%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_memory PASSED [ 74%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_broadcom PASSED [ 76%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_intel PASSED [ 78%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_network_mellanox PASSED [ 80%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_virtual_function PASSED [ 82%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_storage PASSED [ 84%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestParseBareMetal::test_parse_bare_metal_pci_accelerators PASSED [ 86%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_success PASSED [ 88%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_invalid_data PASSED [ 90%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestNormalizeFunction::test_normalize_bare_metal PASSED [ 92%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_empty_children PASSED [ 94%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_missing_configuration PASSED [ 96%]",
                                "tests/synchronizers/test_normalization_jobs_extra_hardware.py::TestEdgeCases::test_cores_threads_as_strings PASSED [ 98%]",
                                "tests/synchronizers/test_task_duration_cumulated.py::test__get_tasks_duration_cumulated PASSED [100%]",
                                "",
                                "=============================== warnings summary ===============================",
                                "../dci-control-server/dci/db/query_dsl.py:41",
                                "  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:41: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'",
                                "    _operations = pp.oneOf(\" \".join(_operations))",
                                "",
                                "../dci-control-server/dci/db/query_dsl.py:45",
                                "  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:45: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'",
                                "    _unary_operations = pp.oneOf(\" \".join(_unary_operations))",
                                "",
                                "../dci-control-server/dci/db/query_dsl.py:52",
                                "  /workspace/src/github.com/distributedci/dci-control-server/dci/db/query_dsl.py:52: PyparsingDeprecationWarning: 'oneOf' deprecated - use 'one_of'",
                                "    _lbop = pp.oneOf(\" \".join(_logical_operations))",
                                "",
                                ".tox/unit/lib/python3.12/site-packages/passlib/utils/__init__.py:854",
                                "  /workspace/src/github.com/distributedci/dci-analytics/.tox/unit/lib/python3.12/site-packages/passlib/utils/__init__.py:854: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13",
                                "    from crypt import crypt as _crypt",
                                "",
                                "-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html",
                                "======================== 50 passed, 4 warnings in 1.03s ========================",
                                "unit finish: run-test  after 1.70 seconds",
                                "unit start: run-test-post ",
                                "unit finish: run-test-post  after 0.00 seconds",
                                "___________________________________ summary ____________________________________",
                                "  lint: commands succeeded",
                                "  unit: commands succeeded",
                                "  congratulations :)"
                            ],
                            "zuul_log_id": "0a580a2a-001b-8924-4c25-000000000014-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:50:55.479969Z",
                            "start": "2026-06-10T18:50:44.940015Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000014",
                        "name": "Run tox"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "tox_parse_output",
                            "changed": false,
                            "failed_when_result": false,
                            "file_comments": {},
                            "invocation": {
                                "module_args": {
                                    "tox_envlist": "default",
                                    "tox_output": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
                                    "workdir": "src/github.com/distributedci/dci-analytics"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:01.376347Z",
                            "start": "2026-06-10T18:50:55.489057Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000015",
                        "name": "Look for output"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "zuul_return",
                            "changed": false,
                            "false_condition": "file_comments.file_comments",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-8924-4c25-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:01.442612Z",
                            "start": "2026-06-10T18:51:01.395103Z"
                        },
                        "id": "0a580a2a-001b-8924-4c25-000000000016",
                        "name": "Return file comments to Zuul"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 9,
            "failures": 0,
            "ignored": 0,
            "ok": 13,
            "rescued": 0,
            "skipped": 4,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "0",
    "phase": "post",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/tox/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:51:16.142387Z",
                    "start": "2026-06-10T18:51:02.212117Z"
                },
                "id": "0a580a2a-001b-98d3-288b-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:02.287208Z",
                            "start": "2026-06-10T18:51:02.222039Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000007",
                        "name": "Set tox log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:02.332669Z",
                            "start": "2026-06-10T18:51:02.291789Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000008",
                        "name": "Set tox log path for single node"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "mode": "0755",
                                    "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/tox",
                                    "state": "directory"
                                },
                                "before": {
                                    "mode": "02755",
                                    "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/tox",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/tox",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "1000",
                            "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/work/logs/tox",
                            "size": 6,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:02.790109Z",
                            "start": "2026-06-10T18:51:02.338819Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000009",
                        "name": "Ensure local tox dir"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "zuul_use_fetch_output",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:02.863529Z",
                            "start": "2026-06-10T18:51:02.797043Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000a",
                        "name": "Ensure zuul-output tox dir"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_envlist is defined and tox_envlist != 'ALL' and tox_envlist",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:02.910034Z",
                            "start": "2026-06-10T18:51:02.871671Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000b",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.221671",
                            "end": "2026-06-10 18:51:08.280470",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0a580a2a-001b-98d3-288b-00000000000c-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:51:08.058799",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "3.28.0 imported from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0a580a2a-001b-98d3-288b-00000000000c-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:09.328513Z",
                            "start": "2026-06-10T18:51:02.949208Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000c",
                        "name": "Get tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "-l"
                            ],
                            "delta": "0:00:00.245849",
                            "end": "2026-06-10 18:51:14.597341",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox -l",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/distributedci/dci-analytics",
                                    "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": "0a580a2a-001b-98d3-288b-00000000000d-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:51:14.351492",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "lint\nunit",
                            "stdout_lines": [
                                "lint",
                                "unit"
                            ],
                            "zuul_log_id": "0a580a2a-001b-98d3-288b-00000000000d-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:15.600306Z",
                            "start": "2026-06-10T18:51:09.362783Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000d",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "envlist": [
                                    "lint",
                                    "unit"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:15.651903Z",
                            "start": "2026-06-10T18:51:15.603182Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000e",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "(tox_envlist is defined and tox_envlist == 'ALL') or (envlist is defined and not envlist)",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:15.944854Z",
                            "start": "2026-06-10T18:51:15.672835Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-00000000000f",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_all_environments.stdout_lines is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:15.988597Z",
                            "start": "2026-06-10T18:51:15.952341Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000010",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "copy",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "false_condition": "zuul_use_fetch_output",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_testenv": "lint"
                                },
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "false_condition": "zuul_use_fetch_output",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_testenv": "unit"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:16.063477Z",
                            "start": "2026-06-10T18:51:15.996909Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000011",
                        "name": "Copy tox logs"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "synchronize",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "failed": false,
                                    "failed_when_result": false,
                                    "msg": "synchronize uses rsync to function. rsync needs to connect to the remote host via ssh, docker client or a direct filesystem copy. This remote host is being accessed via kubectl instead so it cannot work.",
                                    "zj_testenv": "lint"
                                },
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "failed": false,
                                    "failed_when_result": false,
                                    "msg": "synchronize uses rsync to function. rsync needs to connect to the remote host via ssh, docker client or a direct filesystem copy. This remote host is being accessed via kubectl instead so it cannot work.",
                                    "zj_testenv": "unit"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-98d3-288b-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:16.142387Z",
                            "start": "2026-06-10T18:51:16.073207Z"
                        },
                        "id": "0a580a2a-001b-98d3-288b-000000000013",
                        "name": "Collect tox logs"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 6,
            "rescued": 0,
            "skipped": 6,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "1",
    "phase": "post",
    "playbook": "opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:51:22.906069Z",
                    "start": "2026-06-10T18:51:17.013839Z"
                },
                "id": "0a580a2a-001b-2cb6-6fbd-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "script",
                            "changed": true,
                            "exception": "NoneType: None\n",
                            "failed_when_result": false,
                            "msg": "non-zero return code",
                            "rc": 1,
                            "stderr": "/workspace/.ansible/tmp/ansible-tmp-1781117477.9338992-5-85593706279184/find-testr.sh: line 29: cd: /root/src/github.com/distributedci/dci-analytics: No such file or directory\nerror: \n",
                            "stderr_lines": [
                                "/workspace/.ansible/tmp/ansible-tmp-1781117477.9338992-5-85593706279184/find-testr.sh: line 29: cd: /root/src/github.com/distributedci/dci-analytics: No such file or directory",
                                "error: "
                            ],
                            "stdout": "",
                            "stdout_lines": []
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.622924Z",
                            "start": "2026-06-10T18:51:17.023578Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000007",
                        "name": "Find stestr or testr executable"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.659161Z",
                            "start": "2026-06-10T18:51:22.630707Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000009",
                        "name": "Get the list of directories with subunit files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "find",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.692594Z",
                            "start": "2026-06-10T18:51:22.666239Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-00000000000a",
                        "name": "Find any inflight partial subunit files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.730090Z",
                            "start": "2026-06-10T18:51:22.702816Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-00000000000c",
                        "name": "Copy any inflight subunit files"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "tempfile",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.766016Z",
                            "start": "2026-06-10T18:51:22.738161Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-00000000000f",
                        "name": "Create a temporary file to store the subunit stream"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.801922Z",
                            "start": "2026-06-10T18:51:22.775365Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000010",
                        "name": "Generate subunit file"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.837615Z",
                            "start": "2026-06-10T18:51:22.810642Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000012",
                        "name": "Copy the combined subunit file to the zuul work directory"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.871957Z",
                            "start": "2026-06-10T18:51:22.845254Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000013",
                        "name": "Remove the temporary file"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/abe0d52c4e734b18b4c37a6470e4366c/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:51:22.906069Z",
                            "start": "2026-06-10T18:51:22.879368Z"
                        },
                        "id": "0a580a2a-001b-2cb6-6fbd-000000000014",
                        "name": "Process and fetch subunit results"
                    }
                }
            ]
        }
    ],
    "stats": {
        "testrunner": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
}
]
