Ignore:
Timestamp:
09/18/14 17:37:54 (11 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java

    r1430 r1440  
    9595 
    9696                int tag = ev.get_tag(); 
     97                SchedulingEvent event; 
     98                SchedulingPlanInterface<?> decision; 
    9799                switch (tag) { 
    98  
    99100                case DCWormsTags.TIMER: 
    100                         if (pluginSupportsEvent(tag)) { 
    101                                 SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TIMER); 
    102                                 SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event,  
    103                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    104                                 executeSchedulingPlan(decision); 
    105                         } 
     101 
     102                        event = new SchedulingEvent(SchedulingEventType.TIMER); 
     103                        decision =  schedulingPlugin.schedule(event,  
     104                                        queues, jobRegistry, getResourceManager(), moduleList); 
     105                        executeSchedulingPlan(decision); 
     106 
    106107                        sendTimerEvent(); 
    107108                        break; 
     
    111112                        try { 
    112113                                execTask.setStatus(DCWormsTags.READY); 
    113                                 if (pluginSupportsEvent(tag)) { 
    114                                         SchedulingEvent event = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId()); 
    115                                         SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
    116                                                         queues, jobRegistry, getResourceManager(), moduleList); 
    117                                         executeSchedulingPlan(decision); 
    118                                 } 
     114 
     115                                event = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId()); 
     116                                decision =  schedulingPlugin.schedule(event, 
     117                                                queues, jobRegistry, getResourceManager(), moduleList); 
     118                                executeSchedulingPlan(decision); 
     119 
    119120                        } catch (Exception e) { 
    120121                                e.printStackTrace(); 
     
    128129                                finalizeExecutable(execTask); 
    129130                                sendFinishedWorkloadUnit(execTask); 
    130                                 if (pluginSupportsEvent(tag)) { 
    131                                         SchedulingEvent event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId()); 
    132                                         SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    133                                                         queues, jobRegistry, getResourceManager(), moduleList); 
    134                                         executeSchedulingPlan(decision); 
    135                                 } 
     131                                event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId()); 
     132                                decision = schedulingPlugin.schedule(event, 
     133                                                queues, jobRegistry, getResourceManager(), moduleList); 
     134                                executeSchedulingPlan(decision); 
    136135                        } 
    137136 
     
    155154                case DCWormsTags.TASK_REQUESTED_TIME_EXPIRED: 
    156155                        execTask = (Executable) ev.get_data(); 
    157                         if (pluginSupportsEvent(tag)) { 
    158                                 SchedulingEvent event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId()); 
    159                                 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    160                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    161                                 executeSchedulingPlan(decision); 
    162                         } 
     156                        event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId()); 
     157                        decision = schedulingPlugin.schedule(event, 
     158                                        queues, jobRegistry, getResourceManager(), moduleList); 
     159                        executeSchedulingPlan(decision); 
    163160                        break; 
    164161                         
     
    167164                        execTask = jobRegistry.getTask(ids[0], ids[1]); 
    168165                        pauseTask(execTask); 
    169                         if (pluginSupportsEvent(tag)) { 
    170                                 SchedulingEvent event = new TaskPausedEvent(ids[0], ids[1]); 
    171                                 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    172                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    173                                 executeSchedulingPlan(decision); 
    174                         } 
    175                 } 
    176                 break; 
     166         
     167                        event = new TaskPausedEvent(ids[0], ids[1]); 
     168                        decision = schedulingPlugin.schedule(event, 
     169                                        queues, jobRegistry, getResourceManager(), moduleList); 
     170                        executeSchedulingPlan(decision); 
     171                        } 
     172                        break; 
    177173                 
    178174                case DCWormsTags.TASK_RESUME:{ 
     
    180176                        execTask = jobRegistry.getTask(ids[0], ids[1]); 
    181177                        resumeTask(execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), true); 
    182                         if (pluginSupportsEvent(tag)) { 
    183                                 SchedulingEvent event = new TaskResumedEvent(ids[0], ids[1]); 
    184                                 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    185                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    186                                 executeSchedulingPlan(decision); 
    187                         } 
    188                 } 
    189                 break; 
     178                        event = new TaskResumedEvent(ids[0], ids[1]); 
     179                        decision = schedulingPlugin.schedule(event, 
     180                                        queues, jobRegistry, getResourceManager(), moduleList); 
     181                        executeSchedulingPlan(decision); 
     182                        } 
     183                        break; 
    190184                 
    191185                case DCWormsTags.TASK_MIGRATE:{ 
     
    195189                                        (String)data[1]), execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), (Map<ResourceUnitName, ResourceUnit>)data[2]); 
    196190                        scheduler.sendInternal(migrationTime, DCWormsTags.TASK_MOVE, data); 
    197                 } 
    198                 break; 
     191                        } 
     192                        break; 
    199193                 
    200194                case DCWormsTags.TASK_MOVE:{ 
     
    202196                        execTask = jobRegistry.getTask((String)data[0], (String)data[1]); 
    203197                        moveTask(execTask, (Map<ResourceUnitName, ResourceUnit>)data[2]); 
    204                         if (pluginSupportsEvent(tag)) { 
    205                                 SchedulingEvent event = new StartTaskExecutionEvent((String)data[0], (String)data[1]); 
    206                                 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    207                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    208                                 executeSchedulingPlan(decision); 
    209                         } 
    210                 } 
    211                 break; 
    212                          
     198 
     199                        event = new StartTaskExecutionEvent((String)data[0], (String)data[1]); 
     200                        decision = schedulingPlugin.schedule(event, 
     201                                        queues, jobRegistry, getResourceManager(), moduleList); 
     202                        executeSchedulingPlan(decision); 
     203                        } 
     204                        break; 
     205                         
     206                case DCWormsTags.RESOURCE_POWER_STATE_CHANGED: 
     207                        event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_STATE_CHANGED); 
     208                        decision =  schedulingPlugin.schedule(event,  
     209                                        queues, jobRegistry, getResourceManager(), moduleList); 
     210                        executeSchedulingPlan(decision); 
     211                        break; 
     212 
     213                case DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED: 
     214                        event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_LIMIT_EXCEEDED); 
     215                        String source; 
     216                        try{ 
     217                                source = ev.get_data().toString(); 
     218                        } catch(Exception e){ 
     219                                source = null; 
     220                        } 
     221                        event.setSource(source); 
     222                        decision = schedulingPlugin.schedule(event, 
     223                                        queues, jobRegistry, getResourceManager(), moduleList); 
     224                        executeSchedulingPlan(decision); 
     225                        break; 
    213226                case DCWormsTags.TASK_EXECUTION_CHANGED: 
    214227                        execTask = (ExecTask) ev.get_data(); 
    215228                        updateTaskExecutionPhase(execTask); 
    216229                        break; 
    217  
    218230                case DCWormsTags.UPDATE_PROCESSING: 
    219231                        updateProcessingTimes(); 
    220232                        break; 
    221233                         
    222                 case DCWormsTags.POWER_LIMIT_EXCEEDED: 
    223                         if (pluginSupportsEvent(tag)) { 
    224                                 SchedulingEvent event = new SchedulingEvent(SchedulingEventType.POWER_LIMIT_EXCEEDED); 
    225                                 String source; 
    226                                 try{ 
    227                                         source = ev.get_data().toString(); 
    228                                 } catch(Exception e){ 
    229                                         source = null; 
    230                                 } 
    231                                 event.setSource(source); 
    232                                 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 
    233                                                 queues, jobRegistry, getResourceManager(), moduleList); 
    234                                 executeSchedulingPlan(decision); 
    235                         } 
    236                         break; 
    237234                default:                 
    238                          
    239235                        break; 
    240236                } 
     
    301297         
    302298        public void notifyReturnedWorkloadUnit(WorkloadUnit wu) { 
    303                 if (pluginSupportsEvent(DCWormsTags.TASK_EXECUTION_FINISHED)) { 
    304                         SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TASK_FINISHED); 
    305                         SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
    306                                         queues, jobRegistry, getResourceManager(), moduleList); 
    307                         executeSchedulingPlan(decision); 
    308                 } 
    309                 //if(scheduler.getParent() != null){ 
    310                         sendFinishedWorkloadUnit(wu); 
    311                 //} 
     299 
     300                SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TASK_FINISHED); 
     301                SchedulingPlanInterface<?> decision =  schedulingPlugin.schedule(event, 
     302                                queues, jobRegistry, getResourceManager(), moduleList); 
     303                executeSchedulingPlan(decision); 
     304 
     305        //if(scheduler.getParent() != null){ 
     306                sendFinishedWorkloadUnit(wu); 
     307        //} 
    312308        } 
    313309         
Note: See TracChangeset for help on using the changeset viewer.