2026-02-28 00:35:26.994391 | Job console starting 2026-02-28 00:35:27.005664 | Updating git repos 2026-02-28 00:35:27.040816 | Cloning repos into workspace 2026-02-28 00:35:27.095022 | Restoring repo states 2026-02-28 00:35:27.108210 | Merging changes 2026-02-28 00:35:27.623078 | Checking out repos 2026-02-28 00:35:27.861594 | Preparing playbooks 2026-02-28 00:35:28.770094 | Running Ansible setup 2026-02-28 00:35:33.269933 | PRE-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/pre.yaml@main] 2026-02-28 00:35:33.865213 | 2026-02-28 00:35:33.865360 | PLAY [localhost] 2026-02-28 00:35:33.873190 | 2026-02-28 00:35:33.873259 | TASK [Gathering Facts] 2026-02-28 00:35:34.744706 | localhost | ok 2026-02-28 00:35:34.754425 | 2026-02-28 00:35:34.754501 | TASK [Setup log path fact] 2026-02-28 00:35:34.775107 | localhost | ok 2026-02-28 00:35:34.788340 | 2026-02-28 00:35:34.788446 | TASK [set-zuul-log-path-fact : Set log path for a build] 2026-02-28 00:35:34.820299 | localhost | ok 2026-02-28 00:35:34.827049 | 2026-02-28 00:35:34.827121 | TASK [emit-job-header : Print job information] 2026-02-28 00:35:34.870019 | # Job Information 2026-02-28 00:35:34.870249 | Ansible Version: 2.16.16 2026-02-28 00:35:34.870297 | Job: ansible-collection-kubernetes-molecule-helm 2026-02-28 00:35:34.870330 | Pipeline: check 2026-02-28 00:35:34.870361 | Executor: 0a8996d2b663 2026-02-28 00:35:34.870390 | Triggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/233 2026-02-28 00:35:34.870423 | Event ID: 42d4a9f0-143d-11f1-8055-a157a4e3b739 2026-02-28 00:35:34.874690 | 2026-02-28 00:35:34.874792 | LOOP [emit-job-header : Print node information] 2026-02-28 00:35:34.955939 | localhost | ok: 2026-02-28 00:35:34.956167 | localhost | # Node Information 2026-02-28 00:35:34.956216 | localhost | Inventory Hostname: controller 2026-02-28 00:35:34.956246 | localhost | Hostname: np0000157428 2026-02-28 00:35:34.956272 | localhost | Username: zuul 2026-02-28 00:35:34.956302 | localhost | Distro: Debian 13.3 2026-02-28 00:35:34.956328 | localhost | Provider: yul1 2026-02-28 00:35:34.956354 | localhost | Region: ca-ymq-1 2026-02-28 00:35:34.956378 | localhost | Label: debian-trixie 2026-02-28 00:35:34.956402 | localhost | Product Name: OpenStack Nova 2026-02-28 00:35:34.956427 | localhost | Interface IP: 199.204.45.3 2026-02-28 00:35:34.974581 | 2026-02-28 00:35:34.974742 | TASK [log-inventory : Ensure Zuul Ansible directory exists] 2026-02-28 00:35:35.346215 | localhost -> localhost | changed 2026-02-28 00:35:35.355802 | 2026-02-28 00:35:35.355941 | TASK [log-inventory : Copy ansible inventory to logs dir] 2026-02-28 00:35:36.161612 | localhost -> localhost | changed 2026-02-28 00:35:36.197398 | 2026-02-28 00:35:36.197489 | PLAY [all] 2026-02-28 00:35:36.204271 | 2026-02-28 00:35:36.204334 | TASK [add-build-sshkey : Check to see if ssh key was already created for this build] 2026-02-28 00:35:36.431939 | controller -> localhost | ok 2026-02-28 00:35:36.441786 | 2026-02-28 00:35:36.441848 | TASK [add-build-sshkey : Create a new key in workspace based on build UUID] 2026-02-28 00:35:36.474325 | controller | ok 2026-02-28 00:35:36.489808 | controller | included: /var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey/tasks/create-key-and-replace.yaml 2026-02-28 00:35:36.494345 | 2026-02-28 00:35:36.494407 | TASK [add-build-sshkey : Create Temp SSH key] 2026-02-28 00:35:37.949226 | controller -> localhost | Generating public/private rsa key pair. 2026-02-28 00:35:37.949467 | controller -> localhost | Your identification has been saved in /var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/2ff5fab763b14ed8abe0f3accf502193_id_rsa 2026-02-28 00:35:37.949499 | controller -> localhost | Your public key has been saved in /var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/2ff5fab763b14ed8abe0f3accf502193_id_rsa.pub 2026-02-28 00:35:37.949521 | controller -> localhost | The key fingerprint is: 2026-02-28 00:35:37.949542 | controller -> localhost | SHA256:5p+oL+T3COA8+87irK4cOrgM6lNO2TPlZ7sh+YdOPA4 zuul-build-sshkey 2026-02-28 00:35:37.949583 | controller -> localhost | The key's randomart image is: 2026-02-28 00:35:37.949603 | controller -> localhost | +---[RSA 3072]----+ 2026-02-28 00:35:37.949631 | controller -> localhost | | | 2026-02-28 00:35:37.949651 | controller -> localhost | | | 2026-02-28 00:35:37.949670 | controller -> localhost | | | 2026-02-28 00:35:37.949689 | controller -> localhost | | . | 2026-02-28 00:35:37.949707 | controller -> localhost | | + o S | 2026-02-28 00:35:37.949726 | controller -> localhost | | * =.+oo | 2026-02-28 00:35:37.949744 | controller -> localhost | |o.+ +o+E+=o | 2026-02-28 00:35:37.949762 | controller -> localhost | |O..o.+o.B*oo | 2026-02-28 00:35:37.949783 | controller -> localhost | |*O+o++===** | 2026-02-28 00:35:37.949802 | controller -> localhost | +----[SHA256]-----+ 2026-02-28 00:35:37.949855 | controller -> localhost | ok: Runtime: 0:00:01.029058 2026-02-28 00:35:37.954622 | 2026-02-28 00:35:37.954690 | TASK [add-build-sshkey : Remote setup ssh keys (linux)] 2026-02-28 00:35:37.987703 | controller | ok 2026-02-28 00:35:37.995818 | controller | included: /var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey/tasks/remote-linux.yaml 2026-02-28 00:35:38.002545 | 2026-02-28 00:35:38.002608 | TASK [add-build-sshkey : Remove previously added zuul-build-sshkey] 2026-02-28 00:35:38.028663 | controller | skipping: Conditional result was False 2026-02-28 00:35:38.037897 | 2026-02-28 00:35:38.037965 | TASK [add-build-sshkey : Enable access via build key on all nodes] 2026-02-28 00:35:38.548308 | controller | changed 2026-02-28 00:35:38.553183 | 2026-02-28 00:35:38.553249 | TASK [add-build-sshkey : Make sure user has a .ssh] 2026-02-28 00:35:38.759934 | controller | ok 2026-02-28 00:35:38.764149 | 2026-02-28 00:35:38.764213 | TASK [add-build-sshkey : Install build private key as SSH key on all nodes] 2026-02-28 00:35:39.301425 | controller | changed 2026-02-28 00:35:39.305365 | 2026-02-28 00:35:39.305450 | TASK [add-build-sshkey : Install build public key as SSH key on all nodes] 2026-02-28 00:35:39.823111 | controller | changed 2026-02-28 00:35:39.827427 | 2026-02-28 00:35:39.827497 | TASK [add-build-sshkey : Remote setup ssh keys (windows)] 2026-02-28 00:35:39.850035 | controller | skipping: Conditional result was False 2026-02-28 00:35:39.857594 | 2026-02-28 00:35:39.857683 | TASK [remove-zuul-sshkey : Remove master key from local agent] 2026-02-28 00:35:40.206352 | controller -> localhost | changed 2026-02-28 00:35:40.219250 | 2026-02-28 00:35:40.219327 | TASK [add-build-sshkey : Add back temp key] 2026-02-28 00:35:40.485016 | controller -> localhost | Identity added: /var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/2ff5fab763b14ed8abe0f3accf502193_id_rsa (zuul-build-sshkey) 2026-02-28 00:35:40.485269 | controller -> localhost | ok: Runtime: 0:00:00.014864 2026-02-28 00:35:40.490664 | 2026-02-28 00:35:40.490730 | TASK [add-build-sshkey : Verify we can still SSH to all nodes] 2026-02-28 00:35:40.818403 | controller | ok 2026-02-28 00:35:40.822317 | 2026-02-28 00:35:40.822381 | TASK [add-build-sshkey : Verify we can still SSH to all nodes (windows)] 2026-02-28 00:35:40.846897 | controller | skipping: Conditional result was False 2026-02-28 00:35:40.858102 | 2026-02-28 00:35:40.858191 | TASK [prepare-workspace : Start zuul_console daemon.] 2026-02-28 00:35:41.201848 | controller | ok 2026-02-28 00:35:41.208254 | 2026-02-28 00:35:41.208321 | TASK [prepare-workspace : Synchronize src repos to workspace directory.] 2026-02-28 00:35:42.185076 | controller | Output suppressed because no_log was given 2026-02-28 00:35:42.194540 | 2026-02-28 00:35:42.194631 | LOOP [ensure-output-dirs : Empty Zuul Output directories by removing them] 2026-02-28 00:35:42.407263 | controller | ok: "logs" 2026-02-28 00:35:42.407668 | controller | ok: All items complete 2026-02-28 00:35:42.407722 | 2026-02-28 00:35:42.588126 | controller | ok: "artifacts" 2026-02-28 00:35:42.766268 | controller | ok: "docs" 2026-02-28 00:35:42.779486 | 2026-02-28 00:35:42.779671 | LOOP [ensure-output-dirs : Ensure Zuul Output directories exist] 2026-02-28 00:35:43.003395 | controller | changed: "logs" 2026-02-28 00:35:43.190702 | controller | changed: "artifacts" 2026-02-28 00:35:43.381068 | controller | changed: "docs" 2026-02-28 00:35:43.396204 | 2026-02-28 00:35:43.396314 | PLAY RECAP 2026-02-28 00:35:43.396362 | controller | ok: 15 changed: 8 unreachable: 0 failed: 0 skipped: 3 rescued: 0 ignored: 0 2026-02-28 00:35:43.396391 | localhost | ok: 6 changed: 2 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-02-28 00:35:43.396412 | 2026-02-28 00:35:43.540065 | PRE-RUN END RESULT_NORMAL: [trusted : github.com/vexxhost/zuul-config/playbooks/base/pre.yaml@main] 2026-02-28 00:35:43.542830 | PRE-RUN START: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml@main] 2026-02-28 00:35:44.175131 | 2026-02-28 00:35:44.175287 | PLAY [all] 2026-02-28 00:35:44.186047 | 2026-02-28 00:35:44.186158 | TASK [setup-uv : Extract archive] 2026-02-28 00:35:46.612105 | controller | changed 2026-02-28 00:35:46.618466 | 2026-02-28 00:35:46.618569 | TASK [setup-uv : Print version] 2026-02-28 00:35:46.890003 | controller | uv 0.8.13 2026-02-28 00:35:47.145945 | controller | ok: Runtime: 0:00:00.016562 2026-02-28 00:35:47.152053 | 2026-02-28 00:35:47.152102 | PLAY RECAP 2026-02-28 00:35:47.152149 | controller | ok: 2 changed: 2 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-02-28 00:35:47.152173 | 2026-02-28 00:35:47.323837 | PRE-RUN END RESULT_NORMAL: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/molecule/pre.yaml@main] 2026-02-28 00:35:47.326635 | RUN START: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml@main] 2026-02-28 00:35:47.898552 | 2026-02-28 00:35:47.899047 | PLAY [all] 2026-02-28 00:35:47.908562 | 2026-02-28 00:35:47.908634 | TASK [Copy inventory file for Zuul] 2026-02-28 00:35:48.840182 | controller | changed 2026-02-28 00:35:48.845619 | 2026-02-28 00:35:48.845719 | TASK [Switch "ansible_host" to private IP] 2026-02-28 00:35:49.150185 | controller | changed: 1 replacements made 2026-02-28 00:35:49.156776 | 2026-02-28 00:35:49.156843 | TASK [Run Molecule scenario] 2026-02-28 00:35:49.503540 | controller | Using CPython 3.13.5 interpreter at: /usr/bin/python3 2026-02-28 00:35:49.503687 | controller | Creating virtual environment at: .venv 2026-02-28 00:35:49.823745 | controller | Downloading pygments (1.2MiB) 2026-02-28 00:35:49.830384 | controller | Downloading cryptography (4.3MiB) 2026-02-28 00:35:49.830880 | controller | Downloading ansible-core (2.3MiB) 2026-02-28 00:35:50.004895 | controller | Downloading cryptography 2026-02-28 00:35:50.054501 | controller | Downloading pygments 2026-02-28 00:35:50.245694 | controller | Downloading ansible-core 2026-02-28 00:35:50.294111 | controller | Installed 36 packages in 47ms 2026-02-28 00:35:51.016367 | controller | INFO Collection 'vexxhost.kubernetes' detected. 2026-02-28 00:35:51.016402 | controller | INFO Scenarios will be used from 'extensions/molecule' 2026-02-28 00:35:51.933332 | controller | CRITICAL 'extensions/molecule/default/molecule.yml' glob failed. Exiting. 2026-02-28 00:35:51.935703 | controller | INFO default scenario not found, disabling shared state. 2026-02-28 00:35:51.935765 | controller | INFO [helm > discovery] scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy 2026-02-28 00:35:51.935776 | controller | INFO [helm > prerun] Performing prerun with role_name_check=0... 2026-02-28 00:36:09.578198 | controller | INFO [helm > dependency] Executing 2026-02-28 00:36:09.578274 | controller | WARNING [helm > dependency] Missing roles requirements file: requirements.yml 2026-02-28 00:36:09.578284 | controller | WARNING [helm > dependency] Missing collections requirements file: collections.yml 2026-02-28 00:36:09.578321 | controller | WARNING [helm > dependency] Executed: 2 missing (Remove from test_sequence to suppress) 2026-02-28 00:36:09.584444 | controller | INFO [helm > cleanup] Executing 2026-02-28 00:36:09.584861 | controller | WARNING [helm > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress) 2026-02-28 00:36:09.591359 | controller | INFO [helm > destroy] Executing 2026-02-28 00:36:09.591390 | controller | WARNING [helm > destroy] Skipping, '--destroy=never' requested. 2026-02-28 00:36:09.591547 | controller | INFO [helm > destroy] Executed: Successful 2026-02-28 00:36:09.600189 | controller | INFO [helm > syntax] Executing 2026-02-28 00:36:10.508104 | controller | 2026-02-28 00:36:10.508297 | controller | playbook: /home/zuul/src/github.com/vexxhost/ansible-collection-kubernetes/extensions/molecule/helm/converge.yml 2026-02-28 00:36:10.583331 | controller | INFO [helm > syntax] Executed: Successful 2026-02-28 00:36:10.592883 | controller | INFO [helm > create] Executing 2026-02-28 00:36:10.594470 | controller | WARNING [helm > create] Executed: Missing playbook (Remove from test_sequence to suppress) 2026-02-28 00:36:10.600160 | controller | INFO [helm > prepare] Executing 2026-02-28 00:36:11.460839 | controller | 2026-02-28 00:36:11.460907 | controller | PLAY [Prepare] ***************************************************************** 2026-02-28 00:36:11.461165 | controller | 2026-02-28 00:36:11.461378 | controller | TASK [Gathering Facts] ********************************************************* 2026-02-28 00:36:11.461583 | controller | Saturday 28 February 2026 00:36:11 +0000 (0:00:00.028) 0:00:00.028 ***** 2026-02-28 00:36:13.763765 | controller | [WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information. 2026-02-28 00:36:13.772236 | controller | ok: [controller] 2026-02-28 00:36:13.772329 | controller | 2026-02-28 00:36:13.772451 | controller | TASK [Install Debian packages] ************************************************* 2026-02-28 00:36:13.772580 | controller | Saturday 28 February 2026 00:36:13 +0000 (0:00:02.309) 0:00:02.338 ***** 2026-02-28 00:36:19.086510 | controller | ok: [controller] 2026-02-28 00:36:19.086662 | controller | 2026-02-28 00:36:19.086868 | controller | PLAY RECAP ********************************************************************* 2026-02-28 00:36:19.087093 | controller | controller : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 2026-02-28 00:36:19.087280 | controller | 2026-02-28 00:36:19.087488 | controller | 2026-02-28 00:36:19.087691 | controller | TASKS RECAP ******************************************************************** 2026-02-28 00:36:19.087895 | controller | Saturday 28 February 2026 00:36:19 +0000 (0:00:05.316) 0:00:07.654 ***** 2026-02-28 00:36:19.088078 | controller | =============================================================================== 2026-02-28 00:36:19.088274 | controller | Install Debian packages ------------------------------------------------- 5.32s 2026-02-28 00:36:19.088475 | controller | Gathering Facts --------------------------------------------------------- 2.31s 2026-02-28 00:36:19.182344 | controller | INFO [helm > prepare] Executed: Successful 2026-02-28 00:36:19.190156 | controller | INFO [helm > converge] Executing 2026-02-28 00:36:20.030035 | controller | 2026-02-28 00:36:20.030153 | controller | PLAY [Converge] **************************************************************** 2026-02-28 00:36:20.030354 | controller | 2026-02-28 00:36:20.030565 | controller | TASK [Gathering Facts] ********************************************************* 2026-02-28 00:36:20.030764 | controller | Saturday 28 February 2026 00:36:20 +0000 (0:00:00.012) 0:00:00.012 ***** 2026-02-28 00:36:21.129148 | controller | [WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information. 2026-02-28 00:36:21.134837 | controller | ok: [controller] 2026-02-28 00:36:21.135000 | controller | 2026-02-28 00:36:21.135196 | controller | TASK [vexxhost.containers.forget_package : Forget package] ********************* 2026-02-28 00:36:21.135387 | controller | Saturday 28 February 2026 00:36:21 +0000 (0:00:01.107) 0:00:01.120 ***** 2026-02-28 00:36:21.618445 | controller | ok: [controller] 2026-02-28 00:36:21.618597 | controller | 2026-02-28 00:36:21.618808 | controller | TASK [vexxhost.containers.package : Update state for tar] ********************** 2026-02-28 00:36:21.619045 | controller | Saturday 28 February 2026 00:36:21 +0000 (0:00:00.483) 0:00:01.603 ***** 2026-02-28 00:36:22.685771 | controller | ok: [controller] 2026-02-28 00:36:22.685979 | controller | 2026-02-28 00:36:22.686203 | controller | TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] *** 2026-02-28 00:36:22.686402 | controller | Saturday 28 February 2026 00:36:22 +0000 (0:00:01.067) 0:00:02.671 ***** 2026-02-28 00:36:23.127767 | controller | changed: [controller] 2026-02-28 00:36:23.127949 | controller | 2026-02-28 00:36:23.128222 | controller | TASK [vexxhost.containers.download_artifact : Starting download of file] ******* 2026-02-28 00:36:23.128456 | controller | Saturday 28 February 2026 00:36:23 +0000 (0:00:00.441) 0:00:03.113 ***** 2026-02-28 00:36:23.174448 | controller | ok: [controller] => { 2026-02-28 00:36:23.174716 | controller | "msg": "https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz" 2026-02-28 00:36:23.174939 | controller | } 2026-02-28 00:36:23.175187 | controller | 2026-02-28 00:36:23.175422 | controller | TASK [vexxhost.containers.download_artifact : Download item] ******************* 2026-02-28 00:36:23.175709 | controller | Saturday 28 February 2026 00:36:23 +0000 (0:00:00.046) 0:00:03.159 ***** 2026-02-28 00:36:23.983711 | controller | [WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created with a mode of 0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir with the correct permissions manually 2026-02-28 00:36:23.993192 | controller | changed: [controller] 2026-02-28 00:36:23.993361 | controller | 2026-02-28 00:36:23.993577 | controller | TASK [vexxhost.containers.download_artifact : Extract archive] ***************** 2026-02-28 00:36:23.993784 | controller | Saturday 28 February 2026 00:36:23 +0000 (0:00:00.818) 0:00:03.978 ***** 2026-02-28 00:36:26.059818 | controller | changed: [controller] 2026-02-28 00:36:26.059913 | controller | 2026-02-28 00:36:26.060013 | controller | TASK [vexxhost.kubernetes.helm : Remove Helm repository] *********************** 2026-02-28 00:36:26.060145 | controller | Saturday 28 February 2026 00:36:26 +0000 (0:00:02.066) 0:00:06.045 ***** 2026-02-28 00:36:26.599494 | controller | ok: [controller] 2026-02-28 00:36:26.599531 | controller | 2026-02-28 00:36:26.599536 | controller | TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] *************** 2026-02-28 00:36:26.599541 | controller | Saturday 28 February 2026 00:36:26 +0000 (0:00:00.535) 0:00:06.580 ***** 2026-02-28 00:36:27.006756 | controller | changed: [controller] 2026-02-28 00:36:27.006907 | controller | 2026-02-28 00:36:27.007109 | controller | TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] ************************* 2026-02-28 00:36:27.007300 | controller | Saturday 28 February 2026 00:36:27 +0000 (0:00:00.410) 0:00:06.991 ***** 2026-02-28 00:36:27.493635 | controller | ok: [controller] 2026-02-28 00:36:27.493781 | controller | 2026-02-28 00:36:27.494002 | controller | TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] *** 2026-02-28 00:36:27.494218 | controller | Saturday 28 February 2026 00:36:27 +0000 (0:00:00.486) 0:00:07.478 ***** 2026-02-28 00:36:27.784193 | controller | changed: [controller] 2026-02-28 00:36:27.784365 | controller | 2026-02-28 00:36:27.784575 | controller | TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] *** 2026-02-28 00:36:27.787594 | controller | Saturday 28 February 2026 00:36:27 +0000 (0:00:00.290) 0:00:07.768 ***** 2026-02-28 00:36:28.111856 | controller | ok: [controller] 2026-02-28 00:36:28.111970 | controller | 2026-02-28 00:36:28.112216 | controller | TASK [Install plugin] ********************************************************** 2026-02-28 00:36:28.112448 | controller | Saturday 28 February 2026 00:36:28 +0000 (0:00:00.327) 0:00:08.096 ***** 2026-02-28 00:36:28.178150 | controller | included: vexxhost.containers.download_artifact for controller 2026-02-28 00:36:28.178384 | controller | 2026-02-28 00:36:28.178603 | controller | TASK [vexxhost.containers.download_artifact : Starting download of file] ******* 2026-02-28 00:36:28.178794 | controller | Saturday 28 February 2026 00:36:28 +0000 (0:00:00.067) 0:00:08.163 ***** 2026-02-28 00:36:28.226943 | controller | ok: [controller] => { 2026-02-28 00:36:28.227159 | controller | "msg": "https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz" 2026-02-28 00:36:28.227346 | controller | } 2026-02-28 00:36:28.227558 | controller | 2026-02-28 00:36:28.227757 | controller | TASK [vexxhost.containers.download_artifact : Download item] ******************* 2026-02-28 00:36:28.227949 | controller | Saturday 28 February 2026 00:36:28 +0000 (0:00:00.048) 0:00:08.212 ***** 2026-02-28 00:36:29.016574 | controller | changed: [controller] 2026-02-28 00:36:29.016618 | controller | 2026-02-28 00:36:29.016625 | controller | TASK [vexxhost.containers.download_artifact : Extract archive] ***************** 2026-02-28 00:36:29.016631 | controller | Saturday 28 February 2026 00:36:29 +0000 (0:00:00.785) 0:00:08.997 ***** 2026-02-28 00:36:31.113711 | controller | changed: [controller] 2026-02-28 00:36:31.113769 | controller | 2026-02-28 00:36:31.113994 | controller | PLAY RECAP ********************************************************************* 2026-02-28 00:36:31.114205 | controller | controller : ok=16 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 2026-02-28 00:36:31.114380 | controller | 2026-02-28 00:36:31.114550 | controller | 2026-02-28 00:36:31.114738 | controller | TASKS RECAP ******************************************************************** 2026-02-28 00:36:31.114923 | controller | Saturday 28 February 2026 00:36:31 +0000 (0:00:02.097) 0:00:11.095 ***** 2026-02-28 00:36:31.115150 | controller | =============================================================================== 2026-02-28 00:36:31.115334 | controller | vexxhost.containers.download_artifact : Extract archive ----------------- 2.10s 2026-02-28 00:36:31.115565 | controller | vexxhost.containers.download_artifact : Extract archive ----------------- 2.07s 2026-02-28 00:36:31.115751 | controller | Gathering Facts --------------------------------------------------------- 1.11s 2026-02-28 00:36:31.115941 | controller | vexxhost.containers.package : Update state for tar ---------------------- 1.07s 2026-02-28 00:36:31.116128 | controller | vexxhost.containers.download_artifact : Download item ------------------- 0.82s 2026-02-28 00:36:31.116317 | controller | vexxhost.containers.download_artifact : Download item ------------------- 0.79s 2026-02-28 00:36:31.116503 | controller | vexxhost.kubernetes.helm : Remove Helm repository ----------------------- 0.54s 2026-02-28 00:36:31.116690 | controller | vexxhost.kubernetes.helm : Get Helm plugins dir ------------------------- 0.49s 2026-02-28 00:36:31.116876 | controller | vexxhost.containers.forget_package : Forget package --------------------- 0.48s 2026-02-28 00:36:31.117064 | controller | vexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.44s 2026-02-28 00:36:31.117338 | controller | vexxhost.kubernetes.helm : Add bash autocomplete for helm --------------- 0.41s 2026-02-28 00:36:31.117528 | controller | vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin --- 0.33s 2026-02-28 00:36:31.117726 | controller | vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist --- 0.29s 2026-02-28 00:36:31.117909 | controller | Install plugin ---------------------------------------------------------- 0.07s 2026-02-28 00:36:31.118100 | controller | vexxhost.containers.download_artifact : Starting download of file ------- 0.05s 2026-02-28 00:36:31.118287 | controller | vexxhost.containers.download_artifact : Starting download of file ------- 0.05s 2026-02-28 00:36:31.211746 | controller | INFO [helm > converge] Executed: Successful 2026-02-28 00:36:31.223227 | controller | INFO [helm > idempotence] Executing 2026-02-28 00:36:32.046836 | controller | 2026-02-28 00:36:32.046994 | controller | PLAY [Converge] **************************************************************** 2026-02-28 00:36:32.047166 | controller | 2026-02-28 00:36:32.047358 | controller | TASK [Gathering Facts] ********************************************************* 2026-02-28 00:36:32.047668 | controller | Saturday 28 February 2026 00:36:32 +0000 (0:00:00.012) 0:00:00.012 ***** 2026-02-28 00:36:34.116268 | controller | [WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information. 2026-02-28 00:36:34.121769 | controller | ok: [controller] 2026-02-28 00:36:34.121957 | controller | 2026-02-28 00:36:34.122161 | controller | TASK [vexxhost.containers.forget_package : Forget package] ********************* 2026-02-28 00:36:34.122357 | controller | Saturday 28 February 2026 00:36:34 +0000 (0:00:02.075) 0:00:02.087 ***** 2026-02-28 00:36:34.556354 | controller | ok: [controller] 2026-02-28 00:36:34.556522 | controller | 2026-02-28 00:36:34.556747 | controller | TASK [vexxhost.containers.package : Update state for tar] ********************** 2026-02-28 00:36:34.556951 | controller | Saturday 28 February 2026 00:36:34 +0000 (0:00:00.434) 0:00:02.521 ***** 2026-02-28 00:36:35.702939 | controller | ok: [controller] 2026-02-28 00:36:35.703223 | controller | 2026-02-28 00:36:35.703585 | controller | TASK [vexxhost.containers.directory : Create directory (/var/lib/downloads)] *** 2026-02-28 00:36:35.703782 | controller | Saturday 28 February 2026 00:36:35 +0000 (0:00:01.146) 0:00:03.668 ***** 2026-02-28 00:36:36.141525 | controller | ok: [controller] 2026-02-28 00:36:36.141688 | controller | 2026-02-28 00:36:36.141893 | controller | TASK [vexxhost.containers.download_artifact : Starting download of file] ******* 2026-02-28 00:36:36.142081 | controller | Saturday 28 February 2026 00:36:36 +0000 (0:00:00.438) 0:00:04.106 ***** 2026-02-28 00:36:36.196124 | controller | ok: [controller] => { 2026-02-28 00:36:36.196200 | controller | "msg": "https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz" 2026-02-28 00:36:36.196284 | controller | } 2026-02-28 00:36:36.196364 | controller | 2026-02-28 00:36:36.196458 | controller | TASK [vexxhost.containers.download_artifact : Download item] ******************* 2026-02-28 00:36:36.196534 | controller | Saturday 28 February 2026 00:36:36 +0000 (0:00:00.054) 0:00:04.161 ***** 2026-02-28 00:36:36.738757 | controller | ok: [controller] 2026-02-28 00:36:36.738809 | controller | 2026-02-28 00:36:36.738819 | controller | TASK [vexxhost.containers.download_artifact : Extract archive] ***************** 2026-02-28 00:36:36.738827 | controller | Saturday 28 February 2026 00:36:36 +0000 (0:00:00.542) 0:00:04.703 ***** 2026-02-28 00:36:38.419247 | controller | ok: [controller] 2026-02-28 00:36:38.419304 | controller | 2026-02-28 00:36:38.419374 | controller | TASK [vexxhost.kubernetes.helm : Remove Helm repository] *********************** 2026-02-28 00:36:38.419474 | controller | Saturday 28 February 2026 00:36:38 +0000 (0:00:01.679) 0:00:06.383 ***** 2026-02-28 00:36:38.931916 | controller | ok: [controller] 2026-02-28 00:36:38.931940 | controller | 2026-02-28 00:36:38.931945 | controller | TASK [vexxhost.kubernetes.helm : Add bash autocomplete for helm] *************** 2026-02-28 00:36:38.931949 | controller | Saturday 28 February 2026 00:36:38 +0000 (0:00:00.511) 0:00:06.894 ***** 2026-02-28 00:36:39.330255 | controller | ok: [controller] 2026-02-28 00:36:39.330314 | controller | 2026-02-28 00:36:39.330356 | controller | TASK [vexxhost.kubernetes.helm : Get Helm plugins dir] ************************* 2026-02-28 00:36:39.330450 | controller | Saturday 28 February 2026 00:36:39 +0000 (0:00:00.401) 0:00:07.296 ***** 2026-02-28 00:36:39.765100 | controller | ok: [controller] 2026-02-28 00:36:39.765154 | controller | 2026-02-28 00:36:39.765300 | controller | TASK [vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist] *** 2026-02-28 00:36:39.765425 | controller | Saturday 28 February 2026 00:36:39 +0000 (0:00:00.433) 0:00:07.729 ***** 2026-02-28 00:36:40.074969 | controller | ok: [controller] 2026-02-28 00:36:40.075051 | controller | 2026-02-28 00:36:40.075203 | controller | TASK [vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin] *** 2026-02-28 00:36:40.075335 | controller | Saturday 28 February 2026 00:36:40 +0000 (0:00:00.307) 0:00:08.037 ***** 2026-02-28 00:36:40.355061 | controller | ok: [controller] 2026-02-28 00:36:40.355115 | controller | 2026-02-28 00:36:40.355242 | controller | TASK [Install plugin] ********************************************************** 2026-02-28 00:36:40.355398 | controller | Saturday 28 February 2026 00:36:40 +0000 (0:00:00.283) 0:00:08.320 ***** 2026-02-28 00:36:40.419125 | controller | included: vexxhost.containers.download_artifact for controller 2026-02-28 00:36:40.419172 | controller | 2026-02-28 00:36:40.419253 | controller | TASK [vexxhost.containers.download_artifact : Starting download of file] ******* 2026-02-28 00:36:40.419336 | controller | Saturday 28 February 2026 00:36:40 +0000 (0:00:00.061) 0:00:08.382 ***** 2026-02-28 00:36:40.461955 | controller | ok: [controller] => { 2026-02-28 00:36:40.462039 | controller | "msg": "https://github.com/databus23/helm-diff/releases/download/v3.8.1/helm-diff-linux-amd64.tgz" 2026-02-28 00:36:40.462051 | controller | } 2026-02-28 00:36:40.462147 | controller | 2026-02-28 00:36:40.462233 | controller | TASK [vexxhost.containers.download_artifact : Download item] ******************* 2026-02-28 00:36:40.462319 | controller | Saturday 28 February 2026 00:36:40 +0000 (0:00:00.045) 0:00:08.427 ***** 2026-02-28 00:36:40.872058 | controller | ok: [controller] 2026-02-28 00:36:40.872182 | controller | 2026-02-28 00:36:40.872416 | controller | TASK [vexxhost.containers.download_artifact : Extract archive] ***************** 2026-02-28 00:36:40.872441 | controller | Saturday 28 February 2026 00:36:40 +0000 (0:00:00.409) 0:00:08.836 ***** 2026-02-28 00:36:42.449121 | controller | ok: [controller] 2026-02-28 00:36:42.449350 | controller | 2026-02-28 00:36:42.449560 | controller | PLAY RECAP ********************************************************************* 2026-02-28 00:36:42.449808 | controller | controller : ok=16 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 2026-02-28 00:36:42.450005 | controller | 2026-02-28 00:36:42.450186 | controller | 2026-02-28 00:36:42.450384 | controller | TASKS RECAP ******************************************************************** 2026-02-28 00:36:42.450552 | controller | Saturday 28 February 2026 00:36:42 +0000 (0:00:01.578) 0:00:10.415 ***** 2026-02-28 00:36:42.450693 | controller | =============================================================================== 2026-02-28 00:36:42.450844 | controller | Gathering Facts --------------------------------------------------------- 2.08s 2026-02-28 00:36:42.450986 | controller | vexxhost.containers.download_artifact : Extract archive ----------------- 1.68s 2026-02-28 00:36:42.451121 | controller | vexxhost.containers.download_artifact : Extract archive ----------------- 1.58s 2026-02-28 00:36:42.451258 | controller | vexxhost.containers.package : Update state for tar ---------------------- 1.15s 2026-02-28 00:36:42.451409 | controller | vexxhost.containers.download_artifact : Download item ------------------- 0.54s 2026-02-28 00:36:42.451587 | controller | vexxhost.kubernetes.helm : Remove Helm repository ----------------------- 0.51s 2026-02-28 00:36:42.451728 | controller | vexxhost.containers.directory : Create directory (/var/lib/downloads) --- 0.44s 2026-02-28 00:36:42.451864 | controller | vexxhost.containers.forget_package : Forget package --------------------- 0.43s 2026-02-28 00:36:42.452004 | controller | vexxhost.kubernetes.helm : Get Helm plugins dir ------------------------- 0.43s 2026-02-28 00:36:42.452142 | controller | vexxhost.containers.download_artifact : Download item ------------------- 0.41s 2026-02-28 00:36:42.452289 | controller | vexxhost.kubernetes.helm : Add bash autocomplete for helm --------------- 0.40s 2026-02-28 00:36:42.452434 | controller | vexxhost.kubernetes.helm : Create Helm plugins directory if it does not exist --- 0.31s 2026-02-28 00:36:42.452583 | controller | vexxhost.kubernetes.helm : Remove Helm diff plugin installed by kubernetes.core.helm_plugin --- 0.28s 2026-02-28 00:36:42.452725 | controller | Install plugin ---------------------------------------------------------- 0.06s 2026-02-28 00:36:42.452866 | controller | vexxhost.containers.download_artifact : Starting download of file ------- 0.05s 2026-02-28 00:36:42.453001 | controller | vexxhost.containers.download_artifact : Starting download of file ------- 0.05s 2026-02-28 00:36:42.559516 | controller | INFO [helm > idempotence] Executed: Successful 2026-02-28 00:36:42.570242 | controller | INFO [helm > side_effect] Executing 2026-02-28 00:36:42.571019 | controller | WARNING [helm > side_effect] Executed: Missing playbook (Remove from test_sequence to suppress) 2026-02-28 00:36:42.576547 | controller | INFO [helm > verify] Executing 2026-02-28 00:36:43.367596 | controller | 2026-02-28 00:36:43.367750 | controller | PLAY [Verify] ****************************************************************** 2026-02-28 00:36:43.367858 | controller | 2026-02-28 00:36:43.367977 | controller | TASK [Gathering Facts] ********************************************************* 2026-02-28 00:36:43.368089 | controller | Saturday 28 February 2026 00:36:43 +0000 (0:00:00.009) 0:00:00.009 ***** 2026-02-28 00:36:44.437415 | controller | [WARNING]: Host 'controller' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.20/reference_appendices/interpreter_discovery.html for more information. 2026-02-28 00:36:44.444600 | controller | ok: [controller] 2026-02-28 00:36:44.444884 | controller | 2026-02-28 00:36:44.445161 | controller | TASK [Get the current Helm version] ******************************************** 2026-02-28 00:36:44.445417 | controller | Saturday 28 February 2026 00:36:44 +0000 (0:00:01.076) 0:00:01.086 ***** 2026-02-28 00:36:44.893921 | controller | changed: [controller] 2026-02-28 00:36:44.894211 | controller | 2026-02-28 00:36:44.894477 | controller | TASK [Assert Helm version] ***************************************************** 2026-02-28 00:36:44.894770 | controller | Saturday 28 February 2026 00:36:44 +0000 (0:00:00.448) 0:00:01.535 ***** 2026-02-28 00:36:44.926722 | controller | ok: [controller] => { 2026-02-28 00:36:44.926988 | controller | "changed": false, 2026-02-28 00:36:44.927241 | controller | "msg": "All assertions passed" 2026-02-28 00:36:44.927527 | controller | } 2026-02-28 00:36:44.927761 | controller | 2026-02-28 00:36:44.928004 | controller | PLAY RECAP ********************************************************************* 2026-02-28 00:36:44.928269 | controller | controller : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 2026-02-28 00:36:44.928496 | controller | 2026-02-28 00:36:44.928716 | controller | 2026-02-28 00:36:44.928960 | controller | TASKS RECAP ******************************************************************** 2026-02-28 00:36:44.929208 | controller | Saturday 28 February 2026 00:36:44 +0000 (0:00:00.033) 0:00:01.568 ***** 2026-02-28 00:36:44.929440 | controller | =============================================================================== 2026-02-28 00:36:44.929682 | controller | Gathering Facts --------------------------------------------------------- 1.08s 2026-02-28 00:36:44.929927 | controller | Get the current Helm version -------------------------------------------- 0.45s 2026-02-28 00:36:44.930194 | controller | Assert Helm version ----------------------------------------------------- 0.03s 2026-02-28 00:36:45.068321 | controller | INFO [helm > verify] Executed: Successful 2026-02-28 00:36:45.079345 | controller | INFO [helm > cleanup] Executing 2026-02-28 00:36:45.079868 | controller | WARNING [helm > cleanup] Executed: Missing playbook (Remove from test_sequence to suppress) 2026-02-28 00:36:45.087284 | controller | INFO [helm > destroy] Executing 2026-02-28 00:36:45.087452 | controller | WARNING [helm > destroy] Skipping, '--destroy=never' requested. 2026-02-28 00:36:45.087581 | controller | INFO [helm > destroy] Executed: Successful 2026-02-28 00:36:45.087972 | controller | WARNING Molecule executed 1 scenario (1 missing files) 2026-02-28 00:36:45.652646 | controller | ok: Runtime: 0:00:55.747767 2026-02-28 00:36:45.657691 | 2026-02-28 00:36:45.657753 | PLAY RECAP 2026-02-28 00:36:45.657810 | controller | ok: 3 changed: 3 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-02-28 00:36:45.657842 | 2026-02-28 00:36:45.771698 | RUN END RESULT_NORMAL: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/molecule/run.yaml@main] 2026-02-28 00:36:45.773141 | POST-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post.yaml@main] 2026-02-28 00:36:46.360060 | 2026-02-28 00:36:46.360198 | PLAY [all] 2026-02-28 00:36:46.370094 | 2026-02-28 00:36:46.370171 | TASK [fetch-output : Set log path for multiple nodes] 2026-02-28 00:36:46.415522 | controller | skipping: Conditional result was False 2026-02-28 00:36:46.423706 | 2026-02-28 00:36:46.423882 | TASK [fetch-output : Set log path for single node] 2026-02-28 00:36:46.470193 | controller | ok 2026-02-28 00:36:46.474134 | 2026-02-28 00:36:46.474209 | LOOP [fetch-output : Ensure local output dirs] 2026-02-28 00:36:46.840741 | controller -> localhost | ok: "/var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/logs" 2026-02-28 00:36:47.044372 | controller -> localhost | changed: "/var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/artifacts" 2026-02-28 00:36:47.255995 | controller -> localhost | changed: "/var/lib/zuul/builds/2ff5fab763b14ed8abe0f3accf502193/work/docs" 2026-02-28 00:36:47.270705 | 2026-02-28 00:36:47.270872 | LOOP [fetch-output : Collect logs, artifacts and docs] 2026-02-28 00:36:47.908631 | controller | changed: .d..t...... ./ 2026-02-28 00:36:47.908889 | controller | changed: All items complete 2026-02-28 00:36:47.908917 | 2026-02-28 00:36:48.394411 | controller | changed: .d..t...... ./ 2026-02-28 00:36:48.915227 | controller | changed: .d..t...... ./ 2026-02-28 00:36:48.934282 | 2026-02-28 00:36:48.934411 | LOOP [merge-output-to-logs : Move artifacts and docs to logs dir] 2026-02-28 00:36:49.392514 | controller -> localhost | ok: Item: artifacts Runtime: 0:00:00.007054 2026-02-28 00:36:49.632797 | controller -> localhost | ok: Item: docs Runtime: 0:00:00.007167 2026-02-28 00:36:49.644596 | 2026-02-28 00:36:49.644750 | PLAY [all] 2026-02-28 00:36:49.649965 | 2026-02-28 00:36:49.650029 | TASK [remove-build-sshkey : Remove the build SSH key from all nodes] 2026-02-28 00:36:50.116526 | controller | changed 2026-02-28 00:36:50.123027 | 2026-02-28 00:36:50.123081 | PLAY RECAP 2026-02-28 00:36:50.123134 | controller | ok: 5 changed: 4 unreachable: 0 failed: 0 skipped: 1 rescued: 0 ignored: 0 2026-02-28 00:36:50.123158 | 2026-02-28 00:36:50.242405 | POST-RUN END RESULT_NORMAL: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post.yaml@main] 2026-02-28 00:36:50.244928 | POST-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post-logs.yaml@main] 2026-02-28 00:36:50.801242 | 2026-02-28 00:36:50.801668 | PLAY [localhost] 2026-02-28 00:36:50.815740 | 2026-02-28 00:36:50.815822 | TASK [Generate Zuul manifest] 2026-02-28 00:36:50.838646 | localhost | ok 2026-02-28 00:36:50.854896 | 2026-02-28 00:36:50.854974 | TASK [generate-zuul-manifest : Generate Zuul manifest] 2026-02-28 00:36:51.169695 | localhost | changed 2026-02-28 00:36:51.182169 | 2026-02-28 00:36:51.182287 | TASK [generate-zuul-manifest : Return Zuul manifest URL to Zuul] 2026-02-28 00:36:51.224363 | localhost | ok 2026-02-28 00:36:51.232473 | 2026-02-28 00:36:51.232538 | TASK [Upload logs] 2026-02-28 00:36:51.254453 | localhost | ok 2026-02-28 00:36:51.319131 | 2026-02-28 00:36:51.319278 | TASK [Set zuul-log-path fact] 2026-02-28 00:36:51.341120 | localhost | ok 2026-02-28 00:36:51.359018 | 2026-02-28 00:36:51.359271 | TASK [set-zuul-log-path-fact : Set log path for a build] 2026-02-28 00:36:51.392539 | localhost | ok 2026-02-28 00:36:51.401016 | 2026-02-28 00:36:51.401082 | TASK [upload-logs : Create log directories] 2026-02-28 00:36:51.818259 | localhost | changed 2026-02-28 00:36:51.829285 | 2026-02-28 00:36:51.829386 | TASK [upload-logs : Ensure logs are readable before uploading] 2026-02-28 00:36:52.236109 | localhost -> localhost | ok: Runtime: 0:00:00.005185 2026-02-28 00:36:52.242441 | 2026-02-28 00:36:52.242529 | TASK [upload-logs : Upload logs to log server] 2026-02-28 00:36:52.719027 | localhost | Output suppressed because no_log was given 2026-02-28 00:36:52.723297 | 2026-02-28 00:36:52.723367 | LOOP [upload-logs : Compress console log and json output] 2026-02-28 00:36:52.769832 | localhost | skipping: Conditional result was False 2026-02-28 00:36:52.776631 | localhost | skipping: Conditional result was False 2026-02-28 00:36:52.787552 | 2026-02-28 00:36:52.787688 | LOOP [upload-logs : Upload compressed console log and json output] 2026-02-28 00:36:52.836536 | localhost | skipping: Conditional result was False 2026-02-28 00:36:52.836908 | 2026-02-28 00:36:52.841241 | localhost | skipping: Conditional result was False 2026-02-28 00:36:52.850261 | 2026-02-28 00:36:52.857210 | LOOP [upload-logs : Upload console log and json output]