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
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
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
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
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)