attr_accessor :d_BASE, :d_waitI, :d_INIT, :d_waitW, :d_RU, :d_WORK, :d_RD, :d_waitU, :d_U, :d_FINISH, :d_total, :sub_total, :sub_work_total
attr_accessor :sub_job
def initialize(option, projects, supported_os, distributions)
- @id = option[:id]
- @project = projects[option[:project_id]]
+ @id = option['id']
+ @project = projects[option['project_id']]
@project = "" if @project.nil?
- @supported_os = supported_os[option[:supported_os_id]]
- @distribution = distributions[option[:distribution_id]]
- @parent_job = option[:parent_job]
- @remote_build_server = option[:remote_build_server]
- @jtype = option[:jtype]
- @status = option[:status]
+ @supported_os = supported_os[option['supported_os_id']]
+ @distribution = distributions[option['distribution_id']]
+ @parent_job = option['parent_job']
+ @remote_build_server = option['remote_build_server']
+ @jtype = option['jtype']
+ @status = option['status']
#set time stamp
@t_BASE = nil
t = Time.now
offset = t.getlocal.gmt_offset
- @t_S = Time.parse(option[:start_time].strftime) - offset if not option[:start_time].nil?
- @t_IS = Time.parse(option[:INIT_START].strftime) - offset if not option[:INIT_START].nil?
- @t_IE = Time.parse(option[:INIT_END].strftime) - offset if not option[:INIT_END].nil?
- @t_WS = Time.parse(option[:WORK_START].strftime) - offset if not option[:WORK_START].nil?
- @t_RUS = Time.parse(option[:REMOTE_UPLOAD_START].strftime) - offset if not option[:REMOTE_UPLOAD_START].nil?
- @t_RUE = Time.parse(option[:REMOTE_UPLOAD_END].strftime) - offset if not option[:REMOTE_UPLOAD_END].nil?
- @t_RDS = Time.parse(option[:REMOTE_DOWNLOAD_START].strftime) - offset if not option[:REMOTE_DOWNLOAD_START].nil?
- @t_RDE = Time.parse(option[:REMOTE_DOWNLOAD_END].strftime) - offset if not option[:REMOTE_DOWNLOAD_END].nil?
- @t_US = Time.parse(option[:UPLOAD_START].strftime) - offset if not option[:UPLOAD_START].nil?
- @t_UE = Time.parse(option[:UPLOAD_END].strftime) - offset if not option[:UPLOAD_END].nil?
- @t_E = Time.parse(option[:end_time].strftime) - offset if not option[:end_time].nil?
+ @t_S = Time.parse(option['start_time'].strftime) - offset if not option['start_time'].nil?
+ @t_IS = Time.parse(option['INIT_START'].strftime) - offset if not option['INIT_START'].nil?
+ @t_IE = Time.parse(option['INIT_END'].strftime) - offset if not option['INIT_END'].nil?
+ @t_WS = Time.parse(option['WORK_START'].strftime) - offset if not option['WORK_START'].nil?
+ @t_RUS = Time.parse(option['REMOTE_UPLOAD_START'].strftime) - offset if not option['REMOTE_UPLOAD_START'].nil?
+ @t_RUE = Time.parse(option['REMOTE_UPLOAD_END'].strftime) - offset if not option['REMOTE_UPLOAD_END'].nil?
+ @t_RDS = Time.parse(option['REMOTE_DOWNLOAD_START'].strftime) - offset if not option['REMOTE_DOWNLOAD_START'].nil?
+ @t_RDE = Time.parse(option['REMOTE_DOWNLOAD_END'].strftime) - offset if not option['REMOTE_DOWNLOAD_END'].nil?
+ @t_US = Time.parse(option['UPLOAD_START'].strftime) - offset if not option['UPLOAD_START'].nil?
+ @t_UE = Time.parse(option['UPLOAD_END'].strftime) - offset if not option['UPLOAD_END'].nil?
+ @t_E = Time.parse(option['end_time'].strftime) - offset if not option['end_time'].nil?
@sub_job = []
@d_BASE = 0
@d_waitI = 0
distributions[row[:id]] = row[:name]
end
-performance_log = " , (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'INIT_START') INIT_START
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'INIT_END') INIT_END
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'WORK_START') WORK_START
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'REMOTE_UPLOAD_START') REMOTE_UPLOAD_START
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'REMOTE_UPLOAD_END') REMOTE_UPLOAD_END
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'REMOTE_DOWNLOAD_START') REMOTE_DOWNLOAD_START
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'REMOTE_DOWNLOAD_END') REMOTE_DOWNLOAD_END
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'UPLOAD_START') UPLOAD_START
-, (SELECT stamp_time FROM rsa.job_timestamps WHERE job_timestamps.job_id = jobs.id AND stamp_name = 'UPLOAD_END') UPLOAD_END "
-
def set_stamp(stamp)
result = {}
stamp.each do |x|
return result
end
puts 'run'
-conn.select_all "SELECT * #{performance_log}
+conn.select_all "SELECT *
FROM rsa.jobs
#{option[:where]}
;" do |row|
print "."
- #stamp_hash = {}
- #conn.select_all("SELECT stamp_name, stamp_time FROM rsa.job_timestamps WHERE job_id = '#{row[:id]}'").each do |stamp|
- # stamp_hash[stamp[:stamp_name].to_sym] = stamp[:stamp_time]
- #end
+ r = row.to_h
+ conn.select_all("SELECT stamp_name, stamp_time FROM rsa.job_timestamps WHERE job_id = '#{r['id']}'") do |stamp|
+ s = stamp.to_h
+ r[s['stamp_name'].to_s] = s['stamp_time']
+ end
#puts stamp_hash
- new = CommonJob.new(row, projects, supported_os, distributions)
- case row[:jtype]
+ new = CommonJob.new(r, projects, supported_os, distributions)
+ case r['jtype']
when "MULTIBUILD" then
multiJobs.push new
when "REGISTER"
registerJobs.push new
when "BUILD"
- if row[:parent_job_id].nil?
+ if row['parent_job_id'].nil?
singleJobs.push new
else
set = false
multiJobs.each do |x|
- if x.id == row[:parent_job_id] then
+ if x.id == row['parent_job_id'] then
new.t_BASE = x.t_S
x.sub_job.push new
set = true
break
else
x.sub_job.each do |y|
- if y.id == row[:parent_job_id] then
+ if y.id == row['parent_job_id'] then
new.t_BASE = x.t_S
y.sub_job.push new
set = true
end
if not set then
singleJobs.each do |x|
- if x.id == row[:parent_job_id] then
+ if x.id == row['parent_job_id'] then
new.t_BASE = x.t_S
x.sub_job.push new
set = true
end
if not set then
registerJobs.each do |x|
- if x.id == row[:parent_job_id] then
+ if x.id == row['parent_job_id'] then
new.t_BASE = x.t_S
x.sub_job.push new
set = true
end
if not set then
orphanJobs.each do |x|
- if x.id == row[:parent_job_id] then
+ if x.id == row['parent_job_id'] then
new.t_BASE = x.t_S
x.sub_job.push new
set = true