From: Sungmin kim Date: Mon, 1 Apr 2013 05:48:18 +0000 (+0900) Subject: [title] Fixed query-log terminated when status is not "FINISHED" X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1af677f11039a0beb784f9120f2abdd802e93fa6;p=sdk%2Ftools%2Fsdk-build.git [title] Fixed query-log terminated when status is not "FINISHED" --- diff --git a/build-cli b/build-cli index 5714cd1..80001d3 100755 --- a/build-cli +++ b/build-cli @@ -228,9 +228,17 @@ begin if not result then exit(-1) end # Query log in case sync + job_status = "" + job_error = "" if result and option[:async].eql? "NO" then begin result = JobLog.monitor(addr[0], addr[1], job_id) do |line,status,errmsg| + job_status = status + job_error = errmsg + if line.nil? then + next + end + category, level, contents = JobLog.parse_log(line) if level < Log::LV_USER then next end @@ -244,6 +252,11 @@ begin next end end + + # Check job status + if not job_status.eql? "FINISHED" then + result = false + end rescue BuildServerException => e puts e.err_message() result = false @@ -322,12 +335,19 @@ begin if File.exist? output raise RuntimeError, "The output file is already exist." end + log = File.open(output, "w") - log.flock(File::LOCK_EX) + if not log.flock(File::LOCK_EX|File::LOCK_NB) then + raise RuntimeError, "The output file is already exist." + end puts "Started query log, writing to the file \"#{output}\"" end result = JobLog.monitor(addr[0], addr[1], option[:job].strip) do |line,status,errmsg| + if line.nil? then + next + end + log.puts line if not output.nil? and flock.eql? "ON" then log.flock(File::LOCK_UN) @@ -477,6 +497,12 @@ begin # Query log in case sync begin result = JobLog.monitor(bs_ip, bs_port, job_id) do |line,status,errmsg| + job_status = status + job_error = errmsg + if line.nil? then + next + end + category, level, contents = JobLog.parse_log(line) if level < Log::LV_USER then next end @@ -491,6 +517,10 @@ begin end end + # Check job status + if not job_status.eql? "FINISHED" then + result = false + end rescue BuildServerException => e puts e.err_message() result = false diff --git a/src/build_server/BuildServerController.rb b/src/build_server/BuildServerController.rb index a7a739f..42eb4a1 100644 --- a/src/build_server/BuildServerController.rb +++ b/src/build_server/BuildServerController.rb @@ -682,6 +682,12 @@ class BuildServerController begin result = JobLog.monitor("127.0.0.1", server.port, job_id) do |line,status,errmsg| + job_status = status + job_error = errmsg + if line.nil? then + next + end + category, level, contents = JobLog.parse_log(line) if level < Log::LV_USER then next end @@ -700,6 +706,11 @@ class BuildServerController result = false end + # Check job status + if not job_status.eql? "FINISHED" then + result = false + end + return result end diff --git a/src/build_server/JobLog.rb b/src/build_server/JobLog.rb index bf22c80..fcfad61 100644 --- a/src/build_server/JobLog.rb +++ b/src/build_server/JobLog.rb @@ -92,6 +92,10 @@ class JobLog < Log data = line.strip.split(",") job_status = data[1] job_error = data[2] + + if block_given? then + yield nil,job_status,job_error + end else if block_given? then yield line.strip,job_status,job_error @@ -105,10 +109,6 @@ class JobLog < Log raise BuildServerException.new("ERR019"), "#{client.get_error_msg()}" end - # Check job status - if not job_status.eql? "FINISHED" then - result = false - end ensure client.terminate if not client.nil? end diff --git a/src/build_server/RemoteBuilder.rb b/src/build_server/RemoteBuilder.rb index 230cb86..e2ca2db 100644 --- a/src/build_server/RemoteBuilder.rb +++ b/src/build_server/RemoteBuilder.rb @@ -237,8 +237,9 @@ class RemoteBuilder begin result = JobLog.monitor(@addr, @port,@job.remote_id) do |line,status,errmsg| @job.remote_status = status - if status == "ERROR" then - @job.remote_error_msg = errmsg + @job.remote_error_msg = errmsg + if line.nil? then + next end category, level, contents = JobLog.parse_log(line)