[
{
    "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:57:20.065369Z",
                    "start": "2026-06-10T18:57:17.499195Z"
                },
                "id": "0a580a2a-0013-b223-ff73-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": "1781117838",
                                    "epoch_int": "1781117838",
                                    "hour": "18",
                                    "iso8601": "2026-06-10T18:57:18Z",
                                    "iso8601_basic": "20260610T185718112876",
                                    "iso8601_basic_short": "20260610T185718",
                                    "iso8601_micro": "2026-06-10T18:57:18.112876Z",
                                    "minute": "57",
                                    "month": "06",
                                    "second": "18",
                                    "time": "18:57:18",
                                    "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/c9570dc56d3f45c2a927b07d64dc27a2/ansible/pre_playbook_0/ansible.cfg",
                                    "FLUENT_BIT_PORT": "tcp://10.43.21.195:2020",
                                    "FLUENT_BIT_PORT_2020_TCP": "tcp://10.43.21.195:2020",
                                    "FLUENT_BIT_PORT_2020_TCP_ADDR": "10.43.21.195",
                                    "FLUENT_BIT_PORT_2020_TCP_PORT": "2020",
                                    "FLUENT_BIT_PORT_2020_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_PORT_24224_TCP": "tcp://10.43.21.195:24224",
                                    "FLUENT_BIT_PORT_24224_TCP_ADDR": "10.43.21.195",
                                    "FLUENT_BIT_PORT_24224_TCP_PORT": "24224",
                                    "FLUENT_BIT_PORT_24224_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_PORT_5140_TCP": "tcp://10.43.21.195:5140",
                                    "FLUENT_BIT_PORT_5140_TCP_ADDR": "10.43.21.195",
                                    "FLUENT_BIT_PORT_5140_TCP_PORT": "5140",
                                    "FLUENT_BIT_PORT_5140_TCP_PROTO": "tcp",
                                    "FLUENT_BIT_SERVICE_HOST": "10.43.21.195",
                                    "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/c9570dc56d3f45c2a927b07d64dc27a2/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-ze04.softwarefactory-project.io",
                                    "K8S_PODIP": "10.42.0.19",
                                    "K8S_PODNAME": "zuul-executor-0",
                                    "KUBECONFIG": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/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": "3804349",
                                    "SSH_AUTH_SOCK": "/tmp/ssh-XXXXXXG6mv1k/agent.3804348",
                                    "TERM": "xterm",
                                    "TMP": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/tmp",
                                    "XDG_CACHE_HOME": "/var/cache/dhall",
                                    "ZUUL_ANSIBLE_SPLIT_STREAMS": "False",
                                    "ZUUL_JOBDIR": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2",
                                    "ZUUL_JOB_FAILURE_OUTPUT": "[]",
                                    "ZUUL_JOB_LOG_CONFIG": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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.09,
                                    "1m": 1.22,
                                    "5m": 1.09
                                },
                                "ansible_local": {},
                                "ansible_lsb": {},
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_memfree_mb": 1760,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 9096,
                                        "used": 6640
                                    },
                                    "real": {
                                        "free": 1760,
                                        "total": 15736,
                                        "used": 13976
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 15736,
                                "ansible_mounts": [
                                    {
                                        "block_available": 21392454,
                                        "block_size": 4096,
                                        "block_total": 25884155,
                                        "block_used": 4491701,
                                        "device": "/dev/vda4",
                                        "fstype": "xfs",
                                        "inode_available": 51300000,
                                        "inode_total": 51801024,
                                        "inode_used": 501024,
                                        "mount": "/etc/hosts",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 87623491584,
                                        "size_total": 106021498880,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work",
                                        "options": "rw,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 21392454,
                                        "block_size": 4096,
                                        "block_total": 25884155,
                                        "block_used": 4491701,
                                        "device": "/dev/vda4",
                                        "fstype": "xfs",
                                        "inode_available": 51300000,
                                        "inode_total": 51801024,
                                        "inode_used": 501024,
                                        "mount": "/etc/pki/ca-trust/extracted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 87623491584,
                                        "size_total": 106021498880,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/ansible/9",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/ansible",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/kube",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/ansible/pre_playbook_0",
                                        "options": "ro,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "size_total": 32145145856,
                                        "uuid": "N/A"
                                    },
                                    {
                                        "block_available": 5279654,
                                        "block_size": 4096,
                                        "block_total": 7847936,
                                        "block_used": 2568282,
                                        "device": "/dev/topolvm/571fb6b1-cbef-4881-8db1-8178c9a26ece",
                                        "fstype": "xfs",
                                        "inode_available": 15324564,
                                        "inode_total": 15728640,
                                        "inode_used": 404076,
                                        "mount": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/.ansible",
                                        "options": "rw,seclabel,nosuid,nodev,relatime,nouuid,attr2,inode64,logbufs=8,logbsize=32k,noquota,bind",
                                        "size_available": 21625462784,
                                        "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": 4198361,
                                "ansible_user_dir": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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:57:18.452988Z",
                            "start": "2026-06-10T18:57:17.505920Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-0000000000a3",
                        "name": "Gathering Facts"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:18.481690Z",
                            "start": "2026-06-10T18:57:18.460459Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-00000000000a",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "c95/dci/c9570dc56d3f45c2a927b07d64dc27a2"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-0000000000c6",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:18.534467Z",
                            "start": "2026-06-10T18:57:18.503147Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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.32\nTriggered by: https://github.com/distributedci/dci-analytics/pull/31\nEvent ID: 1eea0500-64fe-11f1-8b48-fc6bde5766fa\n"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:18.596677Z",
                            "start": "2026-06-10T18:57:18.545328Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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: 3160b905c864\nUsername: zuul\nDistro: RedHat 8.10\nProvider: k1s06\nRegion: \nLabel: zuul-worker-ubi8\nProduct Name: OpenStack Nova\nInterface IP: zuul-worker-ubi8-0000070095\n",
                                    "zj_item": "testrunner"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-000000000008",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:18.705063Z",
                            "start": "2026-06-10T18:57:18.604060Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-00000000000c",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "mode": "0755",
                                    "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "mode": "02755",
                                    "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/zuul-info",
                            "size": 6,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-00000000001b",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:19.138646Z",
                            "start": "2026-06-10T18:57:18.715957Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-00000000001d",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "localhost": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "d84a3925bed345dd1c05ba2adeb84b50662bbaab",
                            "dest": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "d84a3925bed345dd1c05ba2adeb84b50662bbaab",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/work/.ansible/tmp/ansible-tmp-1781117839.1836286-57-126436843093494/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "6367856cf5d6ccfb721c36a496d7301b",
                            "mode": "0644",
                            "owner": "1000",
                            "size": 15698,
                            "src": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/.ansible/tmp/ansible-tmp-1781117839.1836286-57-126436843093494/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-00000000001b",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:20.065369Z",
                            "start": "2026-06-10T18:57:19.146564Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-00000000001e",
                        "name": "Copy ansible inventory to logs dir"
                    }
                }
            ]
        },
        {
            "play": {
                "duration": {
                    "end": "2026-06-10T18:58:04.951318Z",
                    "start": "2026-06-10T18:57:20.070273Z"
                },
                "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-00000000002c",
                        "name": "start-zuul-console",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/start-zuul-console"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:25.809351Z",
                            "start": "2026-06-10T18:57:20.076226Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:25.849203Z",
                            "start": "2026-06-10T18:57:25.822832Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:25.898665Z",
                            "start": "2026-06-10T18:57:25.858688Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:25.933879Z",
                            "start": "2026-06-10T18:57:25.906485Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:25.967344Z",
                            "start": "2026-06-10T18:57:25.941603Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.011091Z",
                            "start": "2026-06-10T18:57:25.975452Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.044676Z",
                            "start": "2026-06-10T18:57:26.018893Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000039",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.089823Z",
                            "start": "2026-06-10T18:57:26.051937Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000059",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.129306Z",
                            "start": "2026-06-10T18:57:26.103156Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000059",
                        "name": "prepare-workspace",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.167334Z",
                            "start": "2026-06-10T18:57:26.141569Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000068",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.217601Z",
                            "start": "2026-06-10T18:57:26.181055Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000068",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.253129Z",
                            "start": "2026-06-10T18:57:26.226402Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-49:9023",
                                            "namespace": "main",
                                            "pod": "zuul-worker-ubi8-0000070095",
                                            "resources": {
                                                "cores": 0,
                                                "instances": 1,
                                                "ram": 0
                                            },
                                            "stream_port1": 41763,
                                            "stream_port2": 42437
                                        }
                                    ]
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:26.345687Z",
                            "start": "2026-06-10T18:57:26.266876Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-00000000007a",
                        "name": "Include rsync tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "oc",
                                "--context",
                                "main:zuul-worker/38-102-83-49:9023",
                                "--namespace",
                                "main",
                                "exec",
                                "zuul-worker-ubi8-0000070095",
                                "mkdir",
                                "src"
                            ],
                            "delta": "0:00:00.900688",
                            "end": "2026-06-10 18:57:27.703759",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "oc --context \"main:zuul-worker/38-102-83-49:9023\"\n   --namespace \"main\"\n   exec zuul-worker-ubi8-0000070095 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-0013-b223-ff73-000000000126-0-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:57:26.803071",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-0013-b223-ff73-000000000126-0-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-b223-ff73-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:27.765796Z",
                            "start": "2026-06-10T18:57:26.364810Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000078",
                        "name": "prepare-workspace-openshift",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/prepare-workspace-openshift"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:29.994804Z",
                            "start": "2026-06-10T18:57:27.775102Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000085",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:30.410158Z",
                            "start": "2026-06-10T18:57:30.007628Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000092",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:57:47.572448Z",
                            "start": "2026-06-10T18:57:30.423339Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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-0013-b223-ff73-000000000092",
                        "name": "ensure-output-dirs",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-output-dirs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:04.951318Z",
                            "start": "2026-06-10T18:57:47.579588Z"
                        },
                        "id": "0a580a2a-0013-b223-ff73-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:58:24.161992Z",
                    "start": "2026-06-10T18:58:05.706802Z"
                },
                "id": "0a580a2a-0013-4e06-ec39-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "bindep"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:05.783149Z",
                            "start": "2026-06-10T18:58:05.716587Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-000000000004",
                        "name": "Install binary dependencies"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "find.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:05.836152Z",
                            "start": "2026-06-10T18:58:05.798201Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:11.705883Z",
                            "start": "2026-06-10T18:58:05.849735Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:11.740298Z",
                            "start": "2026-06-10T18:58:11.713493Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.480673Z",
                            "start": "2026-06-10T18:58:11.747838Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.524944Z",
                            "start": "2026-06-10T18:58:17.487662Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.579198Z",
                            "start": "2026-06-10T18:58:17.532425Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.612984Z",
                            "start": "2026-06-10T18:58:17.586339Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.648615Z",
                            "start": "2026-06-10T18:58:17.622163Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.681940Z",
                            "start": "2026-06-10T18:58:17.655576Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.735149Z",
                            "start": "2026-06-10T18:58:17.689014Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-000000000021",
                        "name": "Include package tasks"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "test-setup"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:17.770944Z",
                            "start": "2026-06-10T18:58:17.748508Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:23.590288Z",
                            "start": "2026-06-10T18:58:17.796149Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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-0013-4e06-ec39-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:24.161992Z",
                            "start": "2026-06-10T18:58:23.628036Z"
                        },
                        "id": "0a580a2a-0013-4e06-ec39-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:58:50.623052Z",
                    "start": "2026-06-10T18:58:24.876444Z"
                },
                "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:24.911452Z",
                            "start": "2026-06-10T18:58:24.887120Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:24.938457Z",
                            "start": "2026-06-10T18:58:24.915033Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:24.964502Z",
                            "start": "2026-06-10T18:58:24.941815Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.004998Z",
                            "start": "2026-06-10T18:58:24.970643Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.048377Z",
                            "start": "2026-06-10T18:58:25.012379Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.091229Z",
                            "start": "2026-06-10T18:58:25.055250Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.124120Z",
                            "start": "2026-06-10T18:58:25.098618Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.166596Z",
                            "start": "2026-06-10T18:58:25.131184Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-000000000012",
                        "name": "Activate python using stow"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:25.201407Z",
                            "start": "2026-06-10T18:58:25.180026Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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.123506",
                            "end": "2026-06-10 18:58:30.353525",
                            "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-0013-f6da-51e5-000000000081-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:58:30.230019",
                            "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-0013-f6da-51e5-000000000081-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.396766Z",
                            "start": "2026-06-10T18:58:25.255155Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/RedHat.yaml"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.441224Z",
                            "start": "2026-06-10T18:58:31.404640Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.475898Z",
                            "start": "2026-06-10T18:58:31.450038Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.776981Z",
                            "start": "2026-06-10T18:58:31.512800Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.810868Z",
                            "start": "2026-06-10T18:58:31.785070Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:31.843245Z",
                            "start": "2026-06-10T18:58:31.818188Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-00000000008a",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.008970",
                            "end": "2026-06-10 18:58:36.600656",
                            "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-0013-f6da-51e5-00000000008b-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:58:36.591686",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0a580a2a-0013-f6da-51e5-00000000008b-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:37.644158Z",
                            "start": "2026-06-10T18:58:31.881936Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:37.716260Z",
                            "start": "2026-06-10T18:58:37.647210Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:37.778210Z",
                            "start": "2026-06-10T18:58:37.719999Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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.004924",
                            "end": "2026-06-10 18:58:42.542379",
                            "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-0013-f6da-51e5-000000000017-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:58:42.537455",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/.local/bin/tox",
                            "stdout_lines": [
                                "/workspace/.local/bin/tox"
                            ],
                            "zuul_log_id": "0a580a2a-0013-f6da-51e5-000000000017-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:43.531591Z",
                            "start": "2026-06-10T18:58:37.812420Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:43.581393Z",
                            "start": "2026-06-10T18:58:43.537943Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:43.885018Z",
                            "start": "2026-06-10T18:58:43.614436Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:44.337802Z",
                            "start": "2026-06-10T18:58:43.950089Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:44.372113Z",
                            "start": "2026-06-10T18:58:44.345812Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-00000000001c",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.204048",
                            "end": "2026-06-10 18:58:49.478039",
                            "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-0013-f6da-51e5-00000000001e-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:58:49.273991",
                            "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-0013-f6da-51e5-00000000001e-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:50.589371Z",
                            "start": "2026-06-10T18:58:44.406648Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-0013-f6da-51e5-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:50.623052Z",
                            "start": "2026-06-10T18:58:50.597143Z"
                        },
                        "id": "0a580a2a-0013-f6da-51e5-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-10T19:03:01.182097Z",
                    "start": "2026-06-10T18:58:51.337093Z"
                },
                "id": "0a580a2a-0013-f908-db62-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.010897",
                            "end": "2026-06-10 18:58:56.296893",
                            "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-0013-f908-db62-000000000004-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 18:58:56.285996",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/src/github.com/distributedci/dci-analytics",
                            "stdout_lines": [
                                "/workspace/src/github.com/distributedci/dci-analytics"
                            ],
                            "zuul_log_id": "0a580a2a-0013-f908-db62-000000000004-1-testrunner"
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T18:58:57.347700Z",
                            "start": "2026-06-10T18:58:51.358529Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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:58:57.431558Z",
                            "start": "2026-06-10T18:58:57.360023Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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: python3.12-setuptools-68.2.2-5.el8_10.noarch",
                                "Installed: postgresql-server-10.23-4.module+el8.9.0+21317+d2c6bf8a.x86_64",
                                "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"
                            ]
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:06.676878Z",
                            "start": "2026-06-10T18:58:57.434415Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-000000000006",
                        "name": "Install required packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-tox"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:06.705858Z",
                            "start": "2026-06-10T19:00:06.683125Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-000000000007",
                        "name": "Install tox"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:06.758126Z",
                            "start": "2026-06-10T19:00:06.739389Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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.101014",
                            "end": "2026-06-10 19:00:11.837304",
                            "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-0013-f908-db62-00000000009a-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:00:11.736290",
                            "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-0013-f908-db62-00000000009a-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:12.886704Z",
                            "start": "2026-06-10T19:00:06.802350Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip/tasks/RedHat.yaml"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:12.923244Z",
                            "start": "2026-06-10T19:00:12.889642Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:12.950384Z",
                            "start": "2026-06-10T19:00:12.926744Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:13.259472Z",
                            "start": "2026-06-10T19:00:12.966753Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:13.288439Z",
                            "start": "2026-06-10T19:00:13.264245Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:13.316941Z",
                            "start": "2026-06-10T19:00:13.292955Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-0000000000a3",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.009414",
                            "end": "2026-06-10 19:00:18.187677",
                            "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-0013-f908-db62-0000000000a4-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:00:18.178263",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0a580a2a-0013-f908-db62-0000000000a4-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:19.252195Z",
                            "start": "2026-06-10T19:00:13.338782Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:19.331745Z",
                            "start": "2026-06-10T19:00:19.258771Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000098",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:19.413718Z",
                            "start": "2026-06-10T19:00:19.338588Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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.008431",
                            "end": "2026-06-10 19:00:24.179218",
                            "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-0013-f908-db62-000000000046-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:00:24.170787",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/workspace/.local/bin/tox",
                            "stdout_lines": [
                                "/workspace/.local/bin/tox"
                            ],
                            "zuul_log_id": "0a580a2a-0013-f908-db62-000000000046-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:25.205620Z",
                            "start": "2026-06-10T19:00:19.454663Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:25.257811Z",
                            "start": "2026-06-10T19:00:25.212371Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:25.582181Z",
                            "start": "2026-06-10T19:00:25.323125Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:26.050190Z",
                            "start": "2026-06-10T19:00:25.617845Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:26.084399Z",
                            "start": "2026-06-10T19:00:26.058403Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-00000000004b",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.235196",
                            "end": "2026-06-10 19:00:31.156495",
                            "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-0013-f908-db62-00000000004d-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:00:30.921299",
                            "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-0013-f908-db62-00000000004d-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:32.209763Z",
                            "start": "2026-06-10T19:00:26.122120Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-0013-f908-db62-000000000043",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:00:32.243568Z",
                            "start": "2026-06-10T19:00:32.217104Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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": "187b77be7722350fc3dd20b98b9d686fbbb45213",
                                        "name": "distributedci/dci-analytics",
                                        "required": false,
                                        "short_name": "dci-analytics",
                                        "src_dir": "src/github.com/distributedci/dci-analytics"
                                    },
                                    "stat": {
                                        "atime": 1781117849.490216,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "1ba35064fed1c698840bf8f23af34af1e42d32e1",
                                        "ctime": 1781117849.490216,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 327413729,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117825.759164,
                                        "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": 1781117849.5412176,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "f270aee2e10540b70349cbabd822a21c2fb555d0",
                                        "ctime": 1781117849.5412176,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 117546892,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117826.5001838,
                                        "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": 1781117849.7932255,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "ad3395704c4007032ce26a4301b15abf23543967",
                                        "ctime": 1781117849.7932255,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 109600255,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117826.689189,
                                        "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-10T19:00:55.185841Z",
                            "start": "2026-06-10T19:00:32.256092Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:00:55.278690Z",
                            "start": "2026-06-10T19:00:55.198134Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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": "187b77be7722350fc3dd20b98b9d686fbbb45213",
                                        "name": "distributedci/dci-analytics",
                                        "required": false,
                                        "short_name": "dci-analytics",
                                        "src_dir": "src/github.com/distributedci/dci-analytics"
                                    },
                                    "stat": {
                                        "atime": 1781117849.490216,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "49a08f2f93b1c489179099a7888b1d079c406371",
                                        "ctime": 1781117849.490216,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 327413725,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117825.758164,
                                        "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": 1781117849.5402176,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "7ae231b431e065d5589545f62e3c391d2acc3172",
                                        "ctime": 1781117849.5402176,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 117546890,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117826.499184,
                                        "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": 1781117849.7922254,
                                        "attr_flags": "",
                                        "attributes": [],
                                        "block_size": 4096,
                                        "blocks": 8,
                                        "charset": "us-ascii",
                                        "checksum": "bee3e7afb93f992ab773081a0f927bd150f7be2a",
                                        "ctime": 1781117849.7922254,
                                        "dev": 51,
                                        "device_type": 0,
                                        "executable": false,
                                        "exists": true,
                                        "gid": 0,
                                        "gr_name": "root",
                                        "inode": 109600252,
                                        "isblk": false,
                                        "ischr": false,
                                        "isdir": false,
                                        "isfifo": false,
                                        "isgid": false,
                                        "islnk": false,
                                        "isreg": true,
                                        "issock": false,
                                        "isuid": false,
                                        "mimetype": "text/plain",
                                        "mode": "0644",
                                        "mtime": 1781117826.688189,
                                        "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-10T19:01:18.022390Z",
                            "start": "2026-06-10T19:00:55.283848Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:01:18.115748Z",
                            "start": "2026-06-10T19:01:18.028991Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:01:18.175209Z",
                            "start": "2026-06-10T19:01:18.122219Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:01:52.244953Z",
                            "start": "2026-06-10T19:01:18.182584Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:02:26.565384Z",
                            "start": "2026-06-10T19:01:52.251309Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:03:01.053487Z",
                            "start": "2026-06-10T19:02:26.571809Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:03:01.182097Z",
                            "start": "2026-06-10T19:03:01.058380Z"
                        },
                        "id": "0a580a2a-0013-f908-db62-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-10T19:04:50.830870Z",
                    "start": "2026-06-10T19:03:01.921080Z"
                },
                "id": "0a580a2a-0013-3abb-fda1-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "sudo",
                                "-n",
                                "true"
                            ],
                            "delta": "0:00:00.038550",
                            "end": "2026-06-10 19:03:06.923340",
                            "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-0013-3abb-fda1-000000000008-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:03:06.884790",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-0013-3abb-fda1-000000000008-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:07.975929Z",
                            "start": "2026-06-10T19:03:01.943770Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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.009919",
                            "end": "2026-06-10 19:03:12.813050",
                            "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-0013-3abb-fda1-000000000009-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:03:12.803131",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-0013-3abb-fda1-000000000009-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:13.807243Z",
                            "start": "2026-06-10T19:03:08.006748Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000009",
                        "name": "Remove sudo access for zuul user."
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "! sudo -n true",
                            "delta": "0:00:00.029390",
                            "end": "2026-06-10 19:03:18.731448",
                            "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-0013-3abb-fda1-00000000000a-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:03:18.702058",
                            "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-0013-3abb-fda1-00000000000a-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:19.782230Z",
                            "start": "2026-06-10T19:03:13.823037Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:19.830450Z",
                            "start": "2026-06-10T19:03:19.793821Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:19.874814Z",
                            "start": "2026-06-10T19:03:19.838362Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:19.918912Z",
                            "start": "2026-06-10T19:03:19.882619Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000010",
                        "name": "Record file location"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "siblings.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:03:19.957746Z",
                            "start": "2026-06-10T19:03:19.926303Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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:36.216402",
                            "end": "2026-06-10 19:04:01.169086",
                            "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-0013-3abb-fda1-000000000053-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:03:24.952684",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1030)\nusing tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1030)\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[1037] /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 2529ms\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[1063] /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 95.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 4.96 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[1069] /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.28 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[1070] /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 2011ms\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[1095] /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 137.5 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 58.4 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 56.2 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 57.1 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 58.9 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 51.8 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 62.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 52.3 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 52.4 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 62.6 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 60.3 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 44.9 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=15eaeb411a5559dcdf5f2d24846ad0a5a17c5acb5db010a4fd8bc693c12a2496\n  Stored in directory: /tmp/pip-ephem-wheel-cache-hofxpr0w/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=1b6e58a80dffca6b3c8349268224baf25473f4f7790085341f62fbcc14f7503e\n  Stored in directory: /tmp/pip-ephem-wheel-cache-hofxpr0w/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 28.04 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[1127] /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=8150651b14394ad5561e6363f792182b14ff052507ad562789f132d326d3b56f\n  Stored in directory: /tmp/pip-ephem-wheel-cache-mqs42j8n/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.23 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[1137] /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.38 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 1030)",
                                "using tox-3.28.0 from /workspace/.local/lib/python3.6/site-packages/tox/__init__.py (pid 1030)",
                                "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",
                                "[1037] /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 2529ms",
                                "  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",
                                "[1063] /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 95.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 4.96 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",
                                "[1069] /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.28 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",
                                "[1070] /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 2011ms",
                                "  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",
                                "[1095] /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 137.5 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 58.4 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 56.2 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 57.1 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 58.9 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 51.8 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 62.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 52.3 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 52.4 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 62.6 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 60.3 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 44.9 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=15eaeb411a5559dcdf5f2d24846ad0a5a17c5acb5db010a4fd8bc693c12a2496",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-hofxpr0w/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=1b6e58a80dffca6b3c8349268224baf25473f4f7790085341f62fbcc14f7503e",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-hofxpr0w/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 28.04 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",
                                "[1127] /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=8150651b14394ad5561e6363f792182b14ff052507ad562789f132d326d3b56f",
                                "  Stored in directory: /tmp/pip-ephem-wheel-cache-mqs42j8n/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.23 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",
                                "[1137] /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.38 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-0013-3abb-fda1-000000000053-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:02.227377Z",
                            "start": "2026-06-10T19:03:20.000902Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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.lrnrk84j",
                            "size": 0,
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:08.396140Z",
                            "start": "2026-06-10T19:04:02.236240Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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.220089",
                            "end": "2026-06-10 19:04:13.600456",
                            "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-0013-3abb-fda1-000000000055-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:04:13.380367",
                            "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-0013-3abb-fda1-000000000055-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:14.704674Z",
                            "start": "2026-06-10T19:04:08.431261Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000055",
                        "name": "Detect tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "/workspace/.local/bin/tox   --showconfig   > /tmp/ansible.lrnrk84j",
                            "delta": "0:00:00.371067",
                            "end": "2026-06-10 19:04:20.138699",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/workspace/.local/bin/tox   --showconfig   > /tmp/ansible.lrnrk84j",
                                    "_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-0013-3abb-fda1-000000000056-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:04:19.767632",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0a580a2a-0013-3abb-fda1-000000000056-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:21.192689Z",
                            "start": "2026-06-10T19:04:14.740608Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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.lrnrk84j"
                                }
                            },
                            "msg": "No setup.cfg, no action needed"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:27.207457Z",
                            "start": "2026-06-10T19:04:21.199393Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000057",
                        "name": "Install any sibling python packages"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/ansible.lrnrk84j",
                                    "state": "absent"
                                },
                                "before": {
                                    "path": "/tmp/ansible.lrnrk84j",
                                    "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.lrnrk84j",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "absent",
                                    "unsafe_writes": false
                                }
                            },
                            "path": "/tmp/ansible.lrnrk84j",
                            "state": "absent"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:33.393596Z",
                            "start": "2026-06-10T19:04:27.214206Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000058",
                        "name": "Remove tempfile"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "debug",
                            "changed": false,
                            "msg": "/workspace/.local/bin/tox   -vv --skip-missing-interpreters=false"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:33.511435Z",
                            "start": "2026-06-10T19:04:33.456013Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-000000000012",
                        "name": "Emit tox command"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:00:05.047086",
                            "end": "2026-06-10 19:04:43.565862",
                            "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-0013-3abb-fda1-000000000014-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:04:38.518776",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "using tox.ini: /workspace/src/github.com/distributedci/dci-analytics/tox.ini (pid 1262)\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 1262)\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.04 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[1270] /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.29 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='3832105339'\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[1271] /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[1282] /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[1293] /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[1305] /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.61 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.06 seconds\nunit start: developpkg /workspace/src/github.com/distributedci/dci-analytics\n[1318] /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[1319] /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.37 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[1320] /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.35 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='3832105339'\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[1329] /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.07s ========================\nunit finish: run-test  after 1.95 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 1262)",
                                "  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 1262)",
                                "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.04 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",
                                "[1270] /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.29 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='3832105339'",
                                "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",
                                "[1271] /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",
                                "[1282] /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",
                                "[1293] /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",
                                "[1305] /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.61 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.06 seconds",
                                "unit start: developpkg /workspace/src/github.com/distributedci/dci-analytics",
                                "[1318] /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()",
                                "[1319] /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.37 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",
                                "[1320] /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.35 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='3832105339'",
                                "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",
                                "[1329] /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.07s ========================",
                                "unit finish: run-test  after 1.95 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-0013-3abb-fda1-000000000014-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:44.644924Z",
                            "start": "2026-06-10T19:04:33.547221Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:50.764890Z",
                            "start": "2026-06-10T19:04:44.652944Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-0013-3abb-fda1-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:50.830870Z",
                            "start": "2026-06-10T19:04:50.783672Z"
                        },
                        "id": "0a580a2a-0013-3abb-fda1-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-10T19:05:05.308248Z",
                    "start": "2026-06-10T19:04:51.553364Z"
                },
                "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:51.627643Z",
                            "start": "2026-06-10T19:04:51.563419Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-000000000007",
                        "name": "Set tox log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:51.658645Z",
                            "start": "2026-06-10T19:04:51.630934Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-000000000008",
                        "name": "Set tox log path for single node"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "mode": "0755",
                                    "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/tox",
                                    "state": "directory"
                                },
                                "before": {
                                    "mode": "02755",
                                    "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/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/c9570dc56d3f45c2a927b07d64dc27a2/work/logs/tox",
                            "size": 6,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:52.121240Z",
                            "start": "2026-06-10T19:04:51.661453Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:52.176635Z",
                            "start": "2026-06-10T19:04:52.130437Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:52.219972Z",
                            "start": "2026-06-10T19:04:52.183778Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-00000000000b",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.229678",
                            "end": "2026-06-10 19:04:57.498098",
                            "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-0013-508e-0139-00000000000c-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:04:57.268420",
                            "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-0013-508e-0139-00000000000c-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:04:58.550370Z",
                            "start": "2026-06-10T19:04:52.258130Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-00000000000c",
                        "name": "Get tox version"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/workspace/.local/bin/tox",
                                "-l"
                            ],
                            "delta": "0:00:00.246212",
                            "end": "2026-06-10 19:05:03.613441",
                            "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-0013-508e-0139-00000000000d-1-testrunner",
                                    "zuul_no_log": false,
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-06-10 19:05:03.367229",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "lint\nunit",
                            "stdout_lines": [
                                "lint",
                                "unit"
                            ],
                            "zuul_log_id": "0a580a2a-0013-508e-0139-00000000000d-1-testrunner"
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:04.719131Z",
                            "start": "2026-06-10T19:04:58.584839Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-00000000000d",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "testrunner": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "envlist": [
                                    "lint",
                                    "unit"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0a580a2a-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:04.780746Z",
                            "start": "2026-06-10T19:05:04.725611Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:05.071695Z",
                            "start": "2026-06-10T19:05:04.814824Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:05.111898Z",
                            "start": "2026-06-10T19:05:05.076347Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:05.194303Z",
                            "start": "2026-06-10T19:05:05.116953Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-0013-508e-0139-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:05.308248Z",
                            "start": "2026-06-10T19:05:05.203746Z"
                        },
                        "id": "0a580a2a-0013-508e-0139-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-10T19:05:11.923496Z",
                    "start": "2026-06-10T19:05:06.049064Z"
                },
                "id": "0a580a2a-0013-0c68-daf7-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-1781118306.9853532-5-208471548931336/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-1781118306.9853532-5-208471548931336/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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.651225Z",
                            "start": "2026-06-10T19:05:06.058640Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.685065Z",
                            "start": "2026-06-10T19:05:11.658397Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.718046Z",
                            "start": "2026-06-10T19:05:11.692085Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.755667Z",
                            "start": "2026-06-10T19:05:11.728264Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.790123Z",
                            "start": "2026-06-10T19:05:11.763852Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.823844Z",
                            "start": "2026-06-10T19:05:11.797933Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.857785Z",
                            "start": "2026-06-10T19:05:11.831159Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.890809Z",
                            "start": "2026-06-10T19:05:11.864904Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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-0013-0c68-daf7-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/c9570dc56d3f45c2a927b07d64dc27a2/untrusted/project_0/opendev.org/zuul/zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-06-10T19:05:11.923496Z",
                            "start": "2026-06-10T19:05:11.897759Z"
                        },
                        "id": "0a580a2a-0013-0c68-daf7-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
}
]
