Support TE-link-remove and TE-node-remove event notification
Change-Id: Ia909ada3b69c2ef2dba4ffdb4c0e687ffb482974
diff --git a/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java b/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
index f75027d..54d797d 100644
--- a/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
+++ b/providers/ietfte/topology/src/main/java/org/onosproject/provider/te/topology/TeTopologyRestconfProvider.java
@@ -58,6 +58,8 @@
.IetfTeTopologyEvent;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeLinkEvent;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeNodeEvent;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes
+ .tetopologyeventtype.TeTopologyEventTypeEnum;
import org.onosproject.yms.ych.YangCodecHandler;
import org.onosproject.yms.ych.YangProtocolEncodingFormat;
import org.onosproject.yms.ych.YangResourceIdentifierType;
@@ -354,9 +356,16 @@
NetworkLinkKey linkKey = LinkConverter.yangLinkEvent2NetworkLinkKey(
teLinkEvent);
- NetworkLink networkLink = LinkConverter.yangLinkEvent2NetworkLink(
- teLinkEvent,
- teTopologyService);
+ TeTopologyEventTypeEnum teLinkEventType = teLinkEvent.eventType()
+ .enumeration();
+
+ if (teLinkEventType == TeTopologyEventTypeEnum.REMOVE) {
+ topologyProviderService.linkRemoved(linkKey);
+ return;
+ }
+
+ NetworkLink networkLink = LinkConverter.yangLinkEvent2NetworkLink(teLinkEvent,
+ teTopologyService);
if (networkLink == null) {
log.error("ERROR: yangLinkEvent2NetworkLink returns null");
@@ -402,6 +411,14 @@
NetworkNodeKey nodeKey = NodeConverter.yangNodeEvent2NetworkNodeKey(
teNodeEvent);
+ TeTopologyEventTypeEnum teNodeEventType = teNodeEvent.eventType()
+ .enumeration();
+
+ if (teNodeEventType == TeTopologyEventTypeEnum.REMOVE) {
+ topologyProviderService.nodeRemoved(nodeKey);
+ return;
+ }
+
NetworkNode networkNode = NodeConverter.yangNodeEvent2NetworkNode(
teNodeEvent,
teTopologyService);