OF port deletion complete implementation
[genius.git] / interfacemanager / interfacemanager-impl / src / main / java / org / opendaylight / genius / interfacemanager / InterfacemgrProvider.java
index 227a274c6af1799468c02e352b5641a0550793e6..1cac89ef9c47364ed19bb8747e76c0c1aa9b75c3 100644 (file)
@@ -32,6 +32,7 @@ import org.opendaylight.genius.interfacemanager.exceptions.InterfaceAlreadyExist
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceAdminState;
 import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
+import org.opendaylight.genius.interfacemanager.listeners.InternalTunnelCache;
 import org.opendaylight.genius.interfacemanager.renderer.ovs.utilities.SouthboundUtils;
 import org.opendaylight.genius.interfacemanager.rpcservice.InterfaceManagerRpcService;
 import org.opendaylight.genius.interfacemanager.servicebindings.flowbased.utilities.FlowBasedServicesUtils;
@@ -119,6 +120,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     private Map<InstanceIdentifier<Node>, OvsdbBridgeAugmentation> nodeIidToBridgeMap;
     private EntityOwnershipCandidateRegistration configEntityCandidate;
     private EntityOwnershipCandidateRegistration bindingEntityCandidate;
+    private InternalTunnelCache internalTunnelCache;
 
     @Inject
     public InterfacemgrProvider(@Reference final DataBroker dataBroker,
@@ -129,7 +131,8 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
                                 final InterfaceManagerCommonUtils interfaceManagerCommonUtils,
                                 final InterfaceMetaUtils interfaceMetaUtils,
                                 final IfmConfig ifmConfig,
-                                final IfmDiagStatusProvider ifmStatusProvider) {
+                                final IfmDiagStatusProvider ifmStatusProvider,
+                                final InternalTunnelCache internalTunnelCache) {
         this.dataBroker = dataBroker;
         this.txRunner = new ManagedNewTransactionRunnerImpl(dataBroker);
         this.entityOwnershipService = entityOwnershipService;
@@ -140,6 +143,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
         this.interfaceMetaUtils = interfaceMetaUtils;
         this.ifmConfig = ifmConfig;
         this.ifmStatusProvider = ifmStatusProvider;
+        this.internalTunnelCache = internalTunnelCache;
         start();
     }
 
@@ -899,4 +903,22 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     public boolean isItmOfTunnelsEnabled() {
         return ifmConfig.isItmOfTunnels();
     }
+
+    @Override
+    public void addInternalTunnelToCache(String tunnelName, org.opendaylight.yang.gen.v1.urn.ietf.params
+            .xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface iface) {
+        internalTunnelCache.add(tunnelName,iface);
+    }
+
+    @Override
+    public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces
+            .rev140508.interfaces.state.Interface getInternalTunnelCacheInfo(String tunnelName) {
+        return internalTunnelCache.get(tunnelName);
+    }
+
+    @Override
+    public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces
+            .rev140508.interfaces.state.Interface removeInternalTunnelFromCache(String tunnelName) {
+        return internalTunnelCache.remove(tunnelName);
+    }
 }