Skip to content

Commit

Permalink
[webui] Implements kiwi import feature
Browse files Browse the repository at this point in the history
Creates kiwi_import service and runs waitservice followed by mergeservice command when
uploaded filename ends with kiwi.txz
  • Loading branch information
ChrisBr committed Mar 1, 2016
1 parent ef3c0c5 commit 8ea7324
Show file tree
Hide file tree
Showing 4 changed files with 1,190 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/api/app/models/package.rb
Expand Up @@ -1283,6 +1283,13 @@ def save_file(opt = {})
path = self.source_path(opt[:filename], put_opt)
ActiveXML.backend.http_do :put, path, data: content, timeout: 500

# KIWI file
if opt[:filename] =~ /\.kiwi\.txz$/
logger.debug 'Found a kiwi archive, creating kiwi_import source service'
services = self.services
services.addKiwiImport
end

# update package timestamp and reindex sources
unless opt[:rev] == 'repository' || %w(_project _pattern).include?(self.name)
self.sources_changed(wait_for_update: ['_aggregate', '_constraints', '_link', '_service', '_patchinfo', '_channel'].include?(opt[:filename]))
Expand Down
18 changes: 18 additions & 0 deletions src/api/app/models/service.rb
Expand Up @@ -60,6 +60,24 @@ def addDownloadURL(url, filename = nil)
true
end

def addKiwiImport
addService('kiwi_import')
if save
logger.debug 'Service successfully saved'
begin
logger.debug 'Executing waitservice command'
Suse::Backend.post("/source/#{URI.escape(init_options[:project])}/#{URI.escape(init_options[:package])}?cmd=waitservice", '')
logger.debug 'Executing mergeservice command'
cmd = "/source/#{URI.escape(init_options[:project])}/#{URI.escape(init_options[:package])}?cmd=mergeservice&user=#{User.current.login}"
Suse::Backend.post(cmd, '')
rescue ActiveXML::Transport::Error, Timeout::Error => e
logger.debug "Error while executing backend command: #{e.message}"
end
else
logger.debug 'Failed to save service'
end
end

def removeService(serviceid)
each("/services/service") do |service|
serviceid -= 1
Expand Down

0 comments on commit 8ea7324

Please sign in to comment.