From: jiil.hyoun Date: Mon, 31 Dec 2012 05:31:59 +0000 (+0900) Subject: [Title] add get_all_projects_summary method X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=67ef541934a905e44e69fb52d424597c1984acee;p=sdk%2Ftools%2Fsdk-build.git [Title] add get_all_projects_summary method [Type] Enhancement [Module] Toolchain / [Priority] Minor [Jira#] [Redmine#] 7898 [Problem] [Cause] [Solution] [TestCase] Change-Id: Ic0c7a59d14d31d79e13ba0fb7937eb5dda04adfc --- diff --git a/src/build_server/CommonProject.rb b/src/build_server/CommonProject.rb index 7c639b5..12963ad 100644 --- a/src/build_server/CommonProject.rb +++ b/src/build_server/CommonProject.rb @@ -203,10 +203,8 @@ class CommonProject protected def self.load_row(name, dist_name, db) - row = db.select_one("SELECT * FROM distributions WHERE name='#{dist_name}'") - if row.nil? then return nil end - dist_id = row['id'] - row = db.select_one("SELECT * FROM projects WHERE name='#{name}' and distribution_id=#{dist_id}") + row = db.select_one("SELECT projects.* FROM projects,distributions WHERE projects.name='#{name}' and + projects.distribution_id=distribuitons.id and distributions.name='#{dist_name}'") if row.nil? then return nil end # get supported_os @@ -336,10 +334,7 @@ class CommonProject public def self.get_project_row(name, dist_name, db) - row = db.select_one("SELECT * FROM distributions WHERE name='#{dist_name}'") - dist_id = row['id'] - row = db.select_one("SELECT * FROM projects WHERE name='#{name}' and distribution_id=#{dist_id}") - return row + return db.select_one("SELECT * FROM projects WHERE name='#{name}' AND distribution_id=(SELECT id FROM distributions WHERE name='#{dist_name}')") end public @@ -354,15 +349,7 @@ class CommonProject public def self.get_all_project_rows(db) - result = [] - rows = db.select_all("SELECT projects.name,distributions.name as dist_name,projects.ptype + return db.select_all("SELECT projects.name,distributions.name as dist_name,projects.ptype FROM projects,distributions WHERE projects.distribution_id=distributions.id") - rows.each do |row| - prj_name = row['name'] - prj_dist = row['dist_name'] - prj_type = row['ptype'] - result.push [prj_name, prj_dist, prj_type] - end - return result end end diff --git a/src/build_server/ProjectManager.rb b/src/build_server/ProjectManager.rb index ece0e9e..c717213 100644 --- a/src/build_server/ProjectManager.rb +++ b/src/build_server/ProjectManager.rb @@ -63,23 +63,25 @@ class ProjectManager end + def get_all_projects_summary() + @server.get_db_connection() do |db| + return CommonProject.get_all_project_rows(db) + end + end + def get_all_projects() result = [] @server.get_db_connection() do |db| rows = CommonProject.get_all_project_rows(db) rows.each do |row| - prj_name = row[0] - prj_dist = row[1] - prj_type = row[2] - if prj_type == "GIT" then - prj = GitBuildProject.load(prj_name, prj_dist, @server, db) + if row[:ptype] == "GIT" then + prj = GitBuildProject.load(row[:name], row[:dist_name], @server, db) else - prj = BinaryUploadProject.load(prj_name, prj_dist, @server, db) + prj = BinaryUploadProject.load(row[:name], row[:dist_name], @server, db) end if not prj.nil? then result.push prj end end - return result end diff --git a/src/build_server/SocketJobRequestListener.rb b/src/build_server/SocketJobRequestListener.rb index cc19ee8..dc18da6 100644 --- a/src/build_server/SocketJobRequestListener.rb +++ b/src/build_server/SocketJobRequestListener.rb @@ -527,20 +527,17 @@ class SocketJobRequestListener BuildCommServer.disconnect(req) when "PROJECT" # print GIT projects - sorted_list = @parent_server.prjmgr.get_all_projects().sort { |x,y| x.name <=> y.name } - sorted_list.each do |prj| - if prj.type != "GIT" then next end - BuildCommServer.send(req,"G,#{prj.name},#{prj.dist_name},#{prj.repository},#{prj.branch}") + sorted_list = @parent_server.prjmgr.get_all_projects_summary().sort { |x,y| x[:name] <=> y[:name] } + sorted_list.select{|x| x[:ptype] == "GIT"}.each do |prj| + BuildCommServer.send(req,"G,#{prj[:name]},#{prj[:dist_name]}") end # print BINARY projects - sorted_list.each do |prj| - if prj.type != "BINARY" then next end - BuildCommServer.send(req,"B,#{prj.name},#{prj.dist_name},#{prj.pkg_name}") + sorted_list.select{|x| x[:ptype] == "BINARY"}.each do |prj| + BuildCommServer.send(req,"B,#{prj[:name]},#{prj[:dist_name]}") end # print REMOTE project - sorted_list.each do |prj| - if prj.type != "REMOTE" then next end - BuildCommServer.send(req,"R,#{prj.name},#{prj.dist_name}") + sorted_list.select{|x| x[:ptype] == "REMOTE"}.each do |prj| + BuildCommServer.send(req,"R,#{prj[:name]},#{prj[:dist_name]}") end BuildCommServer.send_end(req) BuildCommServer.disconnect(req)