Merge "Bug 5267 - Setting vlan id for termination end point not working"
[vpnservice.git] / interfacemgr / interfacemgr-impl / src / main / java / org / opendaylight / vpnservice / interfacemgr / renderer / ovs / confighelpers / OvsVlanMemberConfigRemoveHelper.java
index 83c7c042b17a6ca76032d461c9fec05feba6bf64..25d9c20b0e717b40a6be9c5d14032869894cb87b 100644 (file)
@@ -38,6 +38,7 @@ public class OvsVlanMemberConfigRemoveHelper {
     public static List<ListenableFuture<Void>> removeConfiguration(DataBroker dataBroker, ParentRefs parentRefs,
                                                                 Interface interfaceOld, IfL2vlan ifL2vlan,
                                                                 IdManagerService idManager) {
+        LOG.debug("remove vlan member configuration {}",interfaceOld.getName());
         List<ListenableFuture<Void>> futures = new ArrayList<>();
         WriteTransaction t = dataBroker.newWriteOnlyTransaction();
 
@@ -47,9 +48,14 @@ public class OvsVlanMemberConfigRemoveHelper {
         InterfaceParentEntry interfaceParentEntry =
                 InterfaceMetaUtils.getInterfaceParentEntryFromConfigDS(interfaceParentEntryIid, dataBroker);
 
+        if(interfaceParentEntry == null){
+            return futures;
+        }
+
         List<InterfaceChildEntry> interfaceChildEntries = interfaceParentEntry.getInterfaceChildEntry();
         if (interfaceChildEntries.size() <= 1) {
-            t.delete(LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIid);
+            // FIXME..some boundary problem during vlan member deletion..need to revisit
+            //t.delete(LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIid);
         } else {
             InterfaceChildEntryKey interfaceChildEntryKey = new InterfaceChildEntryKey(interfaceOld.getName());
             InstanceIdentifier<InterfaceChildEntry> interfaceChildEntryIid =
@@ -84,13 +90,14 @@ public class OvsVlanMemberConfigRemoveHelper {
                 }
             } */
 
+            LOG.debug("delete vlan member interface state {}",interfaceOld.getName());
             String ncStr = ifState.getLowerLayerIf().get(0);
             NodeConnectorId nodeConnectorId = new NodeConnectorId(ncStr);
             BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId));
             InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId =
                     IfmUtil.buildStateInterfaceId(interfaceOld.getName());
             t.delete(LogicalDatastoreType.OPERATIONAL, ifStateId);
-            FlowBasedServicesUtils.removeIngressFlow(interfaceOld, dpId, t);
+            FlowBasedServicesUtils.removeIngressFlow(interfaceOld.getName(), dpId, t);
         }
 
         futures.add(t.submit());