Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2026-10-20 12:42:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Tue Oct 20 12:42:39 2026 rev:894 rq:1386373 version:5.1792422872.0ae0959e Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2026-10-18 19:26:10.098897017 +0200 +++ /work/SRC/openSUSE:Factory/.openQA.new.3698736/openQA.changes 2026-10-20 12:42:55.502047218 +0200 @@ -1,0 +2,21 @@ +Mon Oct 19 15:14:50 UTC 2026 - [email protected] + +- Update to version 5.1792422872.0ae0959e: + * chore(deps-dev): bump acorn from 8.16.0 to 8.19.0 (#7983) + * fix(ui): Apply dark theme to text-bg-light badges + * fix(ui): Apply dark theme to btn-light buttons + * fix(worker): use 0-based tap index in OVS health check + * fix(ui): Improve dark theme contrast in a few places + * ci(mergify): support opt-out labels for extended tests + * test: speed up t/25-cache-service.t + * fix(deps): align MCP version requirement + * feat(docs): Improve openqa-cli documentation + * test: Ensure the `relevantfilter` is in the right state + +------------------------------------------------------------------- +Sun Oct 18 11:38:21 UTC 2026 - [email protected] + +- Update to version 5.1792323491.fd999d95: + * feat(container): Install swtpm in the worker image + +------------------------------------------------------------------- Old: ---- openQA-5.1792312714.72310e70.obscpio New: ---- openQA-5.1792422872.0ae0959e.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:42:58.530173897 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:42:58.532173981 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1792312714.72310e70 +Version: 5.1792422872.0ae0959e Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:42:58.580175989 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:42:58.582176072 +0200 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1792312714.72310e70 +Version: 5.1792422872.0ae0959e Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:42:58.656179168 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:42:58.661179377 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1792312714.72310e70 +Version: 5.1792422872.0ae0959e Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:42:58.708181344 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:42:58.712181511 +0200 @@ -73,7 +73,7 @@ # The following line is generated from dependencies.yaml %define worker_requires bsdtar openQA-client optipng os-autoinst perl(Capture::Tiny) perl(File::Map) perl(Minion::Backend::SQLite) >= 5.0.7 perl(Mojo::IOLoop::ReadWriteProcess) >= 0.26 perl(Mojo::SQLite) psmisc sqlite3 >= 3.24.0 # The following line is generated from dependencies.yaml -%define mcp_requires perl(MCP) >= 0.80.0 +%define mcp_requires perl(MCP) >= 0.15.0 %if 0%{?suse_version} < 1570 # SLE <= 15 has older Perl not providing a sufficiently recent # ExtUtils::ParseXS needed by ExtUtils::CppGuess @@ -104,7 +104,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1792312714.72310e70 +Version: 5.1792422872.0ae0959e Release: 0 Summary: Framework for automated system-level testing (web-frontend, scheduler and tools) Group: Development/Tools/Other ++++++ node_modules.obscpio ++++++ Binary files old/acorn-8.16.0.tgz and new/acorn-8.16.0.tgz differ Binary files old/acorn-8.19.0.tgz and new/acorn-8.19.0.tgz differ ++++++ node_modules.spec.inc ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:42:59.722223765 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:42:59.726223932 +0200 @@ -36,7 +36,7 @@ Source1035: https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz#/@types-estree-1.0.9.tgz Source1036: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#/@types-json-schema-7.0.15.tgz Source1037: https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.6.tgz#/ace-builds-1.43.6.tgz -Source1038: https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz#/acorn-8.16.0.tgz +Source1038: https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz#/acorn-8.19.0.tgz Source1039: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2.tgz Source1040: https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz#/ajv-6.14.0.tgz Source1041: https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz#/ajv-8.18.0.tgz ++++++ openQA-5.1792312714.72310e70.obscpio -> openQA-5.1792422872.0ae0959e.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/.mergify.yml new/openQA-5.1792422872.0ae0959e/.mergify.yml --- old/openQA-5.1792312714.72310e70/.mergify.yml 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/.mergify.yml 2026-10-19 17:14:32.000000000 +0200 @@ -2,28 +2,31 @@ - name: automatic merge conditions: - and: &base_checks - - base=master - - -label~=^acceptance-tests-needed|not-ready - # wait explicitly for one of the final checks to show up to be on the - # safe side even in case of checks not reporting back at all - - status-success=codecov/project - - status-success=codecov/patch + - and: &core_checks + - base=master + - -label~=^acceptance-tests-needed|not-ready + # wait explicitly for one of the final checks to show up to be on the + # safe side even in case of checks not reporting back at all + - status-success=codecov/project + - status-success=codecov/patch + - status-success=static-check-containers + - status-success=webui-docker-compose + - '#check-failure=0' + - linear-history # Multibuild results will not report the "pending" status: # https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.scm_ci_workflow_integration.html#sec.obs.obs_scm_ci_workflow_integration.setup.status_reporting # "unresolvable" is not reported in general: # https://trello.com/c/0N3jHq5M/2257-report-back-to-scm-when-build-results-arent-failed-and-succeeded # So we need to require the number of tests explicitly: - - "#check-success>=39" - - status-success=static-check-containers - - status-success=webui-docker-compose - - "#check-failure=0" - - "#check-pending=0" - - linear-history + - '#check-success>=39' + - status-success=openqa-in-openqa-tests + - '#check-pending=0' - and: - - "#approved-reviews-by>=2" - - "#changes-requested-reviews-by=0" + - '#approved-reviews-by>=2' + - '#changes-requested-reviews-by=0' # https://doc.mergify.io/examples.html#require-all-requested-reviews-to-be-approved - - "#review-requested=0" + - '#review-requested=0' + - -label~=^merge-skip-|merge-fast actions: &merge merge: method: merge @@ -31,6 +34,26 @@ conditions: - and: *base_checks - label=merge-fast + - -label~=^merge-skip- + actions: *merge + - name: automatic merge on merge-skip-oqa-in-oqa-tests + conditions: + - and: *core_checks + - '#check-success>=39' + - label=merge-skip-oqa-in-oqa-tests + - -label=merge-skip-extended-tests + actions: *merge + - name: automatic merge on merge-skip-obs-tests + conditions: + - and: *core_checks + - status-success=openqa-in-openqa-tests + - label=merge-skip-obs-tests + - -label=merge-skip-extended-tests + actions: *merge + - name: automatic merge on merge-skip-extended-tests + conditions: + - and: *core_checks + - label=merge-skip-extended-tests actions: *merge - name: automatic merge for dependency bot updates conditions: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/assets/stylesheets/dependency_graph.scss new/openQA-5.1792422872.0ae0959e/assets/stylesheets/dependency_graph.scss --- old/openQA-5.1792312714.72310e70/assets/stylesheets/dependency_graph.scss 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/assets/stylesheets/dependency_graph.scss 2026-10-19 17:14:32.000000000 +0200 @@ -79,3 +79,34 @@ } } } +[data-bs-theme='dark'] #dependencygraph { + .node rect { + stroke: $default-font-color-dark; + fill: lighten($default-bg-color-dark, 8%); + } + .cluster rect { + fill: #0d2a38; + } + .edgePath path { + stroke: $default-font-color-dark; + } + marker path { + fill: $default-font-color-dark; + stroke: $default-font-color-dark; + } + table { + color: $default-font-color-dark; + tr { + border-color: $table-border-color-dark; + &.current { + border-color: $default-font-color-dark; + td:first-child { + background-color: #5c5a1a; + } + } + } + td:last-child { + background-color: lighten($default-bg-color-dark, 20%); + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/assets/stylesheets/forms.scss new/openQA-5.1792422872.0ae0959e/assets/stylesheets/forms.scss --- old/openQA-5.1792312714.72310e70/assets/stylesheets/forms.scss 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/assets/stylesheets/forms.scss 2026-10-19 17:14:32.000000000 +0200 @@ -75,11 +75,23 @@ } } } -.darkmode { - .btn.btn-light { - background-color: #070605; - border-color: #070605; - } +[data-bs-theme='dark'] .btn-light { + --bs-btn-color: #{$default-font-color-dark}; + --bs-btn-bg: #{$btn-light-bg-dark}; + --bs-btn-border-color: #{$btn-light-bg-dark}; + --bs-btn-hover-color: #{$default-font-color-dark}; + --bs-btn-hover-bg: #101010; + --bs-btn-hover-border-color: #101010; + --bs-btn-active-color: #{$default-font-color-dark}; + --bs-btn-active-bg: #101010; + --bs-btn-active-border-color: #101010; + --bs-btn-disabled-color: #{$default-font-color-dark}; + --bs-btn-disabled-bg: #{$btn-light-bg-dark}; + --bs-btn-disabled-border-color: #{$btn-light-bg-dark}; +} +[data-bs-theme='dark'] .text-bg-light { + background-color: $btn-light-bg-dark !important; + color: $default-font-color-dark !important; } // wells (used for comments) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/assets/stylesheets/overall.scss new/openQA-5.1792422872.0ae0959e/assets/stylesheets/overall.scss --- old/openQA-5.1792312714.72310e70/assets/stylesheets/overall.scss 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/assets/stylesheets/overall.scss 2026-10-19 17:14:32.000000000 +0200 @@ -246,6 +246,10 @@ } // tooltips +[data-bs-theme='dark'] .tooltip { + --bs-tooltip-bg: #{lighten($default-bg-color-dark, 20%)}; + --bs-tooltip-color: #{$default-font-color-dark}; +} .tooltip .tooltip-inner { max-width: 400px; p { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/assets/stylesheets/tables.scss new/openQA-5.1792422872.0ae0959e/assets/stylesheets/tables.scss --- old/openQA-5.1792312714.72310e70/assets/stylesheets/tables.scss 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/assets/stylesheets/tables.scss 2026-10-19 17:14:32.000000000 +0200 @@ -127,8 +127,9 @@ } } } -[data-bs-theme='dark'] .failedmodule { - background: #8c2b2b; +[data-bs-theme='dark'] table.overview .failedmodule { + background-color: #8c2b2b; + border-color: #b34a4a; color: #fff; } table.fixedheader { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/container/worker/Dockerfile new/openQA-5.1792422872.0ae0959e/container/worker/Dockerfile --- old/openQA-5.1792312714.72310e70/container/worker/Dockerfile 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/container/worker/Dockerfile 2026-10-19 17:14:32.000000000 +0200 @@ -22,6 +22,7 @@ zypper in -yl kmod && \ (zypper in -yl qemu-ovmf-x86_64 ||:) && \ (zypper in -yl qemu-uefi-aarch64 ||:) && \ + (zypper in -yl swtpm ||:) && \ zypper clean && \ mkdir -p /root/qemu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/cpanfile new/openQA-5.1792422872.0ae0959e/cpanfile --- old/openQA-5.1792312714.72310e70/cpanfile 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/cpanfile 2026-10-19 17:14:32.000000000 +0200 @@ -53,7 +53,7 @@ requires 'JavaScript::Minifier::XS', '>= 0.11'; requires 'LWP::Protocol::https'; requires 'LWP::UserAgent'; -requires 'MCP', '>= 0.80.0'; +requires 'MCP', '>= 0.15.0'; requires 'Minion', '>= 10.25'; requires 'Minion::Backend::SQLite', '>= 5.0.7'; requires 'Module::Load::Conditional'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/dependencies.yaml new/openQA-5.1792422872.0ae0959e/dependencies.yaml --- old/openQA-5.1792312714.72310e70/dependencies.yaml 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/dependencies.yaml 2026-10-19 17:14:32.000000000 +0200 @@ -187,7 +187,7 @@ psmisc: mcp_requires: - perl(MCP): '>= 0.80.0' + perl(MCP): '>= 0.15.0' test_requires: '%common_requires': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/dist/rpm/openQA.spec new/openQA-5.1792422872.0ae0959e/dist/rpm/openQA.spec --- old/openQA-5.1792312714.72310e70/dist/rpm/openQA.spec 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/dist/rpm/openQA.spec 2026-10-19 17:14:32.000000000 +0200 @@ -73,7 +73,7 @@ # The following line is generated from dependencies.yaml %define worker_requires bsdtar openQA-client optipng os-autoinst perl(Capture::Tiny) perl(File::Map) perl(Minion::Backend::SQLite) >= 5.0.7 perl(Mojo::IOLoop::ReadWriteProcess) >= 0.26 perl(Mojo::SQLite) psmisc sqlite3 >= 3.24.0 # The following line is generated from dependencies.yaml -%define mcp_requires perl(MCP) >= 0.80.0 +%define mcp_requires perl(MCP) >= 0.15.0 %if 0%{?suse_version} < 1570 # SLE <= 15 has older Perl not providing a sufficiently recent # ExtUtils::ParseXS needed by ExtUtils::CppGuess diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/docs/Client.md new/openQA-5.1792422872.0ae0959e/docs/Client.md --- old/openQA-5.1792312714.72310e70/docs/Client.md 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/docs/Client.md 2026-10-19 17:14:32.000000000 +0200 @@ -42,10 +42,11 @@ The `api` subcommand is not the only one available and more will be added over time. To get a complete list of all currently available subcommands you can use -the `--help` option. +the `--help` option or `man`. ```sh openqa-cli --help +man openqa-cli ``` And each subcommand also contains descriptions for all its available options, as @@ -55,6 +56,9 @@ openqa-cli api --help ``` +See also the [online +manpage](https://manpages.opensuse.org/Tumbleweed/openQA-client/openqa-cli.1). + ## Authentication Not all REST endpoints are public, many will return a `403 Forbidden` error if diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/docs/UsersGuide.md new/openQA-5.1792422872.0ae0959e/docs/UsersGuide.md --- old/openQA-5.1792312714.72310e70/docs/UsersGuide.md 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/docs/UsersGuide.md 2026-10-19 17:14:32.000000000 +0200 @@ -1222,8 +1222,11 @@ openQA includes a _client_ script which - depending on the distribution - is packaged independently to allow interfacing with an existing openQA instance -without needing to install openQA itself. Call `openqa-cli --help` for help. The sub-commands provide further help, e.g. `openqa-cli api --help` contains -a lot of examples. +without needing to install openQA itself. Call `openqa-cli --help` or +`man openqa-cli` for help, or view the [online +manpage](https://manpages.opensuse.org/Tumbleweed/openQA-client/openqa-cli.1). +The sub-commands provide further help, e.g. `openqa-cli api --help` contains a +lot of examples. Shell completion for `bash` and `zsh` is available via the `openqa-client-bash-completion` and `openqa-client-zsh-completion` packages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/lib/OpenQA/Worker.pm new/openQA-5.1792422872.0ae0959e/lib/OpenQA/Worker.pm --- old/openQA-5.1792312714.72310e70/lib/OpenQA/Worker.pm 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/lib/OpenQA/Worker.pm 2026-10-19 17:14:32.000000000 +0200 @@ -712,10 +712,10 @@ return "D-Bus method '$name/switch' is not available" unless defined $switch; # check whether VLAN assignments work for required tap devices my $settings = $self->settings->global_settings; - my @devices = split /,/, $settings->{REQUIRED_TAP_DEVS} // ('tap' . $self->instance_number); + my @devices = split /,/, $settings->{REQUIRED_TAP_DEVS} // ('tap' . ($self->instance_number - 1)); for my $device (@devices) { my ($res, $msg) = $switch->set_vlan($device, 1); # test set_vlan - return $msg if $res != 0; # return e.g. "'tap1' is not connected to 'br1'" in case of improper setup + return $msg if $res != 0; # return e.g. "'tap0' is not connected to 'br1'" in case of improper setup ($res, $msg) = $switch->unset_vlan($device, 1); # clean temporarily VLAN assignment up return $msg if $res != 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/package-lock.json new/openQA-5.1792422872.0ae0959e/package-lock.json --- old/openQA-5.1792312714.72310e70/package-lock.json 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/package-lock.json 2026-10-19 17:14:32.000000000 +0200 @@ -617,9 +617,9 @@ "license": "BSD-3-Clause" }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", + "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", "dev": true, "license": "MIT", "bin": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/public/openqa-cli.yaml new/openQA-5.1792422872.0ae0959e/public/openqa-cli.yaml --- old/openQA-5.1792312714.72310e70/public/openqa-cli.yaml 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/public/openqa-cli.yaml 2026-10-19 17:14:32.000000000 +0200 @@ -166,6 +166,14 @@ options: - asset-size-limit|l=i --Asset size limit in bytes - with-thumbnails|t --Download thumbnails as well + parameters: + - name: job_id + summary: ID of the job to archive + required: true + - name: path + summary: Path to directory where to store files + type: file + required: true reservation: summary: Manage worker reservations @@ -178,11 +186,21 @@ - force|f --Force reservation even if worker is already reserved - release|r --Release an existing reservation - worker-host=s --Reserve or release an entire worker host instead of individual WORKER_ID + parameters: + - name: worker_id + summary: ID (int) of worker + required: true schedule: summary: Schedules a set of jobs (via "isos post" creating a schedule product) description: | Usage: openqa-cli schedule [OPTIONS] DISTRI=… VERSION=… FLAVOR=… ARCH=… [ISO=… …] + + Example: + + openqa-cli schedule --o3 \ + --param-file SCENARIO_DEFINITIONS_YAML=scenario-definitions.yaml \ + DISTRI=openQA VERSION=Tumbleweed FLAVOR=dev ARCH=x86_64 options: - *param_file - | @@ -193,6 +211,9 @@ follow|f --Use the newest clone of each monitored job - &poll_intervall poll-interval|i=i --Specifies the poll interval used with --monitor + parameters: + - name: parameters + summary: Query parameters (DISTRI=… VERSION=… FLAVOR=… ARCH=… [ISO=… …]) monitor: summary: Monitors a set of jobs @@ -204,3 +225,7 @@ options: - *poll_intervall - *follow + parameters: + - name: job_id + multiple: true + summary: Jobs to monitor diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/t/24-worker-overall.t new/openQA-5.1792422872.0ae0959e/t/24-worker-overall.t --- old/openQA-5.1792312714.72310e70/t/24-worker-overall.t 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/t/24-worker-overall.t 2026-10-19 17:14:32.000000000 +0200 @@ -725,22 +725,25 @@ 'returns error if switch object not available'; }; - my $fake_switch = Test::FakeDBusSwitch->new(set_vlan_result => [1, "'tap1' is not connected to 'br1'"]); + my $fake_switch = Test::FakeDBusSwitch->new(set_vlan_result => [1, "'tap0' is not connected to 'br1'"]); subtest 'set_vlan failure' => sub { $fake_service->mock_switch($fake_switch); - is $worker->ovs_dbus_service_error, "'tap1' is not connected to 'br1'", 'returns error if set_vlan fails'; + is $worker->ovs_dbus_service_error, "'tap0' is not connected to 'br1'", 'returns error if set_vlan fails'; }; subtest 'unset_vlan failure' => sub { $fake_switch->set_vlan_result([0, '']); - $fake_switch->unset_vlan_result([1, "'tap1' could not be unset"]); - is $worker->ovs_dbus_service_error, "'tap1' could not be unset", 'returns error if unset_vlan fails'; + $fake_switch->unset_vlan_result([1, "'tap0' could not be unset"]); + is $worker->ovs_dbus_service_error, "'tap0' could not be unset", 'returns error if unset_vlan fails'; }; - subtest 'custom REQUIRED_TAP_DEVS' => sub { + subtest 'default tap device and custom REQUIRED_TAP_DEVS' => sub { $fake_switch->unset_vlan_result([0, '']); my @checked_devices; $fake_switch->set_vlan_result(sub ($dev, $tag) { push @checked_devices, $dev; return (0, '') }); + is $worker->ovs_dbus_service_error, undef, 'succeeds with default tap device'; + is_deeply \@checked_devices, ['tap0'], 'instance 1 tests tap0 (matching os-autoinst tapdev calculation)'; + @checked_devices = (); $worker->settings->global_settings->{REQUIRED_TAP_DEVS} = 'tap10,tap11'; is $worker->ovs_dbus_service_error, undef, 'succeeds with custom REQUIRED_TAP_DEVS'; is_deeply \@checked_devices, ['tap10', 'tap11'], 'tested specified required tap devices'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/t/25-cache-service.t new/openQA-5.1792422872.0ae0959e/t/25-cache-service.t --- old/openQA-5.1792312714.72310e70/t/25-cache-service.t 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/t/25-cache-service.t 2026-10-19 17:14:32.000000000 +0200 @@ -18,7 +18,8 @@ $ENV{OPENQA_RSYNC_RETRY_PERIOD} = 0; $ENV{OPENQA_RSYNC_RETRIES} = 1; $ENV{OPENQA_METRICS_DOWNLOAD_SIZE} = 1024; - $ENV{OPENQA_TEST_WAIT_INTERVAL} = 0.05; + $ENV{OPENQA_TEST_WAIT_INTERVAL} = 0.01; + $ENV{OPENQA_MINION_DEQUEUE_TIMEOUT} = 0; $tempdir = tempdir; my $basedir = $tempdir->child('t', 'cache.d'); @@ -46,7 +47,7 @@ use Mojo::IOLoop::ReadWriteProcess::Session 'session'; use OpenQA::Test::Utils qw(fake_asset_server cache_minion_worker cache_worker_service wait_for_or_bail_out perform_minion_jobs wait_for); -use OpenQA::Test::TimeLimit '90'; +use OpenQA::Test::TimeLimit '60'; use Mojo::Util qw(md5_sum); use OpenQA::CacheService; use Test::MockModule; @@ -79,10 +80,10 @@ $sockets = OpenQA::Utils::reserve_ports([qw(webui cache_service)]); $host = make_access_url($sockets->{webui}->sockport); $cache_client = OpenQA::CacheService::Client->new; - $server_instance->set_pipes(0)->separate_err(0)->blocking_stop(1)->channels(0)->restart; - $cache_service->set_pipes(0)->separate_err(0)->blocking_stop(1)->channels(0)->restart; + $server_instance->set_pipes(0)->separate_err(0)->blocking_stop(1)->channels(0)->start; + $cache_service->set_pipes(0)->separate_err(0)->blocking_stop(1)->channels(0)->start; perform_minion_jobs($t->app->minion); - wait_for_or_bail_out { $cache_client->info->available } 'cache service', {interval => 0.5}; + wait_for_or_bail_out { $cache_client->info->available } 'cache service'; } sub test_default_usage ($id, $asset) { @@ -306,7 +307,7 @@ ok !$cache_client->info->available, 'Cache server is not available'; OpenQA::Utils::reserve_ports([qw(cache_service)], force => 1); $cache_client = OpenQA::CacheService::Client->new; - $cache_service->restart; + $cache_service->start; perform_minion_jobs($t->app->minion); wait_for_or_bail_out { $cache_client->info->available } 'cache service'; ok $cache_client->info->available, 'Cache server is available'; @@ -665,7 +666,7 @@ }; subtest 'OpenQA::CacheService::Task::Sync' => sub { - test_sync $_ for (1 .. 4); + test_sync $_ for (1 .. 2); subtest 'Sync to non-existent parent' => sub { my $from = tempdir; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/t/lib/OpenQA/Test/Utils.pm new/openQA-5.1792422872.0ae0959e/t/lib/OpenQA/Test/Utils.pm --- old/openQA-5.1792312714.72310e70/t/lib/OpenQA/Test/Utils.pm 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/t/lib/OpenQA/Test/Utils.pm 2026-10-19 17:14:32.000000000 +0200 @@ -94,7 +94,8 @@ require OpenQA::CacheService; # uncoverable statement local $ENV{MOJO_MODE} = 'test'; # uncoverable statement note('Starting cache minion worker'); # uncoverable statement - OpenQA::CacheService::run(qw(run --dequeue-timeout 1)); # uncoverable statement + my $dequeue_timeout = $ENV{OPENQA_MINION_DEQUEUE_TIMEOUT} // 1; # uncoverable statement + OpenQA::CacheService::run('run', '--dequeue-timeout', $dequeue_timeout); # uncoverable statement note('Cache minion worker stopped'); # uncoverable statement Devel::Cover::report() if Devel::Cover->can('report'); # uncoverable statement _exit(0); # uncoverable statement diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1792312714.72310e70/t/ui/01-list.t new/openQA-5.1792422872.0ae0959e/t/ui/01-list.t --- old/openQA-5.1792312714.72310e70/t/ui/01-list.t 2026-10-18 10:38:34.000000000 +0200 +++ new/openQA-5.1792422872.0ae0959e/t/ui/01-list.t 2026-10-19 17:14:32.000000000 +0200 @@ -460,6 +460,7 @@ $driver->find_element('#finished_jobs_result_filter_chosen .search-choice-close', 'css')->click(); # enable filter via query parameter, this time disable relevantfilter $driver->get('/tests?resultfilter=Failed&foo=bar&resultfilter=Softfailed'); + wait_for_ajax_and_animations(msg => 'tables loaded after reloading page with disabled relevantfilter'); $driver->find_element_by_id('relevantfilter')->click(); wait_for_ajax_and_animations(); @jobs = map { $_->get_attribute('id') } @{$driver->find_elements('#results tbody tr', 'css')}; ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.EN7Uv6/_old 2026-10-20 12:43:11.036697095 +0200 +++ /var/tmp/diff_new_pack.EN7Uv6/_new 2026-10-20 12:43:11.041697304 +0200 @@ -1,5 +1,5 @@ name: openQA -version: 5.1792312714.72310e70 -mtime: 1792312714 -commit: 72310e703d70af8d354ed5a2dd79ebe963790455 +version: 5.1792422872.0ae0959e +mtime: 1792422872 +commit: 0ae0959e946d6cd2ade2fae5258d7a83790d87f3
