Ignore:
Timestamp:
06/03/14 15:12:11 (11 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks
Files:
3 edited

Legend:

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

    r1151 r1362  
    22 
    33 
     4import gridsim.dcworms.DCWormsTags; 
     5 
    46import java.util.ArrayList; 
    57import java.util.List; 
     8import java.util.Map; 
    69import java.util.concurrent.ConcurrentHashMap; 
    710 
     11import schedframe.resources.units.ResourceUnit; 
     12import schedframe.resources.units.ResourceUnitName; 
    813import schedframe.scheduling.tasks.Job; 
    914import schedframe.scheduling.tasks.JobInterface; 
    1015import schedframe.scheduling.tasks.Task; 
    1116import schedframe.scheduling.tasks.TaskInterface; 
     17import simulator.DataCenterWorkloadSimulator; 
     18import dcworms.schedframe.scheduling.ExecTask; 
    1219 
    1320 
    1421public abstract class AbstractJobRegistry /*extends ConcurrentHashMap<String, Job>*/ implements JobRegistry, Cloneable{ 
    1522         
    16         private static final long serialVersionUID = 8409060063583755824L; 
    17  
    1823         
    1924        protected static final ConcurrentHashMap<String, JobInterface<?>> jobs = new ConcurrentHashMap<String, JobInterface<?>>(); 
     
    7984        } 
    8085 
     86        @Override 
     87        public boolean pauseTask(String jobId, String taskId) { 
     88                ExecTask execTask = getTask(jobId, taskId); 
     89                if (execTask == null) { 
     90                        return false; 
     91                }else{ 
     92                        String[] ids = new String[2]; 
     93                        ids[0] = new String(jobId); 
     94                        ids[1] = new String(taskId); 
     95                        DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_PAUSE, ids); 
     96                        return true; 
     97                } 
     98        } 
     99 
     100        public boolean resumeTask(String jobId, String taskId) { 
     101                ExecTask execTask = getTask(jobId, taskId); 
     102                if (execTask == null) { 
     103                        return false; 
     104                }else{ 
     105                        String[] ids = new String[2]; 
     106                        ids[0] = new String(jobId); 
     107                        ids[1] = new String(taskId); 
     108                        DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_RESUME, ids); 
     109                        return true;     
     110                } 
     111        } 
     112 
     113        public boolean migrateTask(String jobId, String taskId, Map<ResourceUnitName, ResourceUnit> choosenResources) { 
     114                ExecTask execTask = getTask(jobId, taskId); 
     115                if (execTask == null) { 
     116                        return false; 
     117                }else{ 
     118                        Object[] data = new Object[3]; 
     119                        data[0] = new String(jobId); 
     120                        data[1] = new String(taskId); 
     121                        data[2] = choosenResources; 
     122                        DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_MOVE, data); 
     123                        return true;     
     124                } 
     125        } 
     126 
     127        public boolean migrateTask(String jobId, String taskId, String nodeName) { 
     128                // TODO Auto-generated method stub 
     129                return false; 
     130        } 
     131         
    81132} 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java

    r1151 r1362  
    33 
    44import java.util.List; 
     5import java.util.Map; 
    56 
    67import dcworms.schedframe.scheduling.ExecTask; 
    78 
    89import schedframe.ExecutablesList; 
     10import schedframe.resources.units.ResourceUnit; 
     11import schedframe.resources.units.ResourceUnitName; 
    912import schedframe.scheduling.tasks.JobInterface; 
    1013import schedframe.scheduling.tasks.TaskInterface; 
     
    2730 
    2831         
    29         public List<ExecTask> getTasks(int status) ; 
     32        public List<ExecTask> getTasks(int status); 
    3033 
    31         public List<ExecTask> getQueuedTasks() ; 
     34        public List<ExecTask> getQueuedTasks(); 
    3235         
    33         public List<ExecTask> getRunningTasks() ; 
     36        public List<ExecTask> getRunningTasks(); 
    3437         
    35         public List<ExecTask> getReadyTasks() ; 
     38        public List<ExecTask> getReadyTasks(); 
    3639         
    3740        public List<ExecTask> getFinishedTasks(); 
     
    3942         
    4043        public List<? extends TaskInterface<?>> getAvailableTasks(List<JobInterface<?>> jobsList); 
     44         
     45         
     46        public boolean pauseTask(String jobId, String taskId); 
     47         
     48        public boolean resumeTask(String jobId, String taskId); 
     49         
     50        public boolean migrateTask(String jobId, String taskId, Map<ResourceUnitName, ResourceUnit> choosenResources); 
     51         
     52        public boolean migrateTask(String jobId, String taskId, String nodeName); 
     53         
    4154 
    4255} 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java

    r1151 r1362  
    55import java.util.ArrayList; 
    66import java.util.List; 
    7  
    8 import org.apache.commons.lang.ArrayUtils; 
     7import java.util.Set; 
     8 
    99import org.apache.commons.logging.Log; 
    1010import org.apache.commons.logging.LogFactory; 
     
    2121 
    2222public class JobRegistryImpl extends AbstractJobRegistry { 
    23          
    24         private static final long serialVersionUID = 8030555906990767342L; 
    2523 
    2624        private static Log log = LogFactory.getLog(JobRegistryImpl.class); 
     
    5553                        for (ExecTask task: executables) { 
    5654                                if (task.getStatus() == status) { 
    57                                         List<String> visitedResource = task.getVisitedResources(); 
    58                                         if(ArrayUtils.contains(visitedResource.toArray(new String[visitedResource.size()]), context)) { 
     55                                        Set<String> visitedResource = task.getAllocatedResources().getLast().getVisitedResources(); 
     56                                        for(String res: visitedResource){ 
     57                                                if(res.contains(context)){ 
     58                                                        taskList.add(task); 
     59                                                        break; 
     60                                                } 
     61                                        } 
     62                                        if(task.getSchedulerName().contains(context)) { 
    5963                                                taskList.add(task); 
    6064                                        } 
Note: See TracChangeset for help on using the changeset viewer.