Skip to content

Commit

Permalink
[api] Moved backend calls from BranchPackage model
Browse files Browse the repository at this point in the history
Moved Backend::Connection calls from BranchPackage model to
Backend::Api
  • Loading branch information
Moises Deniz Aleman committed Aug 29, 2017
1 parent 56fa0b4 commit 23c6442
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
16 changes: 6 additions & 10 deletions src/api/app/models/branch_package.rb
Expand Up @@ -127,10 +127,8 @@ def create_branch_packages(tprj)
tpkg.store

if p[:local_link]
# rubocop:disable Metrics/LineLength
# copy project local linked packages
Backend::Connection.post "/source/#{tpkg.project.name}/#{tpkg.name}?cmd=copy&oproject=#{CGI.escape(p[:link_target_project].name)}&opackage=#{CGI.escape(p[:package].name)}&user=#{CGI.escape(User.current.login)}"
# rubocop:enable Metrics/LineLength
Backend::Api.copy_package(tpkg.project.name, tpkg.name, p[:link_target_project].name, p[:package].name, User.current.login)
# and fix the link
ret = ActiveXML::Node.new(tpkg.source_file('_link'))
ret.delete_attribute('project') # its a local link, project name not needed
Expand All @@ -139,7 +137,7 @@ def create_branch_packages(tprj)
linked_package = params[:target_package] if params[:target_package] && params[:package] == ret.value('package')
linked_package += '.' + p[:link_target_project].name.tr(':', '_') if @extend_names
ret.set_attribute('package', linked_package)
Backend::Connection.put tpkg.source_path('_link', user: User.current.login), ret.dump_xml
Backend::Api.write_link_of_package(tpkg.project.name, tpkg.name, User.current.login, ret.dump_xml)
else
opackage = p[:package]
opackage = p[:package].name if p[:package].is_a? Package
Expand All @@ -159,14 +157,12 @@ def create_branch_packages(tprj)
# fetch newer sources from devel package, if defined
if p[:copy_from_devel] && p[:copy_from_devel].project != tpkg.project && !p[:rev]
if p[:copy_from_devel].project.is_maintenance_incident?
msg = "fetch+updates+from+open+incident+project+#{CGI.escape(p[:copy_from_devel].project.name)}"
msg = "fetch updates from open incident project #{p[:copy_from_devel].project.name}"
else
msg = "fetch+updates+from+devel+package+#{CGI.escape(p[:copy_from_devel].project.name)}/#{CGI.escape(p[:copy_from_devel].name)}"
msg = "fetch updates from devel package #{p[:copy_from_devel].project.name}/#{p[:copy_from_devel].name}"
end
# TODO: make this a query hash
# rubocop:disable Metrics/LineLength
Backend::Connection.post tpkg.source_path + "?cmd=copy&keeplink=1&expand=1&oproject=#{CGI.escape(p[:copy_from_devel].project.name)}&opackage=#{CGI.escape(p[:copy_from_devel].name)}&user=#{CGI.escape(User.current.login)}&comment=#{msg}"
# rubocop:enable Metrics/LineLength
Backend::Api.copy_package(tpkg.project.name, tpkg.name, p[:copy_from_devel].project.name, p[:copy_from_devel].name,
User.current.login, { comment: msg, keeplink: 1, expand: 1})
end
end
tpkg.sources_changed
Expand Down
14 changes: 14 additions & 0 deletions src/api/lib/backend/api.rb
Expand Up @@ -115,5 +115,19 @@ def self.download_url_for_package(project, repository, package, architecture, fi
path = "/build/#{CGI.escape(project)}/#{CGI.escape(repository)}/#{CGI.escape(architecture)}/#{CGI.escape(package)}/#{CGI.escape(file)}"
Backend::Connection.get("#{path}?view=publishedpath").body
end

# Copy a package into another project
def self.copy_package(target_project, target_package, source_project, source_package, login, options = {})
path = "/source/#{CGI.escape(target_project)}/#{CGI.escape(target_package)}"
query_hash = { cmd: :copy, oproject: source_project, opackage: source_package, user: login }
query_hash.merge!(options.slice(:keeplink, :expand, :comment))
path += "?#{query_hash.to_query}"
Backend::Connection.post(path)
end

# Writes the link information of a package
def self.write_link_of_package(project, package, login, xml)
Backend::Connection.put("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/_link?user=#{CGI.escape(login)}", xml)
end
end
end

0 comments on commit 23c6442

Please sign in to comment.