blob: 532e2933a56fed6299ef41933262fbb8c802921d [file] [log] [blame]
Pankaj Berdeda809572013-02-22 15:31:20 -08001package net.floodlightcontroller.onoslistener;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.Map;
6
7import org.slf4j.Logger;
8import org.slf4j.LoggerFactory;
9
10import net.floodlightcontroller.core.IFloodlightProviderService;
11import net.floodlightcontroller.core.IOFSwitch;
12import net.floodlightcontroller.core.IOFSwitchListener;
13import net.floodlightcontroller.core.ISwitchStorage;
14import net.floodlightcontroller.core.internal.SwitchStorageImpl;
15import net.floodlightcontroller.core.module.FloodlightModuleContext;
16import net.floodlightcontroller.core.module.FloodlightModuleException;
17import net.floodlightcontroller.core.module.IFloodlightModule;
18import net.floodlightcontroller.core.module.IFloodlightService;
19import net.floodlightcontroller.devicemanager.IDevice;
20import net.floodlightcontroller.devicemanager.IDeviceListener;
21import net.floodlightcontroller.devicemanager.IDeviceService;
22import net.floodlightcontroller.devicemanager.IDeviceStorage;
23import net.floodlightcontroller.devicemanager.internal.DeviceStorageImpl;
24import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryListener;
25
26public class OnosPublisher implements IDeviceListener, IOFSwitchListener,
27 ILinkDiscoveryListener, IFloodlightModule {
28
29 protected IDeviceStorage devStore;
30 protected ISwitchStorage swStore;
31 protected static Logger log;
32 protected IDeviceService deviceService;
33
34 protected static final String DBConfigFile = "dbconf";
35
36 @Override
37 public void linkDiscoveryUpdate(LDUpdate update) {
38 // TODO Auto-generated method stub
39
40 }
41
42 @Override
43 public void addedSwitch(IOFSwitch sw) {
44 // TODO Auto-generated method stub
45
46 }
47
48 @Override
49 public void removedSwitch(IOFSwitch sw) {
50 // TODO Auto-generated method stub
51
52 }
53
54 @Override
55 public void switchPortChanged(Long switchId) {
56 // TODO Auto-generated method stub
57
58 }
59
60 @Override
61 public String getName() {
62 return "OnosPublisher";
63 }
64
65 @Override
66 public void deviceAdded(IDevice device) {
67 // TODO Auto-generated method stub
68 log.debug("{}:deviceAdded(): Adding device {}",this.getClass(),device.getMACAddressString());
69 devStore.addDevice(device);
70 }
71
72 @Override
73 public void deviceRemoved(IDevice device) {
74 // TODO Auto-generated method stub
75
76 }
77
78 @Override
79 public void deviceMoved(IDevice device) {
80 // TODO Auto-generated method stub
81 devStore.changeDeviceAttachments(device);
82
83 }
84
85 @Override
86 public void deviceIPV4AddrChanged(IDevice device) {
87 // TODO Auto-generated method stub
88 devStore.changeDeviceIPv4Address(device);
89
90 }
91
92 @Override
93 public void deviceVlanChanged(IDevice device) {
94 // TODO Auto-generated method stub
95 }
96
97
98 @Override
99 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
100 // TODO Auto-generated method stub
101 return null;
102 }
103
104 @Override
105 public Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls() {
106 // TODO Auto-generated method stub
107 return null;
108 }
109
110 @Override
111 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
112 Collection<Class<? extends IFloodlightService>> l =
113 new ArrayList<Class<? extends IFloodlightService>>();
114 l.add(IFloodlightProviderService.class);
115 l.add(IDeviceService.class);
116 return l;
117 }
118
119 @Override
120 public void init(FloodlightModuleContext context)
121 throws FloodlightModuleException {
122 // TODO Auto-generated method stub
123 Map<String, String> configMap = context.getConfigParams(this);
124 String conf = configMap.get(DBConfigFile);
125
126 log = LoggerFactory.getLogger(OnosPublisher.class);
127 deviceService = context.getServiceImpl(IDeviceService.class);
128
129 swStore = new SwitchStorageImpl();
130 swStore.init(conf);
131 devStore = new DeviceStorageImpl();
132 devStore.init(conf);
133
134 log.debug("Initializing OnosPublisher module with {}", conf);
135
136 }
137
138 @Override
139 public void startUp(FloodlightModuleContext context) {
140 // TODO Auto-generated method stub
141 deviceService.addListener(this);
142 }
143
144}