From: hyoun jiil Date: Tue, 26 Mar 2013 07:35:20 +0000 (+0900) Subject: [Title] cancel multi project with only one password X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6e60008d78e92a2b625b8073e6b241dd0265142f;p=sdk%2Ftools%2Fsdk-build.git [Title] cancel multi project with only one password [Type] Bugfix [Module] Toolchain / [Priority] Major [Jira#] [Redmine#] 8851 [Problem] [Cause] [Solution] [TestCase] Change-Id: Icffe0d59b32519af5ae97b1d27c008cc3ef7f100 --- diff --git a/src/build_server/SocketJobRequestListener.rb b/src/build_server/SocketJobRequestListener.rb index 367155a..4dac6f1 100644 --- a/src/build_server/SocketJobRequestListener.rb +++ b/src/build_server/SocketJobRequestListener.rb @@ -530,9 +530,8 @@ class SocketJobRequestListener end if cancel_job.type == "MULTIBUILD" then - cancel_job.get_sub_jobs().select{|x| x.event == "NONE" }.each do |sub| - check_project_password( sub.get_project, tok[2], req) - end + sub_projects = cancel_job.get_sub_jobs().map{|sub| sub.get_project } + check_multi_project_password(sub_projects,tok[2],req) BuildCommServer.send(req, "\"#{cancel_job.id}, #{cancel_job.get_sub_jobs().map{|x| x.id}.join(", ")}\" will be canceled") @@ -940,6 +939,19 @@ class SocketJobRequestListener return prj end + private + def check_multi_project_password(prj_list, passwd, req) + + if prj_list.select{|prj| not prj.is_passwd_set?}.empty? then + if passwd.nil? or passwd.empty? then + raise BuildServerException.new("ERR011"), "Use -w option to input your project password" + end + + if prj_list.select{|prj| prj.passwd_match?(passwd) }.empty? then + raise BuildServerException.new("ERR012"), "" + end + end + end private def check_project_password(prj, passwd, req)