Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2025-12-11 18:37:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Thu Dec 11 18:37:54 2025 rev:782 rq:1321988 version:5.1765365298.9af08171 Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2025-12-10 15:33:14.457109525 +0100 +++ /work/SRC/openSUSE:Factory/.openQA.new.1939/openQA.changes 2025-12-11 18:38:00.129054072 +0100 @@ -1,0 +2,9 @@ +Wed Dec 10 15:10:39 UTC 2025 - [email protected] + +- Update to version 5.1765365298.9af08171: + * KTAP: Properly hide details of a skipped subtest + * docs: Restory logic of the sentence about NFT vs firewalld + * docs: Clarify DHCP/RA availability on MM networks + * feat: Allow to configure key+secret with env variables + +------------------------------------------------------------------- Old: ---- openQA-5.1765286149.3debb8ea.obscpio New: ---- openQA-5.1765365298.9af08171.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:02.113137445 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:02.117137614 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1765286149.3debb8ea +Version: 5.1765365298.9af08171 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:02.169139799 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:02.173139967 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1765286149.3debb8ea +Version: 5.1765365298.9af08171 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:02.221141984 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:02.225142152 +0100 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1765286149.3debb8ea +Version: 5.1765365298.9af08171 Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:02.277144338 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:02.281144505 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1765286149.3debb8ea +Version: 5.1765365298.9af08171 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:02.341147027 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:02.341147027 +0100 @@ -99,7 +99,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1765286149.3debb8ea +Version: 5.1765365298.9af08171 Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ openQA-5.1765286149.3debb8ea.obscpio -> openQA-5.1765365298.9af08171.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/docs/Client.asciidoc new/openQA-5.1765365298.9af08171/docs/Client.asciidoc --- old/openQA-5.1765286149.3debb8ea/docs/Client.asciidoc 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/docs/Client.asciidoc 2025-12-10 12:14:58.000000000 +0100 @@ -82,8 +82,12 @@ secret = ABCDEF1234567890 ---- -For ad-hoc use all `openqa-cli` subcommands use the `--apikey` and `--apisecret` -options. Which will override whatever the config files may contain. +Alternatively specify key and secret in environment variables `OPENQA_API_KEY` +and `OPENQA_API_SECRET`. + +For ad-hoc use all `openqa-cli` subcommands use the `--apikey` and +`--apisecret` options which will override whatever the environment or config +files may contain. [source,sh] ---- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/docs/Networking.asciidoc new/openQA-5.1765365298.9af08171/docs/Networking.asciidoc --- old/openQA-5.1765286149.3debb8ea/docs/Networking.asciidoc 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/docs/Networking.asciidoc 2025-12-10 12:14:58.000000000 +0100 @@ -123,8 +123,8 @@ ===== Configure NAT with firewalld NOTE: `os-autoinst-setup-multi-machine` can set this up for you, but using -plain NFT instead (which `os-autoinst-setup-multi-machine` can setup as well) -or firewalld is recommended due to firewalld's suboptimal performance with +plain NFT instead of firewalld (which `os-autoinst-setup-multi-machine` can +setup as well) is recommended due to firewalld's suboptimal performance with many tap interfaces present. The required firewall rules for masquerading (NAT) and zone configuration @@ -243,6 +243,15 @@ example; this will not conflict with MAC addresses used by os-autoinst) and use a tap device not used at the same time by a SUT-VM. +NOTE: Different from the qemu user mode network setup there is no DHCP or +router advertisement on the multi machine network. IP addresses, routes and DNS +needs to be set up by test scripts. By default IP ranges are similar to the +ones used by qemu usermode networking - except for the IPv6 default route which +is via `fec0::2` for MM networks instead of `fe80::2` for usermode networks. + +NOTE: There is no default/builtin DNS server on MM networks - if you need DNS, +use an upstream dns server on the local network of the worker host or the internet. + Within the VM configure the network *like* this (you may need to adjust concrete IP addresses, subnets and interface names): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/lib/OpenQA/Parser/Format/KTAP.pm new/openQA-5.1765365298.9af08171/lib/OpenQA/Parser/Format/KTAP.pm --- old/openQA-5.1765286149.3debb8ea/lib/OpenQA/Parser/Format/KTAP.pm 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/lib/OpenQA/Parser/Format/KTAP.pm 2025-12-10 12:14:58.000000000 +0100 @@ -94,6 +94,7 @@ } elsif ($line =~ /#\s*SKIP\b/i) { $steps->{result} = 'skip'; + $steps->{details} = []; } $steps->{name} = $self->test->{name}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/lib/OpenQA/UserAgent.pm new/openQA-5.1765365298.9af08171/lib/OpenQA/UserAgent.pm --- old/openQA-5.1765286149.3debb8ea/lib/OpenQA/UserAgent.pm 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/lib/OpenQA/UserAgent.pm 2025-12-10 12:14:58.000000000 +0100 @@ -15,6 +15,8 @@ sub new { my $self = shift->SUPER::new(@_); my %args = @_; + $args{apikey} //= $ENV{OPENQA_API_KEY}; + $args{apisecret} //= $ENV{OPENQA_API_SECRET}; for my $i (qw(apikey apisecret)) { $self->$i($args{$i}) if $args{$i}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/public/openqa-cli.yaml new/openQA-5.1765365298.9af08171/public/openqa-cli.yaml --- old/openQA-5.1765286149.3debb8ea/public/openqa-cli.yaml 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/public/openqa-cli.yaml 2025-12-10 12:14:58.000000000 +0100 @@ -22,10 +22,11 @@ Configuration: - API key and secret are read from "client.conf" if not specified via CLI - arguments. The config file is checked for under "$OPENQA_CONFIG", - "~/.config/openqa" and "/etc/openqa" in this order. It must look like - this: + API key and secret are read from "client.conf" or environment + variables "OPENQA_API_KEY" and "OPENQA_API_SECRET" if not specified + via CLI arguments. The config file is checked for under + "$OPENQA_CONFIG", "~/.config/openqa" and "/etc/openqa" in this + order. It must look like this: [openqa.opensuse.org] key = 45ABCEB4562ACB04 @@ -36,8 +37,10 @@ options: - apibase=s --API base, defaults to /api/v1 - - apikey=s --API key - - apisecret=s --API secret + - apikey=s --API key. Use is discouraged due to risk of leaking + credentials. Prefer config file or env variables. + - apisecret=s --API secret. Use is discouraged due to risk of leaking + credentials. Prefer config file or env variables. - host=s --Target host, defaults to http://localhost - help|h --Get more information on a specific command - osd --Set target host to http://openqa.suse.de diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/script/openqa-clone-job new/openQA-5.1765365298.9af08171/script/openqa-clone-job --- old/openQA-5.1765286149.3debb8ea/script/openqa-clone-job 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/script/openqa-clone-job 2025-12-10 12:14:58.000000000 +0100 @@ -58,9 +58,9 @@ part of the URL or as its own parameter. API key and secret are read from "client.conf" if not specified via CLI -arguments. The config file is checked for under "$OPENQA_CONFIG", -"~/.config/openqa" and "/etc/openqa" in this order. It must look like -this: +arguments or environment variables "OPENQA_API_KEY" and "OPENQA_API_SECRET". +The config file is checked for under "$OPENQA_CONFIG", "~/.config/openqa" and +"/etc/openqa" in this order. It must look like this: [openqa.opensuse.org] key = 45ABCEB4562ACB04 @@ -181,11 +181,15 @@ =item B<--apikey> <value> -Specifies the public key needed for API authentication. +Specifies the public key needed for API authentication. Overrides config file +setting and environment variable C<OPENQA_API_KEY>. Use is discouraged due to +risk of leaking credentials. =item B<--apisecret> <value> -Specifies the secret key needed for API authentication. +Specifies the secret key needed for API authentication. Overrides config file +setting and environment variable C<OPENQA_API_SECRET>. Use is discouraged due +to risk of leaking credentials. =item B<--verbose, -v> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/script/openqa-dump-templates new/openQA-5.1765365298.9af08171/script/openqa-dump-templates --- old/openQA-5.1765286149.3debb8ea/script/openqa-dump-templates 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/script/openqa-dump-templates 2025-12-10 12:14:58.000000000 +0100 @@ -25,9 +25,9 @@ =item B<--apikey> KEY, B<--apisecret> SECRET -Specify api key and secret to use, overrides use of config file ~/.config/openqa/client.conf - -override values from config file +Specify api key and secret to use, overrides use of config file +~/.config/openqa/client.conf and environment variable C<OPENQA_API_KEY>. Use +is discouraged due to risk of leaking credentials. =item B<--group> GROUP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/script/openqa-load-templates new/openQA-5.1765365298.9af08171/script/openqa-load-templates --- old/openQA-5.1765286149.3debb8ea/script/openqa-load-templates 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/script/openqa-load-templates 2025-12-10 12:14:58.000000000 +0100 @@ -25,9 +25,9 @@ =item B<--apikey> KEY, B<--apisecret> SECRET -Specify api key and secret to use, overrides use of config file ~/.config/openqa/client.conf - -override values from config file +Specify api key and secret to use, overrides use of config file +~/.config/openqa/client.conf and environment variable C<OPENQA_API_KEY>. Use +is discouraged due to risk of leaking credentials. =item B<--clean> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/script/worker new/openQA-5.1765365298.9af08171/script/worker --- old/openQA-5.1765286149.3debb8ea/script/worker 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/script/worker 2025-12-10 12:14:58.000000000 +0100 @@ -24,11 +24,15 @@ =item B<--apikey> <value> -specify the public key needed for API authentication +specify the public key needed for API authentication. Overrides config file +setting and environment variable C<OPENQA_API_KEY>. Use is discouraged due to +risk of leaking credentials. =item B<--apisecret> <value> -specify the secret key needed for API authentication +specify the secret key needed for API authentication. Overrides config file +setting and environment variable C<OPENQA_API_SECRET>. Use is discouraged due +to risk of leaking credentials. =item B<--isotovideo> PATH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1765286149.3debb8ea/t/api/03-auth.t new/openQA-5.1765365298.9af08171/t/api/03-auth.t --- old/openQA-5.1765286149.3debb8ea/t/api/03-auth.t 2025-12-09 14:15:49.000000000 +0100 +++ new/openQA-5.1765365298.9af08171/t/api/03-auth.t 2025-12-10 12:14:58.000000000 +0100 @@ -49,6 +49,16 @@ client($t, apikey => undef, apisecret => undef); +subtest 'key+secret from env variables' => sub { + my $t_new = Test::Mojo->new('OpenQA::WebAPI'); + $t_new->delete_ok('/api/v1/assets/1')->status_is(403, 'clean user agent has no credentials'); + local $ENV{OPENQA_API_KEY} = 'LANCELOTKEY01'; + local $ENV{OPENQA_API_SECRET} = 'MANYPEOPLEKNOW'; + client($t_new, apikey => undef, apisecret => undef); + $t_new->delete_ok('/api/v1/assets/1')->status_is(403) + ->json_is('/error' => 'Administrator level required', 'key read from env (but missing administrator level)'); +}; + subtest 'access limiting for non authenticated users' => sub { $t->get_ok('/api/v1/jobs')->status_is(200); is $t->tx->res->headers->access_control_allow_origin, '*', 'CORS header set for non authenticated routes'; ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.DBeX9S/_old 2025-12-11 18:38:19.217856210 +0100 +++ /var/tmp/diff_new_pack.DBeX9S/_new 2025-12-11 18:38:19.273858563 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 5.1765286149.3debb8ea -mtime: 1765286149 -commit: 3debb8ea6096217a80e20b52a705fb0186382cbf +version: 5.1765365298.9af08171 +mtime: 1765365298 +commit: 9af081713946f8a6bc765d509a3ce855b547fdcf
