From 865f24a54b641b26b8358486ae37ca6fdca1f1bf Mon Sep 17 00:00:00 2001 From: donghee yang Date: Fri, 12 Apr 2013 09:15:32 +0900 Subject: [PATCH] [Title] Modified to make build-server work when max-job is zero --- src/build_server/BuildServer.rb | 13 +++++++++---- test/build-server.multi-svr1/03.testcase | 2 -- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/build_server/BuildServer.rb b/src/build_server/BuildServer.rb index 6578bd9..2876721 100644 --- a/src/build_server/BuildServer.rb +++ b/src/build_server/BuildServer.rb @@ -489,8 +489,13 @@ class BuildServer end # get availables server - # but, job must not be "REGISTER" and "MULTIBUILD" job - if job.type != "REGISTER" and job.type != "MULTIBUILD" then + if job.type == "MULTIBUILD" or job.type == "REGISTER" then + # if max working job is zero, check max-non-build-jobs + if @jobmgr.max_working_jobs == 0 and local_empty_rooms >= -4 then + candidates.push self + end + else + # if normal JOB @remote_servers.each do |server| if ( server.status == "RUNNING" and server.can_build?( job ) and not server.has_waiting_jobs and @@ -501,11 +506,11 @@ class BuildServer end end - best_server = candidates[0] - if best_server.nil? or candidates.count == 1 then return best_server end + if candidates.count == 0 then return nil end # get best # it is better if working jobs count is less + best_server = candidates[0] max_empty_room = best_server.get_number_of_empty_room candidates.each do |server| # check whether idle, use it diff --git a/test/build-server.multi-svr1/03.testcase b/test/build-server.multi-svr1/03.testcase index 30344d3..f0a6605 100644 --- a/test/build-server.multi-svr1/03.testcase +++ b/test/build-server.multi-svr1/03.testcase @@ -1,9 +1,7 @@ #PRE-EXEC -../../build-svr set-attr -n testserver3 -A MAX_WORKING_JOBS -V 1 #EXEC ../../build-cli build -N testa,testb -d 127.0.0.1:2223 -o ubuntu-32 -D unstable --rebuild #POST-EXEC -../../build-svr set-attr -n testserver3 -A MAX_WORKING_JOBS -V 0 #EXPECT Info: Added new job Info: Initializing job... -- 2.34.1