Skip to content

Commit

Permalink
Merge pull request os-autoinst#5359 from perlpunk/api-cli-retry
Browse files Browse the repository at this point in the history
Make openqa-cli retry also on connection errors
  • Loading branch information
mergify[bot] authored Nov 14, 2023
2 parents 6e1f097 + 901317e commit e6799a9
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/OpenQA/Command.pm
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ sub retry_tx ($self, $client, $tx, $retries = undef, $delay = undef) {
for (;; --$retries) {
$tx = $client->start($tx);
my $res_code = $tx->res->code // 0;
return $self->handle_result($tx) unless $res_code =~ /50[23]/ && $retries > 0;
return $self->handle_result($tx) unless $res_code =~ /^(50[23]|0)$/ && $retries > 0;
print encode('UTF-8',
"Request failed, hit error $res_code, retrying up to $retries more times after waiting …\n");
sleep $delay;
Expand Down
5 changes: 5 additions & 0 deletions t/43-cli-api.t
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,11 @@ EOF

($stdout, $stderr, @result) = capture sub { $api->run('--retries', '1', @params) };
like $stdout, qr/failed.*retrying/, 'requests are retried on error if requested';

@params = ('--host', 'http://localhost:123456', '--retries', 1, 'api', 'test');
($stdout, $stderr, @result) = capture sub { $api->run(@params) };
like $stderr, qr/Connection refused/, 'aborts on connection refused';
like $stdout, qr/failed.*retrying/, 'requests are retried on error if requested';
};

subtest 'Pretty print JSON' => sub {
Expand Down

0 comments on commit e6799a9

Please sign in to comment.