From ef5286ddecbf197a16e65d52b0b8a76815f40c12 Mon Sep 17 00:00:00 2001 From: Liv Dywan Date: Wed, 10 Jan 2024 14:59:44 +0000 Subject: [PATCH] ObsRsync: Consistently expand status URL See: https://progress.opensuse.org/issues/112871 --- lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller/Gru.pm | 10 +++++++++- t/ui/27-plugin_obs_rsync_obs_status.t | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller/Gru.pm b/lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller/Gru.pm index fb1adfa89a2d..b440e02809b6 100644 --- a/lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller/Gru.pm +++ b/lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller/Gru.pm @@ -128,7 +128,15 @@ sub run { return $self->render(json => {message => 'queue full'}, status => QUEUE_FULL) if ($results->{total} >= $queue_limit); - $app->gru->enqueue('obs_rsync_run', {project => $project, url => $helper->project_status_url}, {priority => 100}); + # XXX: see ObsRsync.pm _get_api_dirty_status_url + # need split eventual batch and repository in project name + my $url = $helper->project_status_url; + # ($project, undef) = $helper->split_alias($project); + # my $package = $helper->get_api_package($project); + # ($project, undef) = $helper->split_repo($project); + $url =~ s/%%PROJECT/$project/g; + + $app->gru->enqueue('obs_rsync_run', {project => $project, url => $url}, {priority => 100}); return $self->render(json => {message => 'queued'}, status => QUEUED) if $has_active_job; # uncoverable statement return $self->render(json => {message => 'started'}, status => STARTED); diff --git a/t/ui/27-plugin_obs_rsync_obs_status.t b/t/ui/27-plugin_obs_rsync_obs_status.t index 1dc0de4a0b42..df90bd3be60e 100644 --- a/t/ui/27-plugin_obs_rsync_obs_status.t +++ b/t/ui/27-plugin_obs_rsync_obs_status.t @@ -217,7 +217,7 @@ $t->get_ok('/admin/obs_rsync/queue')->status_is(200, 'jobs list')->content_like( ->content_unlike(qr/\bactive\b/)->content_like(qr/Proj1/)->content_like(qr/Proj2/)->content_unlike(qr/Proj3/); $t->get_ok('/admin/obs_rsync/')->status_is(200, 'project list')->content_like(qr/published/)->content_like(qr/dirty/) - ->content_like(qr/publishing/); + ->content_like(qr/publishing/)->content_like(qr/$host\build\/Proj?/); subtest 'build service ssh authentication' => sub { is($helper->is_status_dirty('ProjWithAuth'), 1, 're-authenticate with ssh auth');