[Title] Added 'jobs' table
authordonghee yang <donghee.yang@samsung.com>
Fri, 26 Oct 2012 14:53:53 +0000 (23:53 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Fri, 26 Oct 2012 14:53:53 +0000 (23:53 +0900)
src/build_server/BuildServer.rb
src/build_server/CommonProject.rb
src/build_server/DistributionManager.rb

index b148d953762787f09668360f46bc0f91ba230665..df9e656a0233e9ba652545129e1487e53bf75d06 100644 (file)
@@ -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
index 64f2157a771b9a7a357cc9b84d4b49e23a273652..c5e83f07b77d291350acb7ab75c04b6563939f9d 100644 (file)
@@ -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}')"
index c5d1504bb3f75325e2f37b70beac758b763de44a..06d5df9c0eb05ab85df217784eedf89661332154 100644 (file)
@@ -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