Committed by
Gerrit Code Review
Making NetconfDeviceProvider try to get actual device description from device in…
… checkAndUpdateDevice() - Getting device description only if controller is currently Master for device Change-Id: I870b2f19fd5e09e198e2c73bcabf9869504f2c94
Showing
1 changed file
with
15 additions
and
2 deletions
| ... | @@ -347,9 +347,23 @@ public class NetconfDeviceProvider extends AbstractProvider | ... | @@ -347,9 +347,23 @@ public class NetconfDeviceProvider extends AbstractProvider |
| 347 | } else { | 347 | } else { |
| 348 | boolean isReachable = isReachable(deviceId); | 348 | boolean isReachable = isReachable(deviceId); |
| 349 | if (isReachable && !deviceService.isAvailable(deviceId)) { | 349 | if (isReachable && !deviceService.isAvailable(deviceId)) { |
| 350 | + Device device = deviceService.getDevice(deviceId); | ||
| 351 | + DeviceDescription updatedDeviceDescription = null; | ||
| 352 | + if (device.is(DeviceDescriptionDiscovery.class)) { | ||
| 353 | + if (mastershipService.isLocalMaster(deviceId)) { | ||
| 354 | + DeviceDescriptionDiscovery deviceDescriptionDiscovery = | ||
| 355 | + device.as(DeviceDescriptionDiscovery.class); | ||
| 356 | + updatedDeviceDescription = deviceDescriptionDiscovery.discoverDeviceDetails(); | ||
| 357 | + } | ||
| 358 | + } else { | ||
| 359 | + log.warn("No DeviceDescriptionDiscovery behaviour for device {}", deviceId); | ||
| 360 | + } | ||
| 361 | + if (updatedDeviceDescription == null) { | ||
| 362 | + updatedDeviceDescription = deviceDescription; | ||
| 363 | + } | ||
| 350 | providerService.deviceConnected( | 364 | providerService.deviceConnected( |
| 351 | deviceId, new DefaultDeviceDescription( | 365 | deviceId, new DefaultDeviceDescription( |
| 352 | - deviceDescription, true, deviceDescription.annotations())); | 366 | + updatedDeviceDescription, true, updatedDeviceDescription.annotations())); |
| 353 | } else if (!isReachable && deviceService.isAvailable(deviceId)) { | 367 | } else if (!isReachable && deviceService.isAvailable(deviceId)) { |
| 354 | providerService.deviceDisconnected(deviceId); | 368 | providerService.deviceDisconnected(deviceId); |
| 355 | } | 369 | } |
| ... | @@ -422,7 +436,6 @@ public class NetconfDeviceProvider extends AbstractProvider | ... | @@ -422,7 +436,6 @@ public class NetconfDeviceProvider extends AbstractProvider |
| 422 | device.as(DeviceDescriptionDiscovery.class); | 436 | device.as(DeviceDescriptionDiscovery.class); |
| 423 | providerService.updatePorts(deviceId, | 437 | providerService.updatePorts(deviceId, |
| 424 | deviceDescriptionDiscovery.discoverPortDetails()); | 438 | deviceDescriptionDiscovery.discoverPortDetails()); |
| 425 | - | ||
| 426 | } else { | 439 | } else { |
| 427 | log.warn("No portGetter behaviour for device {}", deviceId); | 440 | log.warn("No portGetter behaviour for device {}", deviceId); |
| 428 | } | 441 | } | ... | ... |
-
Please register or login to post a comment