db.do "CREATE TABLE IF NOT EXISTS project_packages(prj_id INTEGER, pkg_ver VARCHAR(64), pkg_name VARCHAR(64), pkg_os VARCHAR(32))"
# JOBS
- db.do "CREATE TABLE IF NOT EXISTS jobs(id INTEGER PRIMARY KEY, jtype VARCHAR(32), os_name VARCHAR(32), user_id INTEGER, parent_job_id INTEGER, status VARCHAR(32), prj_id INTEGER, dist_name VARCHAR(32) )"
+ db.do "CREATE TABLE IF NOT EXISTS jobs(id INTEGER PRIMARY KEY, jtype VARCHAR(32), os_name VARCHAR(32), user_id INTEGER, parent_job_id INTEGER, status VARCHAR(32), prj_id INTEGER, dist_name VARCHAR(32), start_time VARCHAR(32), end_time VARCHAR(32) )"
rescue DBI::DatabaseError => e
puts "DB Creation failed!"
=end
require "fileutils"
+require "time"
$LOAD_PATH.unshift File.dirname(__FILE__)
$LOAD_PATH.unshift File.dirname(File.dirname(__FILE__))+"/common"
require "utils.rb"
@status = "JUST_CREATED"
@log = nil
+ @start_time = Time.now
+ @end_time = nil
+
@sub_pid = 0
end
row=db.select_one("SELECT * FROM jobs WHERE id=#{@id}")
if row.nil? then
- db.do "INSERT INTO jobs VALUES (#{@id},'#{@type}','#{@os}', #{@user_id}, #{parent_id}, '#{@status}', #{prj_id}, '#{dist_name}')"
+ start_time = @start_time.strftime("%F %T")
+ db.do "INSERT INTO jobs VALUES (#{@id},'#{@type}','#{@os}', #{@user_id}, #{parent_id}, '#{@status}', #{prj_id}, '#{dist_name}', '#{start_time}', '')"
else
db.do "UPDATE jobs SET status='#{@status}' WHERE id=#{@id}"
+ if @status == "FINISHED" or @status == "ERROR" or @status == "CANCELED" then
+ @end_time = Time.now.strftime("%F %T")
+ db.do "UPDATE jobs SET end_time='#{@end_time}' WHERE id=#{@id}"
+ end
end
end