Merge "Bug 5334 : Delete ELANport , ELAN instance VLAN and re-create same does not...
authorThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 16 Mar 2016 21:36:58 +0000 (21:36 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 16 Mar 2016 21:36:58 +0000 (21:36 +0000)
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/IfmUtil.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsInterfaceConfigRemoveHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateRemoveHelper.java
interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/StateInterfaceTest.java
interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/VlanInterfaceConfigurationTest.java

index 894189c9f83f496faa62f1a322d8f4d55cbe8e17..0cd1a718c0a0d5888614e969ba41dff6ab1d118c 100644 (file)
@@ -70,6 +70,24 @@ public class IfmUtil {
         return split[1];
     }
 
+    public static BigInteger getDpnFromInterface(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState){
+        NodeConnectorId ncId = getNodeConnectorIdFromInterface(ifState);
+        if(ncId != null){
+            return new BigInteger(getDpnFromNodeConnectorId(ncId));
+        }
+        return null;
+    }
+    public static String getPortNoFromInterfaceName(String ifaceName, DataBroker broker) {
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState =
+                InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(ifaceName, broker);
+
+        String lowerLayerIf = ifState.getLowerLayerIf().get(0);
+        NodeConnectorId nodeConnectorId = new NodeConnectorId(lowerLayerIf);
+        String portNo = IfmUtil.getPortNoFromNodeConnectorId(nodeConnectorId);
+
+        return portNo;
+    }
+
     public static String getPortNoFromNodeConnectorId(NodeConnectorId portId) {
         /*
          * NodeConnectorId is of form 'openflow:dpnid:portnum'
index fe92920478682621050574990b936134d2af373e..1f1cc9cfe9f17444300c293d81ac866dd76254e3 100644 (file)
@@ -88,9 +88,9 @@ public class OvsInterfaceConfigRemoveHelper {
             return;
         }
 
-        InterfaceManagerCommonUtils.updateOperStatus(interfaceOld.getName(), OperStatus.Down, transaction);
-        NodeConnectorId ncId = new NodeConnectorId(ifState.getLowerLayerIf().get(0));
-        BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(ncId));
+        InterfaceManagerCommonUtils.deleteStateEntry(interfaceOld.getName(), transaction);
+
+        BigInteger dpId = IfmUtil.getDpnFromInterface(ifState);
         FlowBasedServicesUtils.removeIngressFlow(interfaceOld.getName(), dpId, transaction);
         InterfaceManagerCommonUtils.deleteParentInterfaceEntry(transaction, parentRefs.getParentInterface());
         // For Vlan-Trunk Interface, remove the trunk-member operstates as well...
index d66147e100765eb40a640997bc1a9b596af7550c..83eab5a29cb19bb833d75ad24e78b0037fa7503f 100644 (file)
@@ -91,9 +91,7 @@ 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));
+            BigInteger dpId = IfmUtil.getDpnFromInterface(ifState);
             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);
index 6947f4026a1ad25f441feec86da9bdf4f689ca1c..9360c57059e16cc625c7cc5bf6d0b2c49ed312ad 100644 (file)
@@ -56,13 +56,10 @@ public class OvsInterfaceStateRemoveHelper {
         WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
 
         InstanceIdentifier<Interface> ifStateId = IfmUtil.buildStateInterfaceId(portName);
-        /* Remove entry from if-index-interface-name map and deallocate Id from Idmanager. */
+
+        // delete the port entry from interface operational DS
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState =
                 InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(portName, dataBroker);
-        if(interfaceState != null) {
-            InterfaceMetaUtils.removeLportTagInterfaceMap(transaction, idManager, dataBroker, interfaceState.getName(), interfaceState.getIfIndex());
-        }
-
         transaction.delete(LogicalDatastoreType.OPERATIONAL, ifStateId);
 
         InterfaceKey interfaceKey = new InterfaceKey(portName);
index 894713a69b35d7d47aaf195dc8fb78d711a0bf24..14a94450802f545b624af8d64230e9bc0299867c 100644 (file)
@@ -182,7 +182,6 @@ public class StateInterfaceTest {
         removeHelper.removeState(idManager, mdsalManager, alivenessMonitorService, fcNodeConnectorId, dataBroker, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNew);
 
         verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier);
-        verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, ifIndexId);
 
     }
     @Test
index b3ce8e90b52d49ff471d2c87ae62e123935e4459..0f61af1ff96a848cf5983b8233cc91c0faf0c253 100644 (file)
@@ -203,15 +203,10 @@ public class VlanInterfaceConfigurationTest {
         doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read(
                 LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier);
 
-        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder ifaceBuilder = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder();
-        ifaceBuilder.setOperStatus(OperStatus.Down);
-        ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(vlanInterfaceEnabled.getName()));
-        stateInterface = ifaceBuilder.build();
-
         removeHelper.removeConfiguration(dataBroker,alivenessMonitorService, vlanInterfaceEnabled, idManager,
                 mdsalApiManager, vlanInterfaceEnabled.getAugmentation(ParentRefs.class));
 
         //verification
-        verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, stateInterface);
+        verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier);
     }
 }