Changeset 1440 for DCWoRMS/branches/coolemall/src/schedframe/resources
- Timestamp:
- 09/18/14 17:37:54 (11 years ago)
- Location:
- DCWoRMS/branches/coolemall/src/schedframe/resources/computing
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java
r1432 r1440 268 268 } 269 269 } 270 271 270 } 272 271 … … 290 289 break; 291 290 } 291 case POWER_STATE_CHANGED: { 292 scheduler.sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.RESOURCE_POWER_STATE_CHANGED, src); 293 break; 294 } 292 295 } 293 296 -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java
r1423 r1440 15 15 import schedframe.resources.computing.profiles.energy.power.PowerUsage; 16 16 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName; 17 import schedframe.resources.computing.profiles.energy.power.Transition; 18 import simulator.DataCenterWorkloadSimulator; 17 19 18 20 public class ComputingResourcePowerInterface implements PowerInterface{ … … 28 30 } 29 31 30 public boolean setPowerState(PowerStateName state) {31 if(!supportPowerState( state))32 public boolean setPowerState(PowerStateName newState) { 33 if(!supportPowerState(newState)) 32 34 return false; 33 35 34 if(state != currentPowerState){ 35 currentPowerState = state; 36 if(newState != currentPowerState){ 36 37 37 for(ComputingResource child:resource.getChildren()){ 38 if(child.getPowerInterface().supportPowerState(state)){ 39 child.getPowerInterface().setPowerState(state); 38 Transition t = getTransition(currentPowerState, newState); 39 if(t == null){ 40 currentPowerState = newState; 41 } else{ 42 if(t.getTime() <= 0 ){ 43 currentPowerState = newState; 44 } else { 45 currentPowerState = t.getName(); 46 DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), t.getTime(), new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, newState, resource.getFullName())); 40 47 } 41 48 } 42 49 43 if(state == StandardPowerStateName.OFF){ 50 for(ComputingResource child:resource.getChildren()){ 51 if(child.getPowerInterface() != null){ 52 child.getPowerInterface().setPowerState(currentPowerState); 53 } 54 } 55 56 if(currentPowerState == StandardPowerStateName.OFF || currentPowerState == StandardPowerStateName.POWEROFF || currentPowerState == StandardPowerStateName.BOOT){ 44 57 resource.setStatus(ResourceStatus.UNAVAILABLE); 45 58 } 46 else if( state == StandardPowerStateName.ON){59 else if(currentPowerState == StandardPowerStateName.ON){ 47 60 resource.setStatus(ResourceStatus.FREE); 48 61 } … … 74 87 } 75 88 return false; 76 77 89 } 78 90 … … 114 126 } 115 127 128 protected Transition getTransition(PowerStateName from, PowerStateName to){ 129 List<PowerState> availablePowerStates = getSupportedPowerStates(); 130 Transition transition = null; 131 for(PowerState ps : availablePowerStates){ 132 if(ps.getName().getLabel().equals(from.getLabel())){ 133 List<Transition> transitions = ps.getTransitions(); 134 for(Transition t: transitions){ 135 if(t.getTo().getLabel().equals(to.getLabel())){ 136 transition = t; 137 break; 138 } 139 } 140 } 141 } 142 return transition; 143 } 116 144 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/NodePowerInterface.java
r1431 r1440 2 2 3 3 4 import java.util.List;5 6 7 import schedframe.resources.ResourceStatus;8 4 import schedframe.resources.computing.ComputingResource; 9 import schedframe.resources.computing.Node;10 import schedframe.resources.computing.profiles.energy.ResourceEvent;11 import schedframe.resources.computing.profiles.energy.ResourceEventType;12 5 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 13 import schedframe.resources.computing.profiles.energy.power.PowerState;14 import schedframe.resources.computing.profiles.energy.power.PowerStateName;15 6 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName; 16 import schedframe.resources.computing.profiles.energy.power.Transition;17 import simulator.DataCenterWorkloadSimulator;18 7 19 8 public class NodePowerInterface extends ComputingResourcePowerInterface{ … … 24 13 } 25 14 26 public boolean setPowerState(PowerStateName state){27 if(!supportPowerState(state))28 return false;29 if(state != currentPowerState){30 currentPowerState = state;31 32 Node node = (Node) resource;33 for(ComputingResource child: node.getProcessors()){34 if(child.getPowerInterface() != null){35 child.getPowerInterface().setPowerState(state);36 }37 }38 39 if(state == StandardPowerStateName.OFF || state == StandardPowerStateName.POWEROFF || state == StandardPowerStateName.BOOT){40 node.setStatus(ResourceStatus.UNAVAILABLE);41 }42 else if(state == StandardPowerStateName.ON ){43 node.setStatus(ResourceStatus.FREE);44 }45 46 node.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, node.getFullName()));47 48 //node.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, computingNode.getName()));49 //ResourceController.traceResource(new DateTime().getMillis(), resource.getFullName(), "POWER_STATE_CHANGED", state.getName());50 }51 return true;52 }53 54 15 public void turnOn(){ 55 /*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.ON);56 setPowerState(StandardPowerStateName.BOOT);57 DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.ON, resource.getFullName()));58 */59 16 setPowerState(StandardPowerStateName.ON); 60 17 } 61 18 62 19 public void turnOff(){ 63 /*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.OFF);64 setPowerState(StandardPowerStateName.POWEROFF);65 DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.OFF, resource.getFullName()));*/66 20 setPowerState(StandardPowerStateName.OFF); 67 21 } 68 22 69 private double getTransitionTime(PowerStateName from, PowerStateName to){70 List<PowerState> availablePowerStates = getSupportedPowerStates();71 double time = 0;72 for(PowerState ps : availablePowerStates){73 if(ps.getName().getLabel().equals(from.getLabel())){74 List<Transition> transitions = ps.getTransitions();75 for(Transition t: transitions){76 if(t.getTo().getLabel().equals(to)){77 time = t.getTime();78 }79 }80 }81 }82 return time;83 }84 85 86 23 }
Note: See TracChangeset
for help on using the changeset viewer.