source: DCWoRMS/trunk/src/schedframe/resources/computing/ResourceFactory.java @ 789

Revision 789, 3.0 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.computing;
2
3import schedframe.resources.StandardResourceType;
4import schedframe.resources.UserResourceType;
5import schedframe.resources.computing.description.ComputingResourceDescription;
6import schedframe.resources.computing.recs.ComputeBox1;
7import schedframe.resources.computing.recs.Node;
8import schedframe.resources.computing.recs.NodeGroup;
9import schedframe.scheduling.Scheduler;
10import schedframe.scheduling.manager.resources.ManagedResources;
11import schedframe.scheduling.plugin.SchedulingPlugin;
12import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin;
13import schedframe.scheduling.policy.AbstractManagementSystem;
14import schedframe.scheduling.policy.global.GridBroker;
15import schedframe.scheduling.policy.local.LocalManagementSystem;
16import schedframe.scheduling.queue.TaskQueueList;
17import simulator.DCWormsConstants;
18
19
20public class ResourceFactory {
21
22        public static ComputingResource createResource(ComputingResourceDescription resDesc){
23               
24                if (resDesc.getType().equals(StandardResourceType.DataCenter))
25                        return new DataCenter(resDesc);
26                else if (resDesc.getType().equals(StandardResourceType.Rack))
27                        return new Rack(resDesc);
28                else if (resDesc.getType().equals(StandardResourceType.ComputingNode))
29                        return new ComputingNode(resDesc);
30                else if (resDesc.getType().equals(StandardResourceType.Processor))
31                        return new Processor(resDesc);
32                else if (resDesc.getType().equals(StandardResourceType.Core))
33                        return new Core(resDesc);
34                else if (resDesc.getType().getName().equals(new UserResourceType("ComputeBox1").getName()))
35                        return new ComputeBox1(resDesc);
36                else if (resDesc.getType().getName().equals(new UserResourceType("NodeGroup").getName()))
37                        return new NodeGroup(resDesc);
38                else if (resDesc.getType().getName().equals(new UserResourceType("Node").getName()))
39                        return new Node(resDesc);
40                else
41                        return new ComputingResource(resDesc);
42       
43                /*switch(resDesc.getType()){
44                        case Grid: return new Grid(resDesc);
45                        case DataCenter: return new DataCenter(resDesc);
46                        case ComputingNode: return new ComputingNode(resDesc);
47                        case Processor: return new Processor(resDesc);
48                default:
49                        return new ComputingResource(resDesc);
50                }*/
51        }
52
53        public static Scheduler createScheduler(StandardResourceType type, String id, SchedulingPlugin schedulingPlugin, ExecutionTimeEstimationPlugin execTimeEstimationPlugin, TaskQueueList queues, ManagedResources managedResources) throws Exception{
54                AbstractManagementSystem ms;
55                switch(type){
56                        case GS: {
57                                ms = new GridBroker("grid",
58                                                schedulingPlugin, execTimeEstimationPlugin, queues);
59                                return new Scheduler(ms, type, managedResources);
60                        }
61                        case LS: {
62                                ms = new LocalManagementSystem(id, DCWormsConstants.MANAGEMENT_SYSTEM,
63                                                schedulingPlugin, execTimeEstimationPlugin, queues);
64                                return new Scheduler(ms, type, managedResources);
65                        }
66
67                default:{
68                                ms = new LocalManagementSystem(id, DCWormsConstants.MANAGEMENT_SYSTEM,
69                                                schedulingPlugin, execTimeEstimationPlugin, queues);
70                                return new Scheduler(ms, type, managedResources);
71                        }
72                }
73        }
74}
75
Note: See TracBrowser for help on using the repository browser.