[Title] fix dbi select_all use for multi linux distribution support
authorHyoun Jiil <jiil.hyoun@samsung.com>
Wed, 3 Jul 2013 08:39:23 +0000 (17:39 +0900)
committerHyoun Jiil <jiil.hyoun@samsung.com>
Wed, 3 Jul 2013 08:39:23 +0000 (17:39 +0900)
[Type] Enhancement
[Module] Toolchain /
[Priority] Minor
[Jira#]
[Redmine#] 9756
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: I75a4863bdede65a34a4be64199280b689e5d5ccc

src/build_server/BuildServer.rb
src/build_server/CommonProject.rb
src/build_server/DistributionManager.rb
src/build_server/ProjectManager.rb
src/build_server/RemoteBuildServer.rb
src/build_server/SocketJobRequestListener.rb

index 0f7a3e9f258723df5885954d1ba564680dbc34a0..2732e537add724db971c9492fba757b3aab89c41 100644 (file)
@@ -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
index 8f66fb98de097a24d670488c123d5f8cc5511787..a3ae4f312b397ffca5b8bbd8e12d09379d57b025 100644 (file)
@@ -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
index 1733558c2ef3ce2386b737e25ef3802776b6d32e..a4ed3e812bc9452e2b4678b5dde89f1f6b717096 100644 (file)
@@ -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
 
 
index 73aa601da4513b479d12f84aeea20932a0cc0776..5b52350d2e633a96aac0cd832c0b7fea2f79208a 100644 (file)
@@ -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
index d7c7a378d085ff1e306db56fe47d6493014c9ed0..df8ccbbef6baaa9accd57c985066a27b7581c24d 100644 (file)
@@ -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
 
index f0caca50c19f2798c37ae66bfa660aa987666187..11bcfa44d03c3bf11489dbf1ac7b4546da350b9b 100644 (file)
@@ -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)