[ONOS-7509] deviceDisconnected method in Device Manager uses ports description information
Change-Id: Id32fc7f0d35382158e2d06fa71cc6d75b856018b
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
index 7f593e7..818f0583 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
@@ -660,6 +660,7 @@
final Port oldPort = ports.get(number);
final Port newPort;
+ boolean isRemoved = portDescription.isRemoved();
final Timestamped<PortDescription> existingPortDesc = descs.getPortDesc(number);
@@ -675,9 +676,13 @@
continue;
}
- events.add(oldPort == null ?
- createPort(device, newPort, ports) :
- updatePort(device, oldPort, newPort, ports));
+ if (isRemoved && oldPort != null) {
+ events.add(removePort(deviceId, oldPort.number()));
+ } else if (!isRemoved) {
+ events.add(oldPort == null ?
+ createPort(device, newPort, ports) :
+ updatePort(device, oldPort, newPort, ports));
+ }
}
events.addAll(pruneOldPorts(device, ports, processed));