X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Frenderer%2Fovs%2Fconfighelpers%2FOvsVlanMemberConfigRemoveHelper.java;h=83eab5a29cb19bb833d75ad24e78b0037fa7503f;hb=6e60a68cb870f5b237ce26a95d1ae78c233b4029;hp=83c7c042b17a6ca76032d461c9fec05feba6bf64;hpb=007910122eafb7ccfdfbdd2c48c6ec242c143c87;p=vpnservice.git diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java index 83c7c042..83eab5a2 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java @@ -38,6 +38,7 @@ public class OvsVlanMemberConfigRemoveHelper { public static List> removeConfiguration(DataBroker dataBroker, ParentRefs parentRefs, Interface interfaceOld, IfL2vlan ifL2vlan, IdManagerService idManager) { + LOG.debug("remove vlan member configuration {}",interfaceOld.getName()); List> futures = new ArrayList<>(); WriteTransaction t = dataBroker.newWriteOnlyTransaction(); @@ -47,14 +48,19 @@ public class OvsVlanMemberConfigRemoveHelper { InterfaceParentEntry interfaceParentEntry = InterfaceMetaUtils.getInterfaceParentEntryFromConfigDS(interfaceParentEntryIid, dataBroker); + if(interfaceParentEntry == null){ + return futures; + } + + //Delete the interface child information List interfaceChildEntries = interfaceParentEntry.getInterfaceChildEntry(); + InterfaceChildEntryKey interfaceChildEntryKey = new InterfaceChildEntryKey(interfaceOld.getName()); + InstanceIdentifier interfaceChildEntryIid = + InterfaceMetaUtils.getInterfaceChildEntryIdentifier(interfaceParentEntryKey, interfaceChildEntryKey); + t.delete(LogicalDatastoreType.CONFIGURATION, interfaceChildEntryIid); + //If this is the last child, remove the interface parent info as well. if (interfaceChildEntries.size() <= 1) { t.delete(LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIid); - } else { - InterfaceChildEntryKey interfaceChildEntryKey = new InterfaceChildEntryKey(interfaceOld.getName()); - InstanceIdentifier interfaceChildEntryIid = - InterfaceMetaUtils.getInterfaceChildEntryIdentifier(interfaceParentEntryKey, interfaceChildEntryKey); - t.delete(LogicalDatastoreType.CONFIGURATION, interfaceChildEntryIid); } org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState = @@ -84,13 +90,12 @@ public class OvsVlanMemberConfigRemoveHelper { } } */ - String ncStr = ifState.getLowerLayerIf().get(0); - NodeConnectorId nodeConnectorId = new NodeConnectorId(ncStr); - BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId)); + LOG.debug("delete vlan member interface state {}",interfaceOld.getName()); + BigInteger dpId = IfmUtil.getDpnFromInterface(ifState); InstanceIdentifier 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());