[Title] cancel multi project with only one password
authorhyoun jiil <jiil.hyoun@samsung.com>
Tue, 26 Mar 2013 07:35:20 +0000 (16:35 +0900)
committerhyoun jiil <jiil.hyoun@samsung.com>
Tue, 26 Mar 2013 07:35:20 +0000 (16:35 +0900)
[Type] Bugfix
[Module] Toolchain /
[Priority] Major
[Jira#]
[Redmine#] 8851
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: Icffe0d59b32519af5ae97b1d27c008cc3ef7f100

src/build_server/SocketJobRequestListener.rb

index 367155aad1578942555ed2ebf7f130fc41091aec..4dac6f1389396afdefceed702254b12a34fe06a3 100644 (file)
@@ -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)