Fix registering config listener in SingleSwitchFibInstaller
Change-Id: I559d89063236c81fa63530aa5db61f4b68006287
Showing
2 changed files
with
10 additions
and
8 deletions
| ... | @@ -122,8 +122,6 @@ public class SingleSwitchFibInstaller { | ... | @@ -122,8 +122,6 @@ public class SingleSwitchFibInstaller { |
| 122 | label = "Install a /32 route to each next hop") | 122 | label = "Install a /32 route to each next hop") |
| 123 | private boolean routeToNextHop = false; | 123 | private boolean routeToNextHop = false; |
| 124 | 124 | ||
| 125 | - private InternalDeviceListener deviceListener; | ||
| 126 | - | ||
| 127 | // Device id of data-plane switch - should be learned from config | 125 | // Device id of data-plane switch - should be learned from config |
| 128 | private DeviceId deviceId; | 126 | private DeviceId deviceId; |
| 129 | 127 | ||
| ... | @@ -143,9 +141,10 @@ public class SingleSwitchFibInstaller { | ... | @@ -143,9 +141,10 @@ public class SingleSwitchFibInstaller { |
| 143 | // Mapping from next hop IP to next hop object containing group info | 141 | // Mapping from next hop IP to next hop object containing group info |
| 144 | private final Map<IpAddress, Integer> nextHops = Maps.newHashMap(); | 142 | private final Map<IpAddress, Integer> nextHops = Maps.newHashMap(); |
| 145 | 143 | ||
| 146 | - //interface object for event | 144 | + private final InternalDeviceListener deviceListener = new InternalDeviceListener(); |
| 147 | - private InternalInterfaceListener internalInterfaceList = new InternalInterfaceListener(); | 145 | + private final InternalInterfaceListener internalInterfaceList = new InternalInterfaceListener(); |
| 148 | - private InternalRouteListener routeListener = new InternalRouteListener(); | 146 | + private final InternalRouteListener routeListener = new InternalRouteListener(); |
| 147 | + private final InternalNetworkConfigListener configListener = new InternalNetworkConfigListener(); | ||
| 149 | 148 | ||
| 150 | private ConfigFactory<ApplicationId, McastConfig> mcastConfigFactory = | 149 | private ConfigFactory<ApplicationId, McastConfig> mcastConfigFactory = |
| 151 | new ConfigFactory<ApplicationId, McastConfig>(SubjectFactories.APP_SUBJECT_FACTORY, | 150 | new ConfigFactory<ApplicationId, McastConfig>(SubjectFactories.APP_SUBJECT_FACTORY, |
| ... | @@ -166,9 +165,8 @@ public class SingleSwitchFibInstaller { | ... | @@ -166,9 +165,8 @@ public class SingleSwitchFibInstaller { |
| 166 | 165 | ||
| 167 | networkConfigRegistry.registerConfigFactory(mcastConfigFactory); | 166 | networkConfigRegistry.registerConfigFactory(mcastConfigFactory); |
| 168 | 167 | ||
| 169 | - deviceListener = new InternalDeviceListener(); | 168 | + networkConfigService.addListener(configListener); |
| 170 | deviceService.addListener(deviceListener); | 169 | deviceService.addListener(deviceListener); |
| 171 | - | ||
| 172 | interfaceService.addListener(internalInterfaceList); | 170 | interfaceService.addListener(internalInterfaceList); |
| 173 | 171 | ||
| 174 | updateConfig(); | 172 | updateConfig(); |
| ... | @@ -181,6 +179,7 @@ public class SingleSwitchFibInstaller { | ... | @@ -181,6 +179,7 @@ public class SingleSwitchFibInstaller { |
| 181 | routeService.removeListener(routeListener); | 179 | routeService.removeListener(routeListener); |
| 182 | deviceService.removeListener(deviceListener); | 180 | deviceService.removeListener(deviceListener); |
| 183 | interfaceService.removeListener(internalInterfaceList); | 181 | interfaceService.removeListener(internalInterfaceList); |
| 182 | + networkConfigService.removeListener(configListener); | ||
| 184 | 183 | ||
| 185 | //processIntfFilters(false, configService.getInterfaces()); //TODO necessary? | 184 | //processIntfFilters(false, configService.getInterfaces()); //TODO necessary? |
| 186 | 185 | ||
| ... | @@ -532,7 +531,7 @@ public class SingleSwitchFibInstaller { | ... | @@ -532,7 +531,7 @@ public class SingleSwitchFibInstaller { |
| 532 | private class InternalNetworkConfigListener implements NetworkConfigListener { | 531 | private class InternalNetworkConfigListener implements NetworkConfigListener { |
| 533 | @Override | 532 | @Override |
| 534 | public void event(NetworkConfigEvent event) { | 533 | public void event(NetworkConfigEvent event) { |
| 535 | - if (event.subject().equals(RoutingService.ROUTER_CONFIG_CLASS)) { | 534 | + if (event.configClass().equals(RoutingService.ROUTER_CONFIG_CLASS)) { |
| 536 | switch (event.type()) { | 535 | switch (event.type()) { |
| 537 | case CONFIG_ADDED: | 536 | case CONFIG_ADDED: |
| 538 | case CONFIG_UPDATED: | 537 | case CONFIG_UPDATED: | ... | ... |
| ... | @@ -40,6 +40,7 @@ import org.onosproject.incubator.net.routing.RouteServiceAdapter; | ... | @@ -40,6 +40,7 @@ import org.onosproject.incubator.net.routing.RouteServiceAdapter; |
| 40 | import org.onosproject.net.ConnectPoint; | 40 | import org.onosproject.net.ConnectPoint; |
| 41 | import org.onosproject.net.DeviceId; | 41 | import org.onosproject.net.DeviceId; |
| 42 | import org.onosproject.net.PortNumber; | 42 | import org.onosproject.net.PortNumber; |
| 43 | +import org.onosproject.net.config.NetworkConfigListener; | ||
| 43 | import org.onosproject.net.config.NetworkConfigRegistry; | 44 | import org.onosproject.net.config.NetworkConfigRegistry; |
| 44 | import org.onosproject.net.config.NetworkConfigService; | 45 | import org.onosproject.net.config.NetworkConfigService; |
| 45 | import org.onosproject.net.device.DeviceListener; | 46 | import org.onosproject.net.device.DeviceListener; |
| ... | @@ -130,6 +131,8 @@ public class SingleSwitchFibInstallerTest { | ... | @@ -130,6 +131,8 @@ public class SingleSwitchFibInstallerTest { |
| 130 | interfaceService = createMock(InterfaceService.class); | 131 | interfaceService = createMock(InterfaceService.class); |
| 131 | 132 | ||
| 132 | networkConfigService = createMock(NetworkConfigService.class); | 133 | networkConfigService = createMock(NetworkConfigService.class); |
| 134 | + networkConfigService.addListener(anyObject(NetworkConfigListener.class)); | ||
| 135 | + expectLastCall().anyTimes(); | ||
| 133 | networkConfigRegistry = createMock(NetworkConfigRegistry.class); | 136 | networkConfigRegistry = createMock(NetworkConfigRegistry.class); |
| 134 | flowObjectiveService = createMock(FlowObjectiveService.class); | 137 | flowObjectiveService = createMock(FlowObjectiveService.class); |
| 135 | deviceService = new TestDeviceService(); | 138 | deviceService = new TestDeviceService(); | ... | ... |
-
Please register or login to post a comment