[Title] add get_all_projects_summary method
authorjiil.hyoun <jiil.hyoun@samsung.com>
Mon, 31 Dec 2012 05:31:59 +0000 (14:31 +0900)
committerjiil.hyoun <jiil.hyoun@samsung.com>
Mon, 31 Dec 2012 05:31:59 +0000 (14:31 +0900)
[Type] Enhancement
[Module] Toolchain /
[Priority] Minor
[Jira#]
[Redmine#] 7898
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: Ic0c7a59d14d31d79e13ba0fb7937eb5dda04adfc

src/build_server/CommonProject.rb
src/build_server/ProjectManager.rb
src/build_server/SocketJobRequestListener.rb

index 7c639b51d6fe006bf0d4d074977650e2b3fbc320..12963ad40c88eb1ba718f1e57834931588a9b86d 100644 (file)
@@ -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
index ece0e9e86afb7fb67c0f2b8ebd08a055322d582a..c7172135e5508629d078d71f8904ca533ad4e29a 100644 (file)
@@ -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
 
index cc19ee85031c5e653b8bf79e04d00bad823b8519..dc18da6f6697d66102a7dbc42627fecc86d91ec8 100644 (file)
@@ -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)