Changeset 1548 for DCWoRMS/branches


Ignore:
Timestamp:
02/12/15 13:16:07 (10 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java

    r1362 r1548  
    66 
    77import dcworms.schedframe.scheduling.ExecTask; 
    8  
    98import schedframe.ExecutablesList; 
    109import schedframe.resources.units.ResourceUnit; 
     
    3231        public List<ExecTask> getTasks(int status); 
    3332 
     33        public List<ExecTask> getTasks(List<Integer> statusList, boolean match); 
     34 
    3435        public List<ExecTask> getQueuedTasks(); 
    3536         
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java

    r1452 r1548  
    44 
    55import java.util.ArrayList; 
     6import java.util.Arrays; 
    67import java.util.List; 
    78import java.util.Set; 
     
    9293 
    9394                return taskList; 
    94         } 
    95  
     95                //return getTasks(Arrays.asList(status), true); 
     96        } 
     97 
     98        public List<ExecTask> getTasks(List<Integer> statusList, boolean match) { 
     99                List<ExecTask> taskList = new ArrayList<ExecTask>(); 
     100                synchronized (executables)  { 
     101                        for (ExecTask task: executables) { 
     102                                for(int status: statusList){ 
     103                                        if (compareStatus(task.getStatus(), status, match)) { 
     104                                                if(cr != null){ 
     105                                                        if(!task.getAllocatedResources().isEmpty()){ 
     106                                                                Set<ComputingResource> visitedResource = task.getAllocatedResources().getLast().getResources(); 
     107                                                                if(visitedResource.contains(cr)){ 
     108                                                                        taskList.add(task); 
     109                                                                } else { 
     110                                                                        for(ComputingResource res: visitedResource){ 
     111                                                                                if(cr.contains(res)){ 
     112                                                                                        taskList.add(task); 
     113                                                                                        break; 
     114                                                                                } 
     115                                                                        } 
     116                                                                } 
     117                                                        } 
     118                                                } else { 
     119                                                        if(!task.getAllocatedResources().isEmpty()){ 
     120                                                                Set<String> visitedResource = task.getAllocatedResources().getLast().getResourceNames(); 
     121                                                                for(String res: visitedResource){ 
     122                                                                        if(res.equals(context) || res.substring(0, res.lastIndexOf("/")).contains(context)){ 
     123                                                                                taskList.add(task); 
     124                                                                                break; 
     125                                                                        } 
     126                                                                }        
     127                                                        } 
     128 
     129                                                        if(task.getSchedulerName().equals(context)) { 
     130                                                                taskList.add(task); 
     131                                                        } 
     132                                                } 
     133                                        } 
     134                                } 
     135                        } 
     136                } 
     137 
     138                return taskList; 
     139        } 
     140         
     141        private boolean compareStatus(int taskStatus, int status, boolean match){ 
     142                if(match){ 
     143                        if(taskStatus == status) 
     144                                return true; 
     145                } else { 
     146                        if(taskStatus !=status) 
     147                                return true; 
     148                } 
     149                return false; 
     150        } 
     151         
    96152        public List<ExecTask> getQueuedTasks() { 
    97153                return getTasks(DCWormsTags.QUEUED); 
Note: See TracChangeset for help on using the changeset viewer.