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
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
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)
# 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
end
end
+ # Check job status
+ if not job_status.eql? "FINISHED" then
+ result = false
+ end
rescue BuildServerException => e
puts e.err_message()
result = false
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
result = false
end
+ # Check job status
+ if not job_status.eql? "FINISHED" then
+ result = false
+ end
+
return result
end
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
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
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)