blob: 0824f63c483e909585884a4b52d82bf7cb5ebd1e [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 Hartfa01c242014-02-11 10:03:03 -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 Hartfa01c242014-02-11 10:03:03 -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 Hartfa01c242014-02-11 10:03:03 -080071 public NetworkGraphDatastore getSouthboundNetworkGraph() {
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080072 return southboundNetworkGraph;
73 }
74
75}