[Title] Applied "register" to use internal file transfer slot("dock")
authordonghee yang <donghee.yang@samsung.com>
Mon, 27 Aug 2012 13:27:47 +0000 (22:27 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Mon, 27 Aug 2012 13:27:47 +0000 (22:27 +0900)
build-cli
src/build_server/BinaryUploadProject.rb
src/build_server/RegisterPackageJob.rb
src/build_server/SocketJobRequestListener.rb

index 040e1a168bfedae6dbe5d3c25c2468fcc712a39f..24e874c1909d3d0e8306cdd0e9f4dc43db70bb98 100755 (executable)
--- a/build-cli
+++ b/build-cli
@@ -313,7 +313,9 @@ begin
                        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
@@ -327,7 +329,7 @@ begin
                        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
 
index 580ad992fd47db7f552773eb019f4fba64494176..28f81ea4afff756372ae0994733883f759f09fc1 100644 (file)
@@ -45,7 +45,7 @@ class BinaryUploadProject < CommonProject
 
 
        # 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]
@@ -57,7 +57,7 @@ class BinaryUploadProject < CommonProject
                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"
@@ -75,7 +75,7 @@ class BinaryUploadProject < CommonProject
                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
index 7962c65f8d144fbf1026ae1cbce7cc576235d0e7..d77fb9fe6ef014d8a45195ed7fa498e8acfced7b 100644 (file)
@@ -46,7 +46,7 @@ class RegisterPackageJob
        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 )
@@ -66,6 +66,7 @@ class RegisterPackageJob
                @pre_jobs = []
 
                @local_path=local_path
+               @file_path = nil
                @filename = File.basename(local_path)
                if @filename =~ /.*_.*_.*\.zip/ then
                        @pkg_type = "BINARY"
@@ -143,24 +144,29 @@ class RegisterPackageJob
                        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
@@ -174,7 +180,7 @@ class RegisterPackageJob
                # 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"
@@ -395,7 +401,7 @@ class RegisterPackageJob
                                # 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
index 0af0cc25cf85e3efe3e189d58d3c4fa6f8d5304e..f09a0565fc5417b2b23a20ba59d7f7ed0da4c1fc 100644 (file)
@@ -568,6 +568,7 @@ class SocketJobRequestListener
                        # 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)
@@ -581,8 +582,8 @@ class SocketJobRequestListener
                        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
@@ -785,9 +786,9 @@ class SocketJobRequestListener
 
 
        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)