1 package org.apache.maven.continuum.web.action.admin;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.lang.ArrayUtils;
23 import org.apache.continuum.buildmanager.BuildManagerException;
24 import org.apache.continuum.taskqueue.BuildProjectTask;
25 import org.apache.continuum.taskqueue.CheckOutTask;
26 import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
27 import org.apache.continuum.utils.build.BuildTrigger;
28 import org.apache.maven.continuum.model.project.Project;
29 import org.apache.maven.continuum.model.project.ProjectGroup;
30 import org.apache.maven.continuum.security.ContinuumRoleConstants;
31 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
32 import org.apache.maven.continuum.web.bean.BuildProjectQueue;
33 import org.apache.maven.continuum.web.bean.CheckoutQueue;
34 import org.apache.maven.continuum.web.exception.AuthenticationRequiredException;
35 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
36 import org.apache.maven.continuum.web.model.DistributedBuildSummary;
37 import org.apache.maven.continuum.web.model.PrepareBuildSummary;
38 import org.codehaus.plexus.redback.rbac.Resource;
39 import org.codehaus.redback.integration.interceptor.SecureAction;
40 import org.codehaus.redback.integration.interceptor.SecureActionBundle;
41 import org.codehaus.redback.integration.interceptor.SecureActionException;
42 import org.slf4j.Logger;
43 import org.slf4j.LoggerFactory;
44
45 import java.util.ArrayList;
46 import java.util.List;
47 import java.util.Map;
48 import java.util.Set;
49
50
51
52
53
54
55
56 public class QueuesAction
57 extends ContinuumActionSupport
58 implements SecureAction
59 {
60 private static final Logger logger = LoggerFactory.getLogger( QueuesAction.class );
61
62 private static final String DISTRIBUTED_BUILD_SUCCESS = "distributed-build-success";
63
64 private List<String> selectedPrepareBuildTaskHashCodes;
65
66 private List<String> selectedBuildTaskHashCodes;
67
68 private List<String> selectedCheckOutTaskHashCodes;
69
70 private int buildDefinitionId;
71
72 private int projectId;
73
74 private int trigger;
75
76 private String projectName;
77
78 private List<BuildProjectQueue> currentBuildProjectTasks = new ArrayList<BuildProjectQueue>();
79
80 private List<CheckoutQueue> currentCheckoutTasks = new ArrayList<CheckoutQueue>();
81
82 private List<BuildProjectQueue> buildsInQueue = new ArrayList<BuildProjectQueue>();
83
84 private List<CheckoutQueue> checkoutsInQueue = new ArrayList<CheckoutQueue>();
85
86 private List<PrepareBuildSummary> currentPrepareBuilds = new ArrayList<PrepareBuildSummary>();
87
88 private List<PrepareBuildSummary> prepareBuildQueues = new ArrayList<PrepareBuildSummary>();
89
90 private List<PrepareBuildSummary> currentDistributedPrepareBuilds = new ArrayList<PrepareBuildSummary>();
91
92 private List<PrepareBuildSummary> distributedPrepareBuildQueues = new ArrayList<PrepareBuildSummary>();
93
94 private List<DistributedBuildSummary> currentDistributedBuilds = new ArrayList<DistributedBuildSummary>();
95
96 private List<DistributedBuildSummary> distributedBuildQueues = new ArrayList<DistributedBuildSummary>();
97
98 private String buildAgentUrl;
99
100 private int projectGroupId;
101
102 private int scmRootId;
103
104
105
106
107
108 public String cancelCurrent()
109 throws Exception
110 {
111 try
112 {
113 checkManageQueuesAuthorization();
114 }
115 catch ( AuthorizationRequiredException authzE )
116 {
117 addActionError( authzE.getMessage() );
118 return REQUIRES_AUTHORIZATION;
119 }
120 catch ( AuthenticationRequiredException e )
121 {
122 addActionError( e.getMessage() );
123 return REQUIRES_AUTHENTICATION;
124 }
125
126 try
127 {
128 getContinuum().getBuildsManager().cancelBuild( projectId );
129 }
130 catch ( BuildManagerException e )
131 {
132 addActionError( e.getMessage() );
133 return ERROR;
134 }
135
136 return SUCCESS;
137 }
138
139 public String removeCheckout()
140 throws Exception
141 {
142 try
143 {
144 checkManageQueuesAuthorization();
145 }
146 catch ( AuthorizationRequiredException authzE )
147 {
148 addActionError( authzE.getMessage() );
149 return REQUIRES_AUTHORIZATION;
150 }
151 catch ( AuthenticationRequiredException e )
152 {
153 addActionError( e.getMessage() );
154 return REQUIRES_AUTHENTICATION;
155 }
156
157 try
158 {
159 getContinuum().getBuildsManager().removeProjectFromCheckoutQueue( projectId );
160 }
161 catch ( BuildManagerException e )
162 {
163 addActionError( e.getMessage() );
164 return ERROR;
165 }
166
167 return SUCCESS;
168 }
169
170 public String cancelCurrentCheckout()
171 throws Exception
172 {
173 try
174 {
175 checkManageQueuesAuthorization();
176 }
177 catch ( AuthorizationRequiredException authzE )
178 {
179 addActionError( authzE.getMessage() );
180 return REQUIRES_AUTHORIZATION;
181 }
182 catch ( AuthenticationRequiredException e )
183 {
184 addActionError( e.getMessage() );
185 return REQUIRES_AUTHENTICATION;
186 }
187 try
188 {
189 cancelCheckout( projectId );
190 }
191 catch ( BuildManagerException e )
192 {
193 addActionError( e.getMessage() );
194 return ERROR;
195 }
196
197 return SUCCESS;
198 }
199
200 public String display()
201 throws Exception
202 {
203 if ( getContinuum().getConfiguration().isDistributedBuildEnabled() )
204 {
205
206 Map<String, PrepareBuildProjectsTask> currentPrepareBuildMap =
207 getContinuum().getDistributedBuildManager().getProjectsCurrentlyPreparingBuild();
208
209 for ( String url : currentPrepareBuildMap.keySet() )
210 {
211 PrepareBuildProjectsTask task = currentPrepareBuildMap.get( url );
212
213 ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );
214
215 PrepareBuildSummary summary = new PrepareBuildSummary();
216 summary.setBuildAgentUrl( url );
217 summary.setProjectGroupId( task.getProjectGroupId() );
218 summary.setProjectGroupName( projectGroup.getName() );
219 summary.setScmRootAddress( task.getScmRootAddress() );
220 summary.setScmRootId( task.getProjectScmRootId() );
221
222 currentDistributedPrepareBuilds.add( summary );
223 }
224
225
226 Map<String, BuildProjectTask> currentBuildMap =
227 getContinuum().getDistributedBuildManager().getProjectsCurrentlyBuilding();
228
229 for ( String url : currentBuildMap.keySet() )
230 {
231 BuildProjectTask task = currentBuildMap.get( url );
232
233 Project project = getContinuum().getProject( task.getProjectId() );
234
235 DistributedBuildSummary summary = new DistributedBuildSummary();
236 summary.setProjectId( project.getId() );
237 summary.setProjectName( project.getName() );
238 summary.setProjectGroupName( project.getProjectGroup().getName() );
239 summary.setBuildDefinitionId( task.getBuildDefinitionId() );
240 summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
241 summary.setHashCode( task.getHashCode() );
242 summary.setBuildAgentUrl( url );
243
244 currentDistributedBuilds.add( summary );
245 }
246
247
248 Map<String, List<PrepareBuildProjectsTask>> prepareBuildMap =
249 getContinuum().getDistributedBuildManager().getProjectsInPrepareBuildQueue();
250
251 for ( String url : prepareBuildMap.keySet() )
252 {
253 for ( PrepareBuildProjectsTask task : prepareBuildMap.get( url ) )
254 {
255 ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );
256
257 PrepareBuildSummary summary = new PrepareBuildSummary();
258 summary.setBuildAgentUrl( url );
259 summary.setProjectGroupId( task.getProjectGroupId() );
260 summary.setProjectGroupName( projectGroup.getName() );
261 summary.setScmRootAddress( task.getScmRootAddress() );
262 summary.setScmRootId( task.getProjectScmRootId() );
263 summary.setHashCode( task.getHashCode() );
264
265 distributedPrepareBuildQueues.add( summary );
266 }
267 }
268
269
270 Map<String, List<BuildProjectTask>> buildMap =
271 getContinuum().getDistributedBuildManager().getProjectsInBuildQueue();
272
273 for ( String url : buildMap.keySet() )
274 {
275 for ( BuildProjectTask task : buildMap.get( url ) )
276 {
277 DistributedBuildSummary summary = new DistributedBuildSummary();
278
279 Project project = getContinuum().getProject( task.getProjectId() );
280
281 summary.setProjectId( project.getId() );
282 summary.setProjectName( project.getName() );
283 summary.setProjectGroupName( project.getProjectGroup().getName() );
284 summary.setBuildDefinitionId( task.getBuildDefinitionId() );
285 summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
286 summary.setHashCode( task.getHashCode() );
287 summary.setBuildAgentUrl( url );
288
289 distributedBuildQueues.add( summary );
290 }
291 }
292
293 return DISTRIBUTED_BUILD_SUCCESS;
294 }
295 else
296 {
297 try
298 {
299
300 Map<String, PrepareBuildProjectsTask> currentPrepareBuildTasks =
301 getContinuum().getBuildsManager().getCurrentProjectInPrepareBuild();
302
303 Set<String> keySet = currentPrepareBuildTasks.keySet();
304 for ( String key : keySet )
305 {
306 PrepareBuildProjectsTask prepareBuildTask = currentPrepareBuildTasks.get( key );
307
308 PrepareBuildSummary s = new PrepareBuildSummary();
309 s.setProjectGroupId( prepareBuildTask.getProjectGroupId() );
310 s.setProjectGroupName( prepareBuildTask.getProjectGroupName() );
311 s.setScmRootId( prepareBuildTask.getProjectScmRootId() );
312 s.setScmRootAddress( prepareBuildTask.getScmRootAddress() );
313 s.setQueueName( key );
314 currentPrepareBuilds.add( s );
315 }
316 }
317 catch ( BuildManagerException e )
318 {
319 addActionError( e.getMessage() );
320 return ERROR;
321 }
322
323 try
324 {
325
326 Map<String, BuildProjectTask> currentBuilds = getContinuum().getBuildsManager().getCurrentBuilds();
327 Set<String> keySet = currentBuilds.keySet();
328 for ( String key : keySet )
329 {
330 BuildProjectTask buildTask = currentBuilds.get( key );
331 BuildProjectQueue queue = new BuildProjectQueue();
332 queue.setName( key );
333 queue.setTask( buildTask );
334 currentBuildProjectTasks.add( queue );
335 }
336 }
337 catch ( BuildManagerException e )
338 {
339 addActionError( e.getMessage() );
340 return ERROR;
341 }
342
343 try
344 {
345
346 Map<String, List<PrepareBuildProjectsTask>> prepareBuilds =
347 getContinuum().getBuildsManager().getProjectsInPrepareBuildQueue();
348
349 Set<String> keySet = prepareBuilds.keySet();
350 for ( String key : keySet )
351 {
352 for ( PrepareBuildProjectsTask task : prepareBuilds.get( key ) )
353 {
354 PrepareBuildSummary summary = new PrepareBuildSummary();
355 summary.setProjectGroupId( task.getProjectGroupId() );
356 summary.setProjectGroupName( task.getProjectGroupName() );
357 summary.setScmRootId( task.getProjectScmRootId() );
358 summary.setScmRootAddress( task.getScmRootAddress() );
359 summary.setHashCode( task.getHashCode() );
360 summary.setQueueName( key );
361
362 prepareBuildQueues.add( summary );
363 }
364 }
365 }
366 catch ( BuildManagerException e )
367 {
368 addActionError( e.getMessage() );
369 return ERROR;
370 }
371
372 try
373 {
374
375 Map<String, List<BuildProjectTask>> builds =
376 getContinuum().getBuildsManager().getProjectsInBuildQueues();
377 Set<String> keySet = builds.keySet();
378 for ( String key : keySet )
379 {
380 for ( BuildProjectTask task : builds.get( key ) )
381 {
382 BuildProjectQueue queue = new BuildProjectQueue();
383 queue.setName( key );
384 queue.setTask( task );
385 buildsInQueue.add( queue );
386 }
387 }
388 }
389 catch ( BuildManagerException e )
390 {
391 addActionError( e.getMessage() );
392 return ERROR;
393 }
394
395 try
396 {
397
398 Map<String, CheckOutTask> currentCheckouts = getContinuum().getBuildsManager().getCurrentCheckouts();
399 Set<String> keySet = currentCheckouts.keySet();
400 for ( String key : keySet )
401 {
402 CheckOutTask checkoutTask = currentCheckouts.get( key );
403 CheckoutQueue queue = new CheckoutQueue();
404 queue.setName( key );
405 queue.setTask( checkoutTask );
406 currentCheckoutTasks.add( queue );
407 }
408 }
409 catch ( BuildManagerException e )
410 {
411 addActionError( e.getMessage() );
412 return ERROR;
413 }
414
415 try
416 {
417
418 Map<String, List<CheckOutTask>> checkouts =
419 getContinuum().getBuildsManager().getProjectsInCheckoutQueues();
420 Set<String> keySet = checkouts.keySet();
421 for ( String key : keySet )
422 {
423 for ( CheckOutTask task : checkouts.get( key ) )
424 {
425 CheckoutQueue queue = new CheckoutQueue();
426 queue.setName( key );
427 queue.setTask( task );
428 checkoutsInQueue.add( queue );
429 }
430 }
431 }
432 catch ( BuildManagerException e )
433 {
434 addActionError( e.getMessage() );
435 return ERROR;
436 }
437 }
438
439 return SUCCESS;
440 }
441
442 public String remove()
443 throws Exception
444 {
445 try
446 {
447 checkManageQueuesAuthorization();
448 }
449 catch ( AuthorizationRequiredException authzE )
450 {
451 addActionError( authzE.getMessage() );
452 return REQUIRES_AUTHORIZATION;
453 }
454 catch ( AuthenticationRequiredException e )
455 {
456 addActionError( e.getMessage() );
457 return REQUIRES_AUTHENTICATION;
458 }
459
460 getContinuum().getBuildsManager().removeProjectFromBuildQueue( projectId, buildDefinitionId, new BuildTrigger(
461 trigger, "" ), projectName, projectGroupId );
462 Project project = getContinuum().getProject( projectId );
463 project.setState( project.getOldState() );
464 getContinuum().updateProject( project );
465
466 return SUCCESS;
467 }
468
469 public String removeBuildEntries()
470 throws Exception
471 {
472 try
473 {
474 checkManageQueuesAuthorization();
475 }
476 catch ( AuthorizationRequiredException authzE )
477 {
478 addActionError( authzE.getMessage() );
479 return REQUIRES_AUTHORIZATION;
480 }
481 catch ( AuthenticationRequiredException e )
482 {
483 addActionError( e.getMessage() );
484 return REQUIRES_AUTHENTICATION;
485 }
486
487 getContinuum().getBuildsManager().removeProjectsFromBuildQueueWithHashcodes( listToIntArray(
488 this.getSelectedBuildTaskHashCodes() ) );
489 return SUCCESS;
490 }
491
492 public String removeCheckoutEntries()
493 throws Exception
494 {
495 try
496 {
497 checkManageQueuesAuthorization();
498 }
499 catch ( AuthorizationRequiredException authzE )
500 {
501 addActionError( authzE.getMessage() );
502 return REQUIRES_AUTHORIZATION;
503 }
504 catch ( AuthenticationRequiredException e )
505 {
506 addActionError( e.getMessage() );
507 return REQUIRES_AUTHENTICATION;
508 }
509
510 getContinuum().getBuildsManager().removeProjectsFromCheckoutQueueWithHashcodes( listToIntArray(
511 this.getSelectedCheckOutTaskHashCodes() ) );
512 return SUCCESS;
513 }
514
515 public String removePrepareBuildEntry()
516 throws Exception
517 {
518 try
519 {
520 checkManageQueuesAuthorization();
521 }
522 catch ( AuthorizationRequiredException authzE )
523 {
524 addActionError( authzE.getMessage() );
525 return REQUIRES_AUTHORIZATION;
526 }
527 catch ( AuthenticationRequiredException e )
528 {
529 addActionError( e.getMessage() );
530 return REQUIRES_AUTHENTICATION;
531 }
532
533 getContinuum().getBuildsManager().removeProjectFromPrepareBuildQueue( projectGroupId, scmRootId );
534 return SUCCESS;
535 }
536
537 public String removePrepareBuildEntries()
538 throws Exception
539 {
540 try
541 {
542 checkManageQueuesAuthorization();
543 }
544 catch ( AuthorizationRequiredException authzE )
545 {
546 addActionError( authzE.getMessage() );
547 return REQUIRES_AUTHORIZATION;
548 }
549 catch ( AuthenticationRequiredException e )
550 {
551 addActionError( e.getMessage() );
552 return REQUIRES_AUTHENTICATION;
553 }
554
555 getContinuum().getBuildsManager().removeProjectsFromPrepareBuildQueueWithHashCodes( listToIntArray(
556 this.selectedPrepareBuildTaskHashCodes ) );
557 return SUCCESS;
558 }
559
560 public String cancelDistributedBuild()
561 throws Exception
562 {
563 try
564 {
565 checkManageQueuesAuthorization();
566 }
567 catch ( AuthorizationRequiredException authzE )
568 {
569 addActionError( authzE.getMessage() );
570 return REQUIRES_AUTHORIZATION;
571 }
572 catch ( AuthenticationRequiredException e )
573 {
574 addActionError( e.getMessage() );
575 return REQUIRES_AUTHENTICATION;
576 }
577
578 getContinuum().getDistributedBuildManager().cancelDistributedBuild( buildAgentUrl );
579
580 return SUCCESS;
581 }
582
583 public String removeDistributedPrepareBuildEntry()
584 throws Exception
585 {
586 try
587 {
588 checkManageQueuesAuthorization();
589 }
590 catch ( AuthorizationRequiredException authzE )
591 {
592 addActionError( authzE.getMessage() );
593 return REQUIRES_AUTHORIZATION;
594 }
595 catch ( AuthenticationRequiredException e )
596 {
597 addActionError( e.getMessage() );
598 return REQUIRES_AUTHENTICATION;
599 }
600
601 getContinuum().getDistributedBuildManager().removeFromPrepareBuildQueue( buildAgentUrl, projectGroupId,
602 scmRootId );
603
604 return SUCCESS;
605 }
606
607 public String removeDistributedPrepareBuildEntries()
608 throws Exception
609 {
610 try
611 {
612 checkManageQueuesAuthorization();
613 }
614 catch ( AuthorizationRequiredException authzE )
615 {
616 addActionError( authzE.getMessage() );
617 return REQUIRES_AUTHORIZATION;
618 }
619 catch ( AuthenticationRequiredException e )
620 {
621 addActionError( e.getMessage() );
622 return REQUIRES_AUTHENTICATION;
623 }
624
625 getContinuum().getDistributedBuildManager().removeFromPrepareBuildQueue(
626 this.getSelectedPrepareBuildTaskHashCodes() );
627
628 return SUCCESS;
629 }
630
631 public String removeDistributedBuildEntry()
632 throws Exception
633 {
634 try
635 {
636 checkManageQueuesAuthorization();
637 }
638 catch ( AuthorizationRequiredException authzE )
639 {
640 addActionError( authzE.getMessage() );
641 return REQUIRES_AUTHORIZATION;
642 }
643 catch ( AuthenticationRequiredException e )
644 {
645 addActionError( e.getMessage() );
646 return REQUIRES_AUTHENTICATION;
647 }
648
649 getContinuum().getDistributedBuildManager().removeFromBuildQueue( buildAgentUrl, projectId, buildDefinitionId );
650
651 return SUCCESS;
652 }
653
654 public String removeDistributedBuildEntries()
655 throws Exception
656 {
657 try
658 {
659 checkManageQueuesAuthorization();
660 }
661 catch ( AuthorizationRequiredException authzE )
662 {
663 addActionError( authzE.getMessage() );
664 return REQUIRES_AUTHORIZATION;
665 }
666 catch ( AuthenticationRequiredException e )
667 {
668 addActionError( e.getMessage() );
669 return REQUIRES_AUTHENTICATION;
670 }
671
672 getContinuum().getDistributedBuildManager().removeFromBuildQueue( this.getSelectedBuildTaskHashCodes() );
673
674 return SUCCESS;
675 }
676
677 private int[] listToIntArray( List<String> strings )
678 {
679 if ( strings == null || strings.isEmpty() )
680 {
681 return new int[0];
682 }
683 int[] array = new int[0];
684 for ( String intString : strings )
685 {
686 array = ArrayUtils.add( array, Integer.parseInt( intString ) );
687 }
688 return array;
689 }
690
691
692
693
694
695 public SecureActionBundle getSecureActionBundle()
696 throws SecureActionException
697 {
698 SecureActionBundle bundle = new SecureActionBundle();
699 bundle.setRequiresAuthentication( true );
700 bundle.addRequiredAuthorization( ContinuumRoleConstants.CONTINUUM_VIEW_QUEUES, Resource.GLOBAL );
701
702 return bundle;
703 }
704
705 private boolean cancelCheckout( int projectId )
706 throws BuildManagerException
707 {
708 Map<String, CheckOutTask> tasks = getContinuum().getBuildsManager().getCurrentCheckouts();
709 if ( tasks != null )
710 {
711 Set<String> keySet = tasks.keySet();
712 for ( String key : keySet )
713 {
714 CheckOutTask task = tasks.get( key );
715 if ( task != null )
716 {
717 if ( task.getProjectId() == projectId )
718 {
719 logger.info( "Cancelling checkout for project " + projectId );
720 return getContinuum().getBuildsManager().cancelCheckout( projectId );
721 }
722 else
723 {
724 logger.warn(
725 "Current task is not for the given projectId (" + projectId + "): " + task.getProjectId() +
726 "; not cancelling checkout" );
727 }
728 }
729 }
730 }
731 else
732 {
733 logger.warn( "No task running - not cancelling checkout" );
734 }
735
736 return false;
737 }
738
739 public int getBuildDefinitionId()
740 {
741 return buildDefinitionId;
742 }
743
744 public void setBuildDefinitionId( int buildDefinitionId )
745 {
746 this.buildDefinitionId = buildDefinitionId;
747 }
748
749 public int getProjectId()
750 {
751 return projectId;
752 }
753
754 public void setProjectId( int projectId )
755 {
756 this.projectId = projectId;
757 }
758
759 public int getTrigger()
760 {
761 return trigger;
762 }
763
764 public void setTrigger( int trigger )
765 {
766 this.trigger = trigger;
767 }
768
769 public String getProjectName()
770 {
771 return projectName;
772 }
773
774 public void setProjectName( String projectName )
775 {
776 this.projectName = projectName;
777 }
778
779 public List<String> getSelectedBuildTaskHashCodes()
780 {
781 return selectedBuildTaskHashCodes;
782 }
783
784 public void setSelectedBuildTaskHashCodes( List<String> selectedBuildTaskHashCodes )
785 {
786 this.selectedBuildTaskHashCodes = selectedBuildTaskHashCodes;
787 }
788
789 public List<String> getSelectedCheckOutTaskHashCodes()
790 {
791 return selectedCheckOutTaskHashCodes;
792 }
793
794 public void setSelectedCheckOutTaskHashCodes( List<String> selectedCheckOutTaskHashCodes )
795 {
796 this.selectedCheckOutTaskHashCodes = selectedCheckOutTaskHashCodes;
797 }
798
799 public List<BuildProjectQueue> getCurrentBuildProjectTasks()
800 {
801 return currentBuildProjectTasks;
802 }
803
804 public void setCurrentBuildProjectTasks( List<BuildProjectQueue> currentBuildProjectTasks )
805 {
806 this.currentBuildProjectTasks = currentBuildProjectTasks;
807 }
808
809 public List<CheckoutQueue> getCurrentCheckoutTasks()
810 {
811 return currentCheckoutTasks;
812 }
813
814 public void setCurrentCheckoutTasks( List<CheckoutQueue> currentCheckoutTasks )
815 {
816 this.currentCheckoutTasks = currentCheckoutTasks;
817 }
818
819 public List<BuildProjectQueue> getBuildsInQueue()
820 {
821 return buildsInQueue;
822 }
823
824 public void setBuildsInQueue( List<BuildProjectQueue> buildsInQueue )
825 {
826 this.buildsInQueue = buildsInQueue;
827 }
828
829 public List<CheckoutQueue> getCheckoutsInQueue()
830 {
831 return checkoutsInQueue;
832 }
833
834 public void setCheckoutsInQueue( List<CheckoutQueue> checkoutsInQueue )
835 {
836 this.checkoutsInQueue = checkoutsInQueue;
837 }
838
839 public List<PrepareBuildSummary> getCurrentDistributedPrepareBuilds()
840 {
841 return currentDistributedPrepareBuilds;
842 }
843
844 public List<DistributedBuildSummary> getCurrentDistributedBuilds()
845 {
846 return currentDistributedBuilds;
847 }
848
849 public List<PrepareBuildSummary> getDistributedPrepareBuildQueues()
850 {
851 return distributedPrepareBuildQueues;
852 }
853
854 public List<DistributedBuildSummary> getDistributedBuildQueues()
855 {
856 return distributedBuildQueues;
857 }
858
859 public List<PrepareBuildSummary> getCurrentPrepareBuilds()
860 {
861 return currentPrepareBuilds;
862 }
863
864 public List<PrepareBuildSummary> getPrepareBuildQueues()
865 {
866 return prepareBuildQueues;
867 }
868
869 public String getBuildAgentUrl()
870 {
871 return buildAgentUrl;
872 }
873
874 public void setBuildAgentUrl( String buildAgentUrl )
875 {
876 this.buildAgentUrl = buildAgentUrl;
877 }
878
879 public void setProjectGroupId( int projectGroupId )
880 {
881 this.projectGroupId = projectGroupId;
882 }
883
884 public void setScmRootId( int scmRootId )
885 {
886 this.scmRootId = scmRootId;
887 }
888
889 public void setSelectedPrepareBuildTaskHashCodes( List<String> selectedPrepareBuildTaskHashCodes )
890 {
891 this.selectedPrepareBuildTaskHashCodes = selectedPrepareBuildTaskHashCodes;
892 }
893
894 public List<String> getSelectedPrepareBuildTaskHashCodes()
895 {
896 return selectedPrepareBuildTaskHashCodes;
897 }
898 }