puts "Can't access server #{bs_ip}:#{bs_port}"
exit(-1)
end
- client.send("UPLOAD")
+ dock = Utils.create_uniq_name()
+ msg = "UPLOAD|#{dock}"
+ client.send( msg )
result = client.send_file(ip, port, username, passwd, option[:package])
client.terminate
if not result then
puts "Can't access server #{bs_ip}:#{bs_port}"
exit(-1)
end
- client.send("REGISTER|BINARY|#{File.basename(option[:package])}|#{option[:passwd]}")
+ client.send("REGISTER|BINARY|#{File.basename(option[:package])}|#{option[:passwd]}|#{dock}")
client.print_stream
client.terminate
# create new job
- def create_new_job( filename )
+ def create_new_job( filename, dock = "0" )
new_name = filename.sub(/(.*)_(.*)_(.*)\.zip/,'\1,\2,\3')
pkg_name = new_name.split(",")[0]
os = new_name.split(",")[2]
if not @server.supported_os_list.include? os then return nil end
# check package info
- file_path = "#{@server.transport_path}/#{filename}"
+ file_path = "#{@server.transport_path}/#{dock}/#{filename}"
if not File.exist? file_path then return nil end
pkginfo_dir = "#{@server.path}/projects/#{@name}/pkginfos"
if pkgs.count != 1 then return nil end
if pkgs[0].package_name != @pkg_name then return nil end
- new_job = RegisterPackageJob.new( "#{@server.transport_path}/#{filename}", self, @server )
+ new_job = RegisterPackageJob.new( file_path, self, @server )
return new_job
end
attr_accessor :status, :log, :source_path
attr_accessor :pkgsvr_client, :thread, :pkg_type
attr_accessor :pkg_name, :pkginfo, :cancel_state
-
+
# initialize
def initialize( local_path, project, server, ftpurl=nil )
@pre_jobs = []
@local_path=local_path
+ @file_path = nil
@filename = File.basename(local_path)
if @filename =~ /.*_.*_.*\.zip/ then
@pkg_type = "BINARY"
FileUtils.mkdir_p @source_path
end
- if @cancel_state != "NONE" then return false end
-
- # set up pkgsvr_client
- @pkgsvr_client = Client.new(@pkgserver_url, @job_working_dir, @log)
-
- if @cancel_state != "NONE" then return false end
-
# copy package file to source path
+ @file_path = "#{@source_path}/#{File.basename(@local_path)}"
if not File.exist? @local_path then
@log.error( "File not found!", Log::LV_USER)
@status = "ERROR"
return false
else
- FileUtils.cp(@local_path,"#{@source_path}/#{File.basename(@local_path)}")
+ if not @project.nil? then
+ # if remote upload remove file and its directory
+ FileUtils.mv(@local_path, @file_path)
+ FileUtils.rm_rf("#{File.dirname(@local_path)}")
+ else
+ FileUtils.cp(@local_path, @file_path)
+ end
end
if @cancel_state != "NONE" then return false end
+ # set up pkgsvr_client
+ @pkgsvr_client = Client.new(@pkgserver_url, @job_working_dir, @log)
+
+ if @cancel_state != "NONE" then return false end
+
# check if the os is supported by build server
if @pkg_type == "BINARY" and
not @server.supported_os_list.include? @os then
# checking version if not reverse-build job
if @pkg_type == "BINARY" then
# extrac pkg file
- cmd = "cd \"#{@source_path}\";unzip #{@local_path}"
+ cmd = "cd \"#{@source_path}\";unzip #{@file_path}"
if not Utils.execute_shell(cmd) then
@log.error( "Extracting package file failed!", Log::LV_USER)
@status = "ERROR"
# make new package file for compatible OS
newfile = "#{@pkg_name}_#{@pkg_version}_#{os}.zip"
@log.info( "Copying #{@filename} to #{newfile}" )
- FileUtils.cp(@local_path,"#{@source_path}/#{newfile}")
+ FileUtils.cp(@file_path,"#{@source_path}/#{newfile}")
# reverse check
if not ReverseBuildChecker.check( self, true, os ) then
# parse
filename = tok[2]
passwd = tok[3]
+ dock = (tok[4].nil? or tok[4].empty?) ? "0" : tok[4].strip
# check project
prj = check_project_for_package_file_name(filename, req)
end
# create new job
- @log.info "Received a request for uploading binaries : #{tok[2]}"
- new_job = create_new_upload_job( prj.name, filename, req )
+ @log.info "Received a request for uploading binaries : #{filename}"
+ new_job = create_new_upload_job( prj.name, filename, dock, req )
if new_job.nil? then
raise "Creating build job failed : #{prj.name}, #{filename}"
end
private
- def create_new_upload_job( project_name, filename, req)
+ def create_new_upload_job( project_name, filename, dock, req)
- new_job = @parent_server.prjmgr.get_project(project_name).create_new_job(filename)
+ new_job = @parent_server.prjmgr.get_project(project_name).create_new_job(filename, dock)
if new_job.nil? then
BuildCommServer.send_begin(req)