blob: 7315f1c33cdc62b850a19a364b04a00d012936c6 [file] [log] [blame]
Jonathan Hart4b5bbb52014-02-06 10:09:31 -08001package net.onrc.onos.ofcontroller.networkgraph;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.HashMap;
6import java.util.List;
7import java.util.Map;
8
9import net.floodlightcontroller.core.module.FloodlightModuleContext;
10import net.floodlightcontroller.core.module.FloodlightModuleException;
11import net.floodlightcontroller.core.module.IFloodlightModule;
12import net.floodlightcontroller.core.module.IFloodlightService;
Jonathan Hart47016712014-02-07 12:41:35 -080013import net.floodlightcontroller.restserver.IRestApiService;
14import net.onrc.onos.ofcontroller.networkgraph.web.NetworkGraphWebRoutable;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080015
16public class NetworkGraphModule implements IFloodlightModule, INetworkGraphService {
17
18 // This is initialized as a module for now
19 // private RCNetworkGraphPublisher eventListener;
20
21 private NetworkGraphImpl networkGraph;
Jonathan Hart22eb9882014-02-11 15:52:59 -080022 //private NetworkGraphDatastore southboundNetworkGraph;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080023
Jonathan Hart47016712014-02-07 12:41:35 -080024 private IRestApiService restApi;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080025
26 @Override
27 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
28 List<Class<? extends IFloodlightService>> services =
29 new ArrayList<Class<? extends IFloodlightService>>();
30 services.add(INetworkGraphService.class);
31 return services;
32 }
33
34 @Override
35 public Map<Class<? extends IFloodlightService>, IFloodlightService>
36 getServiceImpls() {
37 Map<Class<? extends IFloodlightService>, IFloodlightService> impls =
38 new HashMap<Class<? extends IFloodlightService>, IFloodlightService>();
39 impls.put(INetworkGraphService.class, this);
40 return impls;
41 }
42
43 @Override
44 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
Jonathan Hart47016712014-02-07 12:41:35 -080045 List<Class<? extends IFloodlightService>> dependencies =
46 new ArrayList<Class<? extends IFloodlightService>>();
47 dependencies.add(IRestApiService.class);
48 return dependencies;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080049 }
50
51 @Override
52 public void init(FloodlightModuleContext context)
53 throws FloodlightModuleException {
Jonathan Hart47016712014-02-07 12:41:35 -080054 restApi = context.getServiceImpl(IRestApiService.class);
55
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080056 networkGraph = new NetworkGraphImpl();
Jonathan Hart22eb9882014-02-11 15:52:59 -080057 //southboundNetworkGraph = new NetworkGraphDatastore(networkGraph);
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080058 }
59
60 @Override
61 public void startUp(FloodlightModuleContext context) {
Jonathan Hart47016712014-02-07 12:41:35 -080062 restApi.addRestletRoutable(new NetworkGraphWebRoutable());
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080063 }
64
65 @Override
66 public NetworkGraph getNetworkGraph() {
67 return networkGraph;
68 }
69
70 @Override
Jonathan Hart22eb9882014-02-11 15:52:59 -080071 public NetworkGraphDiscoveryInterface getNetworkGraphDiscoveryInterface() {
72 return networkGraph;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080073 }
74
75}