Skip to content

Commit

Permalink
Prevent staging package twice
Browse files Browse the repository at this point in the history
Having two requests for the same target package makes no sense.

Fix #8730.

Co-authored-by: David Kang <dkang@suse.com>
  • Loading branch information
eduardoj and David Kang committed Nov 18, 2019
1 parent 87e8fe6 commit ee27afa
Show file tree
Hide file tree
Showing 8 changed files with 1,738 additions and 719 deletions.
7 changes: 6 additions & 1 deletion src/api/app/models/staging/staged_requests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ def requests
def link_package(bs_request_action)
request = bs_request_action.bs_request

if Package.find_by(project: staging_project, name: bs_request_action.target_package)
errors << "Can't stage request '#{request.number}': package '#{bs_request_action.target_package}' already exists in '#{staging_project}'."
return
end

source_package = Package.get_by_project_and_name!(bs_request_action.source_project,
bs_request_action.source_package)

Expand All @@ -120,7 +125,7 @@ def link_package(bs_request_action)

package_rev = backend_package_information['srcmd5']

link_package = Package.find_or_create_by!(project: staging_project, name: bs_request_action.target_package)
link_package = Package.create!(project: staging_project, name: bs_request_action.target_package)

create_link(staging_project.name, link_package.name, User.session!, project: source_package.project.name,
package: source_package.name, rev: package_rev,
Expand Down
Loading

0 comments on commit ee27afa

Please sign in to comment.