From ef03acc35e21f71d7e92c999cf8f48392ed4427e Mon Sep 17 00:00:00 2001 From: donghee yang Date: Fri, 26 Oct 2012 23:53:53 +0900 Subject: [PATCH] [Title] Added 'jobs' table --- src/build_server/BuildServer.rb | 18 ++++++++++++------ src/build_server/CommonProject.rb | 4 ++-- src/build_server/DistributionManager.rb | 17 ----------------- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/build_server/BuildServer.rb b/src/build_server/BuildServer.rb index b148d95..df9e656 100644 --- a/src/build_server/BuildServer.rb +++ b/src/build_server/BuildServer.rb @@ -548,21 +548,27 @@ class BuildServer end # create table - db.do "CREATE TABLE IF NOT EXISTS distributions(name VARCHAR(32) PRIMARY KEY, pkgsvr_url VARCHAR(256), pkgsvr_addr VARCHAR(64))" + db.do "CREATE TABLE IF NOT EXISTS distributions(name VARCHAR(32) PRIMARY KEY, pkgsvr_url VARCHAR(256), pkgsvr_addr VARCHAR(64), status VARCHAR(32) DEFAULT 'OPEN')" db.do "CREATE TABLE IF NOT EXISTS remote_build_servers(id INTEGER PRIMARY KEY #{inc}, svr_addr VARCHAR(64))" db.do "CREATE TABLE IF NOT EXISTS sync_pkg_servers(id INTEGER PRIMARY KEY #{inc}, pkgsvr_url VARCHAR(256), period INTEGER, dist_name VARCHAR(32))" db.do "CREATE TABLE IF NOT EXISTS supported_os(name VARCHAR(32) PRIMARY KEY)" - db.do "CREATE TABLE IF NOT EXISTS projects(id INTEGER PRIMARY KEY #{inc}, name VARCHAR(32), type VARCHAR(32), password VARCHAR(32), dist_name VARCHAR(32))" + + # USERS/GROUPS + db.do "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY #{inc}, email VARCHAR(256), password_hash VARCHAR(256), password_salt VARCHAR(256), name VARCHAR(256), group_id INTEGER)" + db.do "CREATE TABLE IF NOT EXISTS groups(id INTEGER PRIMARY KEY #{inc}, name VARCHAR(256))" + db.do "CREATE TABLE IF NOT EXISTS group_project_acesss(group_id INTEGER PRIMARY KEY, prj_id INTEGER PRIMARY KEY, build VARCHAR(32))" + + # PROJECTS + db.do "CREATE TABLE IF NOT EXISTS projects(id INTEGER PRIMARY KEY #{inc}, name VARCHAR(32), ptype VARCHAR(32), password VARCHAR(32), dist_name VARCHAR(32))" db.do "CREATE TABLE IF NOT EXISTS project_os(prj_id INTEGER, os_name VARCHAR(32))" - db.do "CREATE TABLE IF NOT EXISTS users(user_id INTEGER PRIMARY KEY #{inc}, email VARCHAR(256), password VARCHAR(256), password_salt VARCHAR(256), user_name VARCHAR(256), group_id VARCHAR(256))" - db.do "CREATE TABLE IF NOT EXISTS groups(group_id INTEGER PRIMARY KEY #{inc}, group_name VARCHAR(256))" - # Projects db.do "CREATE TABLE IF NOT EXISTS project_gits(prj_id INTEGER, git_repos VARCHAR(128), git_branch VARCHAR(32))" db.do "CREATE TABLE IF NOT EXISTS project_sources(prj_id INTEGER, pkg_ver VARCHAR(64), location VARCHAR(256))" db.do "CREATE TABLE IF NOT EXISTS project_bins(prj_id INTEGER, pkg_name VARCHAR(64))" - 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, prj_id INTEGER, jtype VARCHAR(32), os_name VARCHAR(32), user_id INTEGER, parent_job_id INTEGER, status VARCHAR(32) )" + rescue DBI::DatabaseError => e puts "DB Creation failed!" puts e.errstr diff --git a/src/build_server/CommonProject.rb b/src/build_server/CommonProject.rb index 64f2157..c5e83f0 100644 --- a/src/build_server/CommonProject.rb +++ b/src/build_server/CommonProject.rb @@ -265,7 +265,7 @@ class CommonProject protected def save_common(db) if @prj_id == -1 then - db.do "INSERT INTO projects (name,type,password,dist_name) VALUES ('#{@name}','#{@type}','#{@passwd}','#{@dist_name}')" + db.do "INSERT INTO projects (name,ptype,password,dist_name) VALUES ('#{@name}','#{@type}','#{@passwd}','#{@dist_name}')" case @server.db_dsn when /^SQLite3:/ then @prj_id = db.select_one("select last_insert_rowid()")[0] when /^Mysql:/ then @prj_id = db.func(:insert_id) @@ -277,7 +277,7 @@ class CommonProject return true else - db.do "UPDATE projects SET type='#{@type}',password='#{@passwd}' WHERE name='#{@name}' and dist_name='#{@dist_name}')" + db.do "UPDATE projects SET ptype='#{@type}',password='#{@passwd}' WHERE name='#{@name}' and dist_name='#{@dist_name}')" db.do "DELETE FROM project_os WHERE prj_id=#{@prj_id}" @os_list.each do |os| db.do "INSERT INTO project_os VALUES('#{@prj_id}','#{os}')" diff --git a/src/build_server/DistributionManager.rb b/src/build_server/DistributionManager.rb index c5d1504..06d5df9 100644 --- a/src/build_server/DistributionManager.rb +++ b/src/build_server/DistributionManager.rb @@ -151,12 +151,6 @@ class DistributionManager def get_distribution_internal(name, db) - begin - db.do('ALTER TABLE distributions ADD COLUMN status VARCHAR(32) DEFAULT "OPEN"') - rescue DBI::DatabaseError => e - # do nothing - end - return PackageDistribution.load(name, db) end @@ -230,12 +224,6 @@ class DistributionManager db = @server.get_db_connection() db['AutoCommit'] = false db.transaction do |dbh| - begin - dbh.do('ALTER TABLE distributions ADD COLUMN status VARCHAR(32) DEFAULT "OPEN"') - rescue DBI::DatabaseError => e - # do nothing - end - return PackageDistribution.load_first(dbh) end @@ -258,11 +246,6 @@ class DistributionManager db = @server.get_db_connection() db['AutoCommit'] = false db.transaction do |dbh| - begin - dbh.do('ALTER TABLE distributions ADD COLUMN status VARCHAR(32) DEFAULT "OPEN"') - rescue DBI::DatabaseError => e - # do nothing - end return PackageDistribution.load_all(dbh) end -- 2.34.1