2025-12-04 18:42:13.454106 | Job console starting 2025-12-04 18:42:13.485785 | Updating git repos 2025-12-04 18:42:13.566437 | Cloning repos into workspace 2025-12-04 18:42:13.659579 | Restoring repo states 2025-12-04 18:42:13.688476 | Merging changes 2025-12-04 18:42:14.332589 | Checking out repos 2025-12-04 18:42:14.425873 | Preparing playbooks 2025-12-04 18:42:16.038096 | Running Ansible setup 2025-12-04 18:42:22.441910 | PRE-RUN START: [trusted : github.com/osism/zuul-config/playbooks/base/pre.yaml@main] 2025-12-04 18:42:24.069795 | 2025-12-04 18:42:24.069982 | PLAY [Base pre] 2025-12-04 18:42:24.115461 | 2025-12-04 18:42:24.115644 | TASK [Setup log path fact] 2025-12-04 18:42:24.158228 | debian-bookworm | ok 2025-12-04 18:42:24.191865 | 2025-12-04 18:42:24.192158 | TASK [set-zuul-log-path-fact : Set log path for a build] 2025-12-04 18:42:24.254821 | debian-bookworm | ok 2025-12-04 18:42:24.273832 | 2025-12-04 18:42:24.273983 | TASK [emit-job-header : Print job information] 2025-12-04 18:42:24.316282 | # Job Information 2025-12-04 18:42:24.316579 | Ansible Version: 2.16.14 2025-12-04 18:42:24.316618 | Job: container-image-python-osism-frontend-build 2025-12-04 18:42:24.316658 | Pipeline: check 2025-12-04 18:42:24.316682 | Executor: 521e9411259a 2025-12-04 18:42:24.316703 | Triggered by: https://github.com/osism/python-osism/pull/1888 2025-12-04 18:42:24.316726 | Event ID: ed9bacc0-d140-11f0-9412-27f847a9550b 2025-12-04 18:42:24.322094 | 2025-12-04 18:42:24.322248 | LOOP [emit-job-header : Print node information] 2025-12-04 18:42:24.440353 | debian-bookworm | ok: 2025-12-04 18:42:24.440606 | debian-bookworm | # Node Information 2025-12-04 18:42:24.440651 | debian-bookworm | Inventory Hostname: debian-bookworm 2025-12-04 18:42:24.440679 | debian-bookworm | Hostname: debian 2025-12-04 18:42:24.440701 | debian-bookworm | Username: zuul 2025-12-04 18:42:24.440729 | debian-bookworm | Distro: Debian 12.12 2025-12-04 18:42:24.440760 | debian-bookworm | Provider: regiocloud-a 2025-12-04 18:42:24.440788 | debian-bookworm | Region: 2025-12-04 18:42:24.440817 | debian-bookworm | Label: debian-bookworm 2025-12-04 18:42:24.440844 | debian-bookworm | Product Name: OpenStack Nova 2025-12-04 18:42:24.440870 | debian-bookworm | Interface IP: 2a13:1a81:8000:3124:f816:3eff:fe40:f959 2025-12-04 18:42:24.469212 | 2025-12-04 18:42:24.469412 | TASK [log-inventory : Ensure Zuul Ansible directory exists] 2025-12-04 18:42:25.238099 | debian-bookworm -> localhost | changed 2025-12-04 18:42:25.246027 | 2025-12-04 18:42:25.246176 | TASK [log-inventory : Copy ansible inventory to logs dir] 2025-12-04 18:42:27.207112 | debian-bookworm -> localhost | changed 2025-12-04 18:42:27.218134 | 2025-12-04 18:42:27.218265 | TASK [add-build-sshkey : Check to see if ssh key was already created for this build] 2025-12-04 18:42:27.871426 | debian-bookworm -> localhost | ok 2025-12-04 18:42:27.878101 | 2025-12-04 18:42:27.878221 | TASK [add-build-sshkey : Create a new key in workspace based on build UUID] 2025-12-04 18:42:27.917107 | debian-bookworm | ok 2025-12-04 18:42:27.957108 | debian-bookworm | included: /var/lib/zuul/builds/309094e5ec6041e0afdc650099ad6d74/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey/tasks/create-key-and-replace.yaml 2025-12-04 18:42:27.968359 | 2025-12-04 18:42:27.968506 | TASK [add-build-sshkey : Create Temp SSH key] 2025-12-04 18:42:29.741942 | debian-bookworm -> localhost | Generating public/private rsa key pair. 2025-12-04 18:42:29.742191 | debian-bookworm -> localhost | Your identification has been saved in /var/lib/zuul/builds/309094e5ec6041e0afdc650099ad6d74/work/309094e5ec6041e0afdc650099ad6d74_id_rsa 2025-12-04 18:42:29.742230 | debian-bookworm -> localhost | Your public key has been saved in /var/lib/zuul/builds/309094e5ec6041e0afdc650099ad6d74/work/309094e5ec6041e0afdc650099ad6d74_id_rsa.pub 2025-12-04 18:42:29.742256 | debian-bookworm -> localhost | The key fingerprint is: 2025-12-04 18:42:29.742283 | debian-bookworm -> localhost | SHA256:CnMMSQyveNLc46Dr4kc/8sWSZ42q7hGE44QGW6BeT1E zuul-build-sshkey 2025-12-04 18:42:29.742325 | debian-bookworm -> localhost | The key's randomart image is: 2025-12-04 18:42:29.742347 | debian-bookworm -> localhost | +---[RSA 3072]----+ 2025-12-04 18:42:29.742428 | debian-bookworm -> localhost | |o.oo...E | 2025-12-04 18:42:29.742455 | debian-bookworm -> localhost | |+o.o... | 2025-12-04 18:42:29.742476 | debian-bookworm -> localhost | |+= o+. | 2025-12-04 18:42:29.742496 | debian-bookworm -> localhost | |=++ooo | 2025-12-04 18:42:29.742517 | debian-bookworm -> localhost | |oo*.=.o S | 2025-12-04 18:42:29.742540 | debian-bookworm -> localhost | | + +.=o.o | 2025-12-04 18:42:29.742560 | debian-bookworm -> localhost | |. ..oo.* . | 2025-12-04 18:42:29.742581 | debian-bookworm -> localhost | |.. o.o* | 2025-12-04 18:42:29.742602 | debian-bookworm -> localhost | |=o+++o. | 2025-12-04 18:42:29.742623 | debian-bookworm -> localhost | +----[SHA256]-----+ 2025-12-04 18:42:29.742682 | debian-bookworm -> localhost | ok: Runtime: 0:00:00.689408 2025-12-04 18:42:29.749566 | 2025-12-04 18:42:29.749708 | TASK [add-build-sshkey : Remote setup ssh keys (linux)] 2025-12-04 18:42:29.802817 | debian-bookworm | ok 2025-12-04 18:42:29.812951 | debian-bookworm | included: /var/lib/zuul/builds/309094e5ec6041e0afdc650099ad6d74/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey/tasks/remote-linux.yaml 2025-12-04 18:42:29.823632 | 2025-12-04 18:42:29.823762 | TASK [add-build-sshkey : Remove previously added zuul-build-sshkey] 2025-12-04 18:42:29.848667 | debian-bookworm | skipping: Conditional result was False 2025-12-04 18:42:29.855272 | 2025-12-04 18:42:29.855429 | TASK [add-build-sshkey : Enable access via build key on all nodes] 2025-12-04 18:42:30.580587 | debian-bookworm | changed 2025-12-04 18:42:30.596136 | 2025-12-04 18:42:30.596270 | TASK [add-build-sshkey : Make sure user has a .ssh] 2025-12-04 18:42:30.868185 | debian-bookworm | ok 2025-12-04 18:42:30.874482 | 2025-12-04 18:42:30.874611 | TASK [add-build-sshkey : Install build private key as SSH key on all nodes] 2025-12-04 18:42:31.590906 | debian-bookworm | changed 2025-12-04 18:42:31.598964 | 2025-12-04 18:42:31.599094 | TASK [add-build-sshkey : Install build public key as SSH key on all nodes] 2025-12-04 18:42:32.304461 | debian-bookworm | changed 2025-12-04 18:42:32.312724 | 2025-12-04 18:42:32.312863 | TASK [add-build-sshkey : Remote setup ssh keys (windows)] 2025-12-04 18:42:32.339095 | debian-bookworm | skipping: Conditional result was False 2025-12-04 18:42:32.345599 | 2025-12-04 18:42:32.345731 | TASK [remove-zuul-sshkey : Remove master key from local agent] 2025-12-04 18:42:33.144595 | debian-bookworm -> localhost | changed 2025-12-04 18:42:33.156437 | 2025-12-04 18:42:33.156575 | TASK [add-build-sshkey : Add back temp key] 2025-12-04 18:42:33.760417 | debian-bookworm -> localhost | Identity added: /var/lib/zuul/builds/309094e5ec6041e0afdc650099ad6d74/work/309094e5ec6041e0afdc650099ad6d74_id_rsa (zuul-build-sshkey) 2025-12-04 18:42:33.760685 | debian-bookworm -> localhost | ok: Runtime: 0:00:00.049465 2025-12-04 18:42:33.774132 | 2025-12-04 18:42:33.774286 | TASK [add-build-sshkey : Verify we can still SSH to all nodes] 2025-12-04 18:42:34.535196 | debian-bookworm | ok 2025-12-04 18:42:34.540470 | 2025-12-04 18:42:34.540592 | TASK [add-build-sshkey : Verify we can still SSH to all nodes (windows)] 2025-12-04 18:42:34.574981 | debian-bookworm | skipping: Conditional result was False 2025-12-04 18:42:34.596072 | 2025-12-04 18:42:34.596217 | TASK [start-zuul-console : Start zuul_console daemon.] 2025-12-04 18:42:35.078167 | debian-bookworm | ok 2025-12-04 18:42:35.098777 | 2025-12-04 18:42:35.098982 | TASK [validate-host : Define zuul_info_dir fact] 2025-12-04 18:42:35.145468 | debian-bookworm | ok 2025-12-04 18:42:35.151320 | 2025-12-04 18:42:35.151482 | TASK [validate-host : Ensure Zuul Ansible directory exists] 2025-12-04 18:42:35.577460 | debian-bookworm -> localhost | ok 2025-12-04 18:42:35.584824 | 2025-12-04 18:42:35.584946 | TASK [validate-host : Collect information about the host] 2025-12-04 18:42:37.006151 | debian-bookworm | ok 2025-12-04 18:42:37.022866 | 2025-12-04 18:42:37.023006 | TASK [validate-host : Sanitize hostname] 2025-12-04 18:42:37.145672 | debian-bookworm | ok 2025-12-04 18:42:37.197599 | 2025-12-04 18:42:37.197745 | TASK [validate-host : Write out all ansible variables/facts known for each host] 2025-12-04 18:42:38.193061 | debian-bookworm -> localhost | changed 2025-12-04 18:42:38.201776 | 2025-12-04 18:42:38.201911 | TASK [validate-host : Collect information about zuul worker] 2025-12-04 18:42:38.687673 | debian-bookworm | ok 2025-12-04 18:42:38.706532 | 2025-12-04 18:42:38.706684 | TASK [validate-host : Write out all zuul information for each host] 2025-12-04 18:42:39.548323 | debian-bookworm -> localhost | changed 2025-12-04 18:42:39.565193 | 2025-12-04 18:42:39.565352 | TASK [prepare-workspace-log : Start zuul_console daemon.] 2025-12-04 18:42:39.888924 | debian-bookworm | ok 2025-12-04 18:42:39.898524 | 2025-12-04 18:42:39.898660 | TASK [prepare-workspace-log : Synchronize src repos to workspace directory.] 2025-12-04 18:42:41.501506 | debian-bookworm | changed: 2025-12-04 18:42:41.501731 | debian-bookworm | cd+++++++++ src/ 2025-12-04 18:42:41.501766 | debian-bookworm | cd+++++++++ src/github.com/ 2025-12-04 18:42:41.501790 | debian-bookworm | cd+++++++++ src/github.com/osism/ 2025-12-04 18:42:41.501811 | debian-bookworm | cd+++++++++ src/github.com/osism/python-osism/ 2025-12-04 18:42:41.501831 | debian-bookworm | Containerfile 2025-12-04 18:42:41.501961 | debian-bookworm | Containerfile 2025-12-04 18:42:41.530425 | debian-bookworm | 11.6.4 2025-12-04 18:44:19.418663 | debian-bookworm | #9 21.41 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.4 2025-12-04 18:44:19.418671 | debian-bookworm | #9 21.41 npm notice To update run: npm install -g npm@11.6.4 2025-12-04 18:44:19.418675 | debian-bookworm | #9 21.41 npm notice 2025-12-04 18:44:20.025879 | debian-bookworm | #9 DONE 22.2s 2025-12-04 18:44:20.183663 | debian-bookworm | 2025-12-04 18:44:20.183802 | debian-bookworm | #11 [build 5/6] COPY . . 2025-12-04 18:44:20.708956 | debian-bookworm | #11 DONE 0.7s 2025-12-04 18:44:20.865067 | debian-bookworm | 2025-12-04 18:44:20.865159 | debian-bookworm | #12 [build 6/6] RUN npm run build 2025-12-04 18:44:21.214182 | debian-bookworm | #12 0.502 2025-12-04 18:44:21.214264 | debian-bookworm | #12 0.502 > frontend@0.1.0 build 2025-12-04 18:44:21.214272 | debian-bookworm | #12 0.502 > next build 2025-12-04 18:44:21.214278 | debian-bookworm | #12 0.502 2025-12-04 18:44:22.860289 | debian-bookworm | #12 2.148 ▲ Next.js 15.5.0 2025-12-04 18:44:23.065108 | debian-bookworm | #12 2.149 2025-12-04 18:44:23.065203 | debian-bookworm | #12 2.202 Creating an optimized production build ... 2025-12-04 18:44:50.417521 | debian-bookworm | #12 29.70 ✓ Compiled successfully in 22.8s 2025-12-04 18:44:50.576308 | debian-bookworm | #12 29.71 Linting and checking validity of types ... 2025-12-04 18:44:58.942441 | debian-bookworm | #12 38.23 Collecting page data ... 2025-12-04 18:45:02.219447 | debian-bookworm | #12 41.51 Generating static pages (0/10) ... 2025-12-04 18:45:03.034944 | debian-bookworm | #12 42.32 Generating static pages (2/10) 2025-12-04 18:45:03.460634 | debian-bookworm | #12 42.75 Generating static pages (4/10) 2025-12-04 18:45:03.613976 | debian-bookworm | #12 42.75 Generating static pages (7/10) 2025-12-04 18:45:03.614095 | debian-bookworm | #12 42.75 ✓ Generating static pages (10/10) 2025-12-04 18:45:04.963234 | debian-bookworm | #12 44.25 Finalizing page optimization ... 2025-12-04 18:45:05.114139 | debian-bookworm | #12 44.25 Collecting build traces ... 2025-12-04 18:45:33.611480 | debian-bookworm | #12 72.90 2025-12-04 18:45:33.768277 | debian-bookworm | #12 72.91 Route (app) Size First Load JS 2025-12-04 18:45:33.768365 | debian-bookworm | #12 72.91 ┌ ○ / 1.79 kB 136 kB 2025-12-04 18:45:33.768384 | debian-bookworm | #12 72.91 ├ ○ /_not-found 991 B 103 kB 2025-12-04 18:45:33.768400 | debian-bookworm | #12 72.91 ├ ƒ /api/config 127 B 102 kB 2025-12-04 18:45:33.768431 | debian-bookworm | #12 72.91 ├ ƒ /api/health 127 B 102 kB 2025-12-04 18:45:33.768447 | debian-bookworm | #12 72.91 ├ ○ /events 12.9 kB 115 kB 2025-12-04 18:45:33.768463 | debian-bookworm | #12 72.91 ├ ○ /nodes 3.38 kB 134 kB 2025-12-04 18:45:33.768478 | debian-bookworm | #12 72.91 └ ○ /services 1.41 kB 103 kB 2025-12-04 18:45:33.768538 | debian-bookworm | #12 72.91 + First Load JS shared by all 102 kB 2025-12-04 18:45:33.768555 | debian-bookworm | #12 72.91 ├ chunks/255-01c481785f268126.js 45.7 kB 2025-12-04 18:45:33.768570 | debian-bookworm | #12 72.91 ├ chunks/4bd1b696-c023c6e3521b1417.js 54.2 kB 2025-12-04 18:45:33.768585 | debian-bookworm | #12 72.91 └ other shared chunks (total) 1.92 kB 2025-12-04 18:45:33.768610 | debian-bookworm | #12 72.91 2025-12-04 18:45:33.768631 | debian-bookworm | #12 72.91 2025-12-04 18:45:33.768647 | debian-bookworm | #12 72.91 ○ (Static) prerendered as static content 2025-12-04 18:45:33.768665 | debian-bookworm | #12 72.91 ƒ (Dynamic) server-rendered on demand 2025-12-04 18:45:33.768680 | debian-bookworm | #12 72.91 2025-12-04 18:45:33.782692 | debian-bookworm | #12 DONE 73.1s 2025-12-04 18:45:34.703356 | debian-bookworm | 2025-12-04 18:45:34.703548 | debian-bookworm | #13 [runner 5/7] COPY --from=build /app/public ./public 2025-12-04 18:45:34.817732 | debian-bookworm | #13 DONE 0.1s 2025-12-04 18:45:34.972875 | debian-bookworm | 2025-12-04 18:45:34.972996 | debian-bookworm | #14 [runner 6/7] COPY --from=build --chown=nextjs:nodejs /app/.next/standalone ./ 2025-12-04 18:45:35.337039 | debian-bookworm | #14 DONE 0.5s 2025-12-04 18:45:35.495374 | debian-bookworm | 2025-12-04 18:45:35.495470 | debian-bookworm | #15 [runner 7/7] COPY --from=build --chown=nextjs:nodejs /app/.next/static ./.next/static 2025-12-04 18:45:35.564668 | debian-bookworm | #15 DONE 0.2s 2025-12-04 18:45:35.728722 | debian-bookworm | 2025-12-04 18:45:35.728823 | debian-bookworm | #16 exporting to image 2025-12-04 18:45:35.728840 | debian-bookworm | #16 exporting layers 2025-12-04 18:45:40.546335 | debian-bookworm | #16 exporting layers 5.0s done 2025-12-04 18:45:40.687050 | debian-bookworm | #16 exporting manifest sha256:6fd1f281970b0c52303519c7fe6ef2968dcc31d312833ee8c3dcc34a9581c865 0.0s done 2025-12-04 18:45:40.687137 | debian-bookworm | #16 exporting config sha256:2326e1aaea7eaa781741681c00128c0e41cf6c879264c172f0c19d0bc832c2ab 0.0s done 2025-12-04 18:45:40.687149 | debian-bookworm | #16 exporting attestation manifest sha256:16a6021647e9eb11e98d540381af445ca90fd73cfdc9c86719e09d0c949adb0b 0.1s done 2025-12-04 18:45:40.872414 | debian-bookworm | #16 exporting manifest list sha256:9dfe7403c4db4c2bf4203dd2f4c58f8dbbd0abd6f4c4d52c9747ccdf94fe378c 0.0s done 2025-12-04 18:45:40.872544 | debian-bookworm | #16 naming to docker.io/library/0f8886a:latest done 2025-12-04 18:45:40.872561 | debian-bookworm | #16 unpacking to docker.io/library/0f8886a:latest 2025-12-04 18:45:41.965136 | debian-bookworm | #16 unpacking to docker.io/library/0f8886a:latest 1.2s done 2025-12-04 18:45:42.151294 | debian-bookworm | #16 DONE 6.4s 2025-12-04 18:45:42.241088 | debian-bookworm | + docker images 2025-12-04 18:45:42.321437 | debian-bookworm | WARNING: This output is designed for human readability. For machine-readable output, please use --format. 2025-12-04 18:45:42.321634 | debian-bookworm | IMAGE ID DISK USAGE CONTENT SIZE EXTRA 2025-12-04 18:45:42.321716 | debian-bookworm | 0f8886a:latest 9dfe7403c4db 336MB 80.8MB 2025-12-04 18:45:42.532199 | debian-bookworm | ok: Runtime: 0:01:51.711695 2025-12-04 18:45:42.546099 | 2025-12-04 18:45:42.546280 | TASK [Run push script] 2025-12-04 18:45:43.092455 | 2025-12-04 18:45:43.092787 | TASK [Run cosign script] 2025-12-04 18:45:43.629563 | debian-bookworm | skipping: Conditional result was False 2025-12-04 18:45:43.636589 | 2025-12-04 18:45:43.636766 | TASK [Run sbom script] 2025-12-04 18:45:44.176208 | debian-bookworm | skipping: Conditional result was False 2025-12-04 18:45:44.180626 | 2025-12-04 18:45:44.180844 | PLAY RECAP 2025-12-04 18:45:44.181054 | debian-bookworm | ok: 1 changed: 1 unreachable: 0 failed: 0 skipped: 4 rescued: 0 ignored: 0 2025-12-04 18:45:44.181170 | 2025-12-04 18:45:44.329281 | RUN END RESULT_NORMAL: [untrusted : github.com/osism/python-osism/playbooks/build.yml@main] 2025-12-04 18:45:44.331994 | POST-RUN START: [trusted : github.com/osism/zuul-config/playbooks/base/post.yaml@main] 2025-12-04 18:45:45.117234 | 2025-12-04 18:45:45.117451 | PLAY [Base post] 2025-12-04 18:45:45.132137 | 2025-12-04 18:45:45.132310 | TASK [remove-build-sshkey : Remove the build SSH key from all nodes] 2025-12-04 18:45:46.003544 | debian-bookworm | changed 2025-12-04 18:45:46.014102 | 2025-12-04 18:45:46.014270 | PLAY RECAP 2025-12-04 18:45:46.014370 | debian-bookworm | ok: 1 changed: 1 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2025-12-04 18:45:46.014441 | 2025-12-04 18:45:46.164140 | POST-RUN END RESULT_NORMAL: [trusted : github.com/osism/zuul-config/playbooks/base/post.yaml@main] 2025-12-04 18:45:46.165760 | POST-RUN START: [trusted : github.com/osism/zuul-config/playbooks/base/post-logs.yaml@main] 2025-12-04 18:45:46.949429 | 2025-12-04 18:45:46.949630 | PLAY [Base post-logs] 2025-12-04 18:45:46.960935 | 2025-12-04 18:45:46.961095 | TASK [generate-zuul-manifest : Generate Zuul manifest] 2025-12-04 18:45:47.444246 | localhost | changed 2025-12-04 18:45:47.455298 | 2025-12-04 18:45:47.455568 | TASK [generate-zuul-manifest : Return Zuul manifest URL to Zuul] 2025-12-04 18:45:47.495496 | localhost | ok 2025-12-04 18:45:47.502976 | 2025-12-04 18:45:47.503168 | TASK [Set zuul-log-path fact] 2025-12-04 18:45:47.523613 | localhost | ok 2025-12-04 18:45:47.539602 | 2025-12-04 18:45:47.539797 | TASK [set-zuul-log-path-fact : Set log path for a build] 2025-12-04 18:45:47.578294 | localhost | ok 2025-12-04 18:45:47.585559 | 2025-12-04 18:45:47.585768 | TASK [upload-logs : Create log directories] 2025-12-04 18:45:48.098321 | localhost | changed 2025-12-04 18:45:48.104488 | 2025-12-04 18:45:48.104723 | TASK [upload-logs : Ensure logs are readable before uploading] 2025-12-04 18:45:48.650658 | localhost -> localhost | ok: Runtime: 0:00:00.007663 2025-12-04 18:45:48.658457 | 2025-12-04 18:45:48.658639 | TASK [upload-logs : Upload logs to log server] 2025-12-04 18:45:49.236908 | localhost | Output suppressed because no_log was given 2025-12-04 18:45:49.239794 | 2025-12-04 18:45:49.239948 | LOOP [upload-logs : Compress console log and json output] 2025-12-04 18:45:49.303087 | localhost | skipping: Conditional result was False 2025-12-04 18:45:49.308632 | localhost | skipping: Conditional result was False 2025-12-04 18:45:49.322894 | 2025-12-04 18:45:49.323137 | LOOP [upload-logs : Upload compressed console log and json output] 2025-12-04 18:45:49.372691 | localhost | skipping: Conditional result was False 2025-12-04 18:45:49.373440 | 2025-12-04 18:45:49.376826 | localhost | skipping: Conditional result was False 2025-12-04 18:45:49.388974 | 2025-12-04 18:45:49.389149 | LOOP [upload-logs : Upload console log and json output]