[Title] Fixed a bug that remote build does not work
authordonghee yang <donghee.yang@samsung.com>
Mon, 8 Oct 2012 07:24:34 +0000 (16:24 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Mon, 8 Oct 2012 07:24:34 +0000 (16:24 +0900)
15 files changed:
src/build_server/BuildJob.rb
src/build_server/CommonJob.rb
src/build_server/GitBuildJob.rb
src/build_server/GitBuildProject.rb
src/build_server/ProjectManager.rb
src/build_server/RemoteBuildServer.rb
src/build_server/RemoteBuilder.rb
src/build_server/SocketJobRequestListener.rb
test/build-server.multi-svr1/01.testcase [new file with mode: 0644]
test/build-server.multi-svr1/02.testcase [new file with mode: 0644]
test/build-server.multi-svr1/buildsvr1.init [new file with mode: 0755]
test/build-server.multi-svr1/buildsvr2.init [new file with mode: 0755]
test/build-server.multi-svr1/pkgsvr.init [new file with mode: 0755]
test/build-server.multi-svr1/testsuite [new file with mode: 0644]
test/buildsvr2.init [deleted file]

index 1fe8050269747bdfd06f1e08905bd54fa5db9c56..ed0e900407c03409ca4110ad22e9c3671bf05a1f 100644 (file)
@@ -62,9 +62,15 @@ class BuildJob < CommonJob
                @cancel_state = "NONE"
         @resolve = false
                @host_os = Utils::HOST_OS
-               @pkgsvr_url = @server.distmgr.get_distribution(project.dist_name).pkgsvr_url
-               @pkgsvr_ip = @server.distmgr.get_distribution(project.dist_name).pkgsvr_ip
-               @pkgsvr_port = @server.distmgr.get_distribution(project.dist_name).pkgsvr_port
+               if not @server.distmgr.nil? then
+                       @pkgsvr_url = @server.distmgr.get_distribution(project.dist_name).pkgsvr_url
+                       @pkgsvr_ip = @server.distmgr.get_distribution(project.dist_name).pkgsvr_ip
+                       @pkgsvr_port = @server.distmgr.get_distribution(project.dist_name).pkgsvr_port
+               else
+                       @pkgsvr_url = ""
+                       @pkgsvr_ip = ""
+                       @pkgsvr_port = ""
+               end
                @job_root = "#{@server.path}/jobs/#{@id}"
                @source_path = @job_root+"/temp"
                @job_working_dir=@job_root+"/works"
index c1e6a9dfec1de31f61d203119df59005bb7006f1..6a442f8f15080110c5df05f4310b4b65e71969a3 100644 (file)
@@ -38,8 +38,12 @@ class CommonJob
        # initialize
        public
        def initialize(server, id=nil)
-               @id = server.jobmgr.get_new_job_id()
                @server = server
+               if not server.jobmgr.nil? then
+                       @id = server.jobmgr.get_new_job_id()
+               else    
+                       @id = 0
+               end
 
                @parent = nil
                @sub_jobs = []
index d2ef0945d26641bf1eb3034a6ad1b839b7f590fa..516b5cd69121bc1e68b42e27a16618ddfc510bc4 100644 (file)
@@ -37,6 +37,7 @@ require "utils.rb"
 $git_mutex = Mutex.new
 
 class GitBuildJob < BuildJob
+       attr_accessor :git_commit, :git_branch, :git_repos
 
        # initialize
        def initialize( project, os, server )
@@ -197,11 +198,6 @@ class GitBuildJob < BuildJob
        end
 
 
-       def set_git_commit( commit )
-               @git_commit = commit
-       end
-
-
        #
        # PROTECTED/PRIVATE METHODS
        #
index 67a1bbcffc72bccf72e5562341994dbf637d2695..050cd288f27cb62ff0278f4cf7f45fc8d571ba6f 100644 (file)
@@ -78,7 +78,7 @@ class GitBuildProject < CommonProject
 
                commit = get_commit_id( version )
                if not commit.nil? then
-                       new_job.set_git_commit( commit )
+                       new_job.git_commit = commit
                end
                
                return new_job
index 338a8eaff827be1dbcd141f800c98cd2ab81900b..f8bf7338e8d95faec88611f259c60f165f41b4e8 100644 (file)
@@ -297,7 +297,7 @@ class ProjectManager
 
        # load
        def load_db()
-               @project = []
+               @projects = []
 
                db_file = "#{BuildServer::CONFIG_ROOT}/#{@server.id}/server.db" 
                begin
@@ -339,7 +339,6 @@ class ProjectManager
                                end
 
                                new_project.load_db()
-
                                @projects.push new_project
                        }
                rescue SQLite3::Exception => e
index ba43e127943d5dbe49d22a3c8e66ba17af997abc..7e538ce46daf17b4e692965e2c1cafa1c5c7b8c3 100644 (file)
@@ -36,6 +36,7 @@ class RemoteBuildServer
        attr_accessor :ip, :port, :status, :host_os
        attr_accessor :max_working_jobs, :working_jobs, :waiting_jobs
        attr_accessor :path
+       attr_accessor :jobmgr, :distmgr
 
        # initialize
        def initialize(ip, port, parent)
@@ -49,6 +50,8 @@ class RemoteBuildServer
                @path = ""
                @file_transfer_cnt_mutex = Mutex.new
                @file_transfer_cnt = 0
+               @jobmgr = nil
+               @distmgr = nil
        end
 
 
index 7a945bdfca298b09a4ffd467044b6010393be2d9..ba1a42279aecc469f56c34cccb0c7ae337fad770 100644 (file)
@@ -59,9 +59,9 @@ class RemoteBuilder
                @log = job.log
 
                # build
-               ret = build(@job.project.repository, @job.source_path, @job.os, 
+               ret = build(@job.get_project().repository, @job.source_path, @job.os, 
                        @job.is_rev_build_check_job(), @job.git_commit, @job.no_reverse,
-                       local_pkgs, @job.project.dist_name )
+                       local_pkgs, @job.get_project().dist_name )
 
                # reset job
                @job = nil
index 012770ad9018869407bad499c604745f9cef0b0c..53648e1f4d4b2a1669dea4ca9b68d0a1b5b11409 100644 (file)
@@ -896,7 +896,7 @@ class SocketJobRequestListener
                end
                new_job = prj.create_new_job(os)
                new_job.set_internal_job( dock_num ) 
-               new_job.set_git_commit(git_commit)
+               new_job.git_commit = git_commit
                incoming_dir = "#{@parent_server.transport_path}/#{dock_num}"
                pkg_files.each { |file|
                        new_job.add_external_package( file )
diff --git a/test/build-server.multi-svr1/01.testcase b/test/build-server.multi-svr1/01.testcase
new file mode 100644 (file)
index 0000000..21843e1
--- /dev/null
@@ -0,0 +1,45 @@
+#PRE-EXEC
+#EXEC
+../../build-cli build -N testa -d 127.0.0.1:2223 -o ubuntu-32 -D unstable
+#POST-EXEC
+#EXPECT
+Info: Added new job
+Info: Initializing job...
+Info: Checking package version ...
+Info: Invoking a thread for building Job
+Info: New Job
+Info: Started to build this job...
+Info: JobBuilder#
+Info: Start to build on remote server...
+Info: Sending build request to remote server...
+Info: Added new job
+Info: Initializing job...
+Info: Copying external dependent pkgs...
+Info: Invoking a thread for building Job
+Info: New Job
+Info: Started to build this job...
+Info: JobBuilder
+Info: Downloding client is initializing...
+Info: Installing dependent packages...
+Info: Downloading dependent source packages...
+Info: Make clean...
+Info: Make build...
+Info: Make install...
+Info: Generatiing pkginfo.manifest...
+Info: Zipping...
+Info: Creating package file ... a_0.0.1_ubuntu-32.zip
+Info: Copying log to
+Info: Copying result files to
+Info:  *
+Info: Job is completed!
+Info: Job is FINISHED successfully!
+Info: Updating the source info for project "UNNAMED
+Info: Receiving log file from remote server...
+Info: Receiving file from remote server : a_0.0.1_ubuntu-32.zip
+Info: Checking reverse build dependency ...
+Info: Uploading ...
+Info: Upload succeeded. Sync local pkg-server again...
+Info: Snapshot:
+Info: Job is completed!
+Info: Job is FINISHED successfully!
+Info: Updating the source info for project "testa"
diff --git a/test/build-server.multi-svr1/02.testcase b/test/build-server.multi-svr1/02.testcase
new file mode 100644 (file)
index 0000000..cbe7440
--- /dev/null
@@ -0,0 +1,46 @@
+#PRE-EXEC
+#EXEC
+../../build-cli build -N testb -d 127.0.0.1:2223 -o ubuntu-32 -D unstable
+#POST-EXEC
+#EXPECT
+Info: Added new job
+Info: Initializing job...
+Info: Checking package version ...
+Info: Invoking a thread for building Job
+Info: New Job
+Info: Started to build this job...
+Info: JobBuilder
+Info: Start to build on remote server...
+Info: Sending build request to remote server...
+Info: Added new job
+Info: Initializing job...
+Info: Copying external dependent pkgs...
+Info: Invoking a thread for building Job
+Info: New Job
+Info: Started to build this job...
+Info: JobBuilder
+Info: Downloding client is initializing...
+Info: Installing dependent packages...
+Info:  * a
+Info: Downloading dependent source packages...
+Info: Make clean...
+Info: Make build...
+Info: Make install...
+Info: Generatiing pkginfo.manifest...
+Info: Zipping...
+Info: Creating package file ... b_0.0.1_ubuntu-32.zip
+Info: Copying log to
+Info: Copying result files to
+Info:  *
+Info: Job is completed!
+Info: Job is FINISHED successfully!
+Info: Updating the source info for project "UNNAMED
+Info: Receiving log file from remote server...
+Info: Receiving file from remote server : b_0.0.1_ubuntu-32.zip
+Info: Checking reverse build dependency ...
+Info: Uploading ...
+Info: Upload succeeded. Sync local pkg-server again...
+Info: Snapshot:
+Info: Job is completed!
+Info: Job is FINISHED successfully!
+Info: Updating the source info for project "testb"
diff --git a/test/build-server.multi-svr1/buildsvr1.init b/test/build-server.multi-svr1/buildsvr1.init
new file mode 100755 (executable)
index 0000000..c6194fd
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+rm -rf buildsvr01
+rm -rf git01
+rm -rf bin
+rm -rf ~/.build_tools/build_server/testserver3
+
+../../build-svr remove -n testserver3
+mkdir buildsvr01
+cd buildsvr01
+ruby -d ../../../build-svr create -n testserver3 -t ftp://ftpuser:ftpuser@127.0.0.1
+cd ..
+
+ruby -d ../../build-svr add-dist -n testserver3 -D unstable -u `pwd`/pkgsvr01/unstable -d 127.0.0.1:3333
+ruby -d ../../build-svr add-svr -n testserver3 -d 127.0.0.1:2224
+ruby -d ../../build-svr add-os -n testserver3 -o ubuntu-32
+ruby -d ../../build-svr add-os -n testserver3 -o windows-32
+ruby -d ../../build-svr add-prj -n testserver3 -N testa -g `pwd`/git01/a -b master
+ruby -d ../../build-svr add-prj -n testserver3 -N testb -g `pwd`/git01/b -b master
+ruby -d ../../build-svr set-attr -n testserver3 -A MAX_WORKING_JOBS -V 0
+
+mkdir -p git01
+cp ../git01/*.tar.gz git01/
+cd git01
+rm -rf a
+rm -rf b
+tar xvf a_v1.tar.gz
+tar xvf b_v1.tar.gz
+cd ..
+
+ruby -d ../../build-svr start -n testserver3 -p 2223 --CHILD
diff --git a/test/build-server.multi-svr1/buildsvr2.init b/test/build-server.multi-svr1/buildsvr2.init
new file mode 100755 (executable)
index 0000000..d8e87d8
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+rm -rf buildsvr02
+
+../../build-svr remove -n testserver4
+mkdir buildsvr02
+cd buildsvr02
+ruby -d ../../../build-svr create -n testserver4 -t ftp://ftpuser:ftpuser@127.0.0.1
+cd ..
+ruby -d ../../build-svr add-dist -n testserver4 -D unstable -u `pwd`/pkgsvr01/unstable -d 127.0.0.1:3333
+
+ruby -d ../../build-svr start -n testserver4 -p 2224 --CHILD
diff --git a/test/build-server.multi-svr1/pkgsvr.init b/test/build-server.multi-svr1/pkgsvr.init
new file mode 100755 (executable)
index 0000000..26c9ef6
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+rm -rf ~/.build_tools/pkg_server/pkgsvr01
+rm -rf `pwd`/pkgsvr01
+ruby -d ../../pkg-svr create -n pkgsvr01 -d unstable
+ruby -d ../../pkg-svr add-os -n pkgsvr01 -d unstable -o ubuntu-32
+ruby -d ../../pkg-svr add-os -n pkgsvr01 -d unstable -o windows-32
+ruby -d ../../pkg-svr start -n pkgsvr01 -p 3333
diff --git a/test/build-server.multi-svr1/testsuite b/test/build-server.multi-svr1/testsuite
new file mode 100644 (file)
index 0000000..960eff3
--- /dev/null
@@ -0,0 +1,2 @@
+01.testcase
+02.testcase
diff --git a/test/buildsvr2.init b/test/buildsvr2.init
deleted file mode 100755 (executable)
index 8f19780..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-rm -rf buildsvr02
-mkdir buildsvr02
-cd buildsvr02
-../../build-svr remove -n testserver4
-../../build-svr create -n testserver4 -u `pwd`/../pkgsvr01/unstable -d 127.0.0.1:3333 -t ftp://ftpuser:ftpuser@127.0.0.1
-cd ..
-../build-svr start -n testserver4 -p 2224