From c9365fd03bfaa403fbdd346d00c92f46b7f32162 Mon Sep 17 00:00:00 2001 From: Hyoun Jiil Date: Wed, 3 Jul 2013 17:39:23 +0900 Subject: [PATCH] [Title] fix dbi select_all use for multi linux distribution support [Type] Enhancement [Module] Toolchain / [Priority] Minor [Jira#] [Redmine#] 9756 [Problem] [Cause] [Solution] [TestCase] Change-Id: I75a4863bdede65a34a4be64199280b689e5d5ccc --- src/build_server/BuildServer.rb | 6 ++---- src/build_server/CommonProject.rb | 21 ++++++++++---------- src/build_server/DistributionManager.rb | 7 +++++-- src/build_server/ProjectManager.rb | 6 +++--- src/build_server/RemoteBuildServer.rb | 5 ++--- src/build_server/SocketJobRequestListener.rb | 14 ++++++------- 6 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/build_server/BuildServer.rb b/src/build_server/BuildServer.rb index 0f7a3e9..2732e53 100644 --- a/src/build_server/BuildServer.rb +++ b/src/build_server/BuildServer.rb @@ -406,8 +406,7 @@ class BuildServer def get_sync_package_servers() result = [] get_db_connection() do |db| - rows = db.select_all("SELECT sync_pkg_servers.pkgsvr_url, distributions.name FROM sync_pkg_servers,distributions WHERE sync_pkg_servers.distribution_id = distributions.id") - rows.each do |row| + db.select_all("SELECT sync_pkg_servers.pkgsvr_url, distributions.name FROM sync_pkg_servers,distributions WHERE sync_pkg_servers.distribution_id = distributions.id") do |row | result.push [row['pkgsvr_url'], row['name']] end end @@ -446,8 +445,7 @@ class BuildServer def supported_os_list result = [] get_db_connection() do |db| - rows = db.select_all("SELECT * FROM supported_os") - rows.each do |row| + db.select_all("SELECT * FROM supported_os") do |row | result.push row['name'] end end diff --git a/src/build_server/CommonProject.rb b/src/build_server/CommonProject.rb index 8f66fb9..a3ae4f3 100644 --- a/src/build_server/CommonProject.rb +++ b/src/build_server/CommonProject.rb @@ -210,22 +210,19 @@ class CommonProject # get supported_os prj_id = row['id'] os_list = [] - rows = db.select_all("SELECT supported_os.name FROM project_os,supported_os WHERE project_id=#{prj_id} and supported_os.id = project_os.supported_os_id") - rows.each do |r| + db.select_all("SELECT supported_os.name FROM project_os,supported_os WHERE project_id=#{prj_id} and supported_os.id = project_os.supported_os_id") do |r| os_list.push r['name'] end # get source info/ package info source_info = {} package_info = {} - rows=db.select_all("SELECT * FROM sources WHERE project_id=#{prj_id}") - rows.each do |r| + db.select_all("SELECT * FROM sources WHERE project_id=#{prj_id}") do |r| source_info[r['pkg_ver']] = r['location'] source_id = r['id'] - rows2=db.select_all("SELECT packages.pkg_name,supported_os.name as os_name - FROM packages,supported_os WHERE source_id=#{source_id} and packages.supported_os_id=supported_os.id") - rows2.each do |r2| + db.select_all("SELECT packages.pkg_name,supported_os.name as os_name + FROM packages,supported_os WHERE source_id=#{source_id} and packages.supported_os_id=supported_os.id") do |r2| if package_info[r['pkg_ver']].nil? then package_info[r['pkg_ver']] = [] end @@ -325,8 +322,7 @@ class CommonProject row = db.select_one("SELECT * FROM projects WHERE id=#{@prj_id}") if row.nil? then return -1 end db.do "DELETE FROM project_os WHERE project_id=#{@prj_id}" - rows=db.select_all("SELECT * FROM sources WHERE project_id=#{@prj_id}") - rows.each do |r| + db.select_all("SELECT * FROM sources WHERE project_id=#{@prj_id}") do |r| source_id = r['id'] db.do "DELETE FROM packages WHERE source_id=#{source_id}" end @@ -352,7 +348,10 @@ class CommonProject public def self.get_all_project_rows(db) - return db.select_all("SELECT projects.name,distributions.name as dist_name,projects.ptype - FROM projects,distributions WHERE projects.distribution_id=distributions.id") + result = [] + db.select_all("SELECT projects.name,distributions.name as dist_name,projects.ptype FROM projects,distributions WHERE projects.distribution_id=distributions.id") do |row | + result.push row.to_h + end + return result end end diff --git a/src/build_server/DistributionManager.rb b/src/build_server/DistributionManager.rb index 1733558..a4ed3e8 100644 --- a/src/build_server/DistributionManager.rb +++ b/src/build_server/DistributionManager.rb @@ -76,8 +76,11 @@ class PackageDistribution def self.load_all(db) - rows = db.select_all("SELECT * FROM distributions") - return rows.map{|x| load_row(x)} + result = [] + db.select_all("SELECT * FROM distributions") do |row | + result.push load_row(row) + end + return result end diff --git a/src/build_server/ProjectManager.rb b/src/build_server/ProjectManager.rb index 73aa601..5b52350 100644 --- a/src/build_server/ProjectManager.rb +++ b/src/build_server/ProjectManager.rb @@ -75,10 +75,10 @@ class ProjectManager @server.get_db_connection() do |db| rows = CommonProject.get_all_project_rows(db) rows.each do |row| - if row[:ptype] == "GIT" then - prj = GitBuildProject.load(row[:name], row[:dist_name], @server, db) + if row['ptype'] == "GIT" then + prj = GitBuildProject.load(row['name'], row['dist_name'], @server, db) else - prj = BinaryUploadProject.load(row[:name], row[:dist_name], @server, db) + prj = BinaryUploadProject.load(row['name'], row['dist_name'], @server, db) end if not prj.nil? then result.push prj end end diff --git a/src/build_server/RemoteBuildServer.rb b/src/build_server/RemoteBuildServer.rb index d7c7a37..df8ccbb 100644 --- a/src/build_server/RemoteBuildServer.rb +++ b/src/build_server/RemoteBuildServer.rb @@ -201,10 +201,9 @@ class RemoteBuildServer def self.load_all(db, parent) result = [] - rows = db.select_all("SELECT *,'' as host_os_name FROM remote_build_servers WHERE supported_os_id IS NULL + db.select_all("SELECT *,'' as host_os_name FROM remote_build_servers WHERE supported_os_id IS NULL UNION ALL - SELECT remote_build_servers.*, supported_os.name as host_os_name FROM remote_build_servers, supported_os WHERE remote_build_servers.supported_os_id = supported_os.id") - rows.each do |row| + SELECT remote_build_servers.*, supported_os.name as host_os_name FROM remote_build_servers, supported_os WHERE remote_build_servers.supported_os_id = supported_os.id") do |row| result.push load_row(row, parent) end diff --git a/src/build_server/SocketJobRequestListener.rb b/src/build_server/SocketJobRequestListener.rb index f0caca5..11bcfa4 100644 --- a/src/build_server/SocketJobRequestListener.rb +++ b/src/build_server/SocketJobRequestListener.rb @@ -443,17 +443,17 @@ class SocketJobRequestListener BuildCommServer.disconnect(req) when "PROJECT" # print GIT projects - 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]}") + 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.select{|x| x[:ptype] == "BINARY"}.each do |prj| - BuildCommServer.send(req,"B,#{prj[:name]},#{prj[:dist_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.select{|x| x[:ptype] == "REMOTE"}.each do |prj| - 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) -- 2.34.1