Incorrect handling of admin state update for interface 51/53851/6
authorFaseela K <faseela.k@ericsson.com>
Sat, 25 Mar 2017 16:44:04 +0000 (22:14 +0530)
committerFaseela K <faseela.k@ericsson.com>
Tue, 9 May 2017 05:47:36 +0000 (11:17 +0530)
Change-Id: I1ae01853375e6cb7f89516a768c3fc0d82508f7a
Signed-off-by: Faseela K <faseela.k@ericsson.com>
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/commons/InterfaceManagerCommonUtils.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsInterfaceConfigUpdateHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigUpdateHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/statehelpers/OvsInterfaceStateUpdateHelper.java

index b6da7ea162bf3ef749bc0a787ed38b176bb365d7..4812638332a91c350d7a9e2b92ad4f502949ef4c 100644 (file)
@@ -287,13 +287,10 @@ public final class InterfaceManagerCommonUtils {
         BatchingUtils.delete(intfId, BatchingUtils.EntityType.DEFAULT_CONFIG);
     }
 
-    public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-        .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus updateStateEntry(
-            Interface interfaceNew, DataBroker dataBroker, WriteTransaction transaction,
-            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-            .ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
-        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-            .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus;
+    public static OperStatus updateStateEntry(Interface interfaceNew, DataBroker dataBroker,
+           WriteTransaction transaction, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces
+                                                  .rev140508.interfaces.state.Interface ifState) {
+        OperStatus operStatus = ifState.getOperStatus();
         if (!interfaceNew.isEnabled()) {
             operStatus = org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                     .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Down;
@@ -304,22 +301,17 @@ public final class InterfaceManagerCommonUtils {
                     .getNodeConnectorFromInventoryOperDS(nodeConnectorId, dataBroker);
             FlowCapableNodeConnector flowCapableNodeConnector = nodeConnector
                     .getAugmentation(FlowCapableNodeConnector.class);
-            // State state = flowCapableNodeConnector.getState();
-            operStatus = flowCapableNodeConnector == null
-                    ? org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-                            .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Down
-                    : org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-                    .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Up;
+            operStatus = getOpState(flowCapableNodeConnector);
         }
 
-        String ifName = interfaceNew.getName();
-        InstanceIdentifier<org.opendaylight.yang.gen.v1.urn
-            .ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId = IfmUtil
-                .buildStateInterfaceId(interfaceNew.getName());
-        InterfaceBuilder ifaceBuilder = new InterfaceBuilder();
-        ifaceBuilder.setOperStatus(operStatus);
-        ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(ifName));
-        transaction.merge(LogicalDatastoreType.OPERATIONAL, ifStateId, ifaceBuilder.build());
+        updateOperStatus(interfaceNew.getName(), operStatus,transaction);
+        return operStatus;
+    }
+
+
+    public static OperStatus getOpState(FlowCapableNodeConnector flowCapableNodeConnector) {
+        OperStatus operStatus = flowCapableNodeConnector.getState().isLive()
+            && !flowCapableNodeConnector.getConfiguration().isPORTDOWN() ? OperStatus.Up : OperStatus.Down;
         return operStatus;
     }
 
@@ -327,7 +319,7 @@ public final class InterfaceManagerCommonUtils {
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
             .ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus,
             WriteTransaction transaction) {
-        LOG.debug("updating operational status for interface {}", interfaceName);
+        LOG.info("updating operational status {} for interface {}", interfaceName, operStatus);
         InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
             .ietf.interfaces.rev140508.interfaces.state.Interface> ifChildStateId = IfmUtil
                 .buildStateInterfaceId(interfaceName);
index 0c502ffe0530a473f3bd6b5ff7aaf1e201309a9a..cfd3eabcb1ab27c29d0cafad41c81170a5f0f038 100644 (file)
@@ -142,15 +142,14 @@ public class OvsInterfaceConfigUpdateHelper {
             WriteTransaction transaction, Interface interfaceNew, DataBroker dataBroker,
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
-        OperStatus operStatus = InterfaceManagerCommonUtils.updateStateEntry(interfaceNew, dataBroker, transaction,
-                ifState);
-
         IfL2vlan ifL2vlan = interfaceNew.getAugmentation(IfL2vlan.class);
         if (ifL2vlan == null || IfL2vlan.L2vlanMode.Trunk != ifL2vlan.getL2vlanMode()
                 && IfL2vlan.L2vlanMode.Transparent != ifL2vlan.getL2vlanMode()) {
             return;
         }
-
+        LOG.info("admin-state modified for interface {}", interfaceNew.getName());
+        OperStatus operStatus = InterfaceManagerCommonUtils.updateStateEntry(interfaceNew, dataBroker, transaction,
+            ifState);
         InterfaceParentEntryKey interfaceParentEntryKey = new InterfaceParentEntryKey(interfaceNew.getName());
         InterfaceParentEntry interfaceParentEntry = InterfaceMetaUtils
                 .getInterfaceParentEntryFromConfigDS(interfaceParentEntryKey, dataBroker);
index 9004ca4c8ed3b783ddfc8fad27ce88fdc2ca2bf4..285b236fa8c29c0206048c990922cfedd2f69be4 100644 (file)
@@ -39,6 +39,8 @@ public class OvsVlanMemberConfigUpdateHelper {
             AlivenessMonitorService alivenessMonitorService, ParentRefs parentRefsNew, Interface interfaceOld,
             IfL2vlan ifL2vlanNew, Interface interfaceNew, IdManagerService idManager,
             IMdsalApiManager mdsalApiManager) {
+        LOG.info("updating interface configuration for vlan memeber {} with parent-interface {}", interfaceNew
+            .getName(), parentRefsNew.getParentInterface());
         List<ListenableFuture<Void>> futures = new ArrayList<>();
         ParentRefs parentRefsOld = interfaceOld.getAugmentation(ParentRefs.class);
 
@@ -64,6 +66,7 @@ public class OvsVlanMemberConfigUpdateHelper {
 
         if (vlanIdModified(ifL2vlanOld.getVlanId(), ifL2vlanNew.getVlanId())
                 || !parentRefsOld.getParentInterface().equals(parentRefsNew.getParentInterface())) {
+            LOG.info("vlan-id modified for interface {}", interfaceNew.getName());
             futures.addAll(OvsVlanMemberConfigRemoveHelper.removeConfiguration(dataBroker, parentRefsOld, interfaceOld,
                     ifL2vlanOld, idManager));
             futures.addAll(OvsVlanMemberConfigAddHelper.addConfiguration(dataBroker, parentRefsNew, interfaceNew,
@@ -83,7 +86,7 @@ public class OvsVlanMemberConfigUpdateHelper {
             if (interfaceNew.isEnabled()) {
                 operStatus = pifState.getOperStatus();
             }
-
+            LOG.info("admin-state modified for interface {}", interfaceNew.getName());
             WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
             InstanceIdentifier<org.opendaylight.yang.gen.v1.urn
                 .ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId = IfmUtil
index 5972a12f93f236c703b7858fc9ecafb8229b8ccf..a70f7038dde0a3bc800c3bc5d6080547c7b115f3 100644 (file)
@@ -38,10 +38,10 @@ public class OvsInterfaceStateUpdateHelper {
         LOG.debug("Update of Interface State for port: {}", interfaceName);
         List<ListenableFuture<Void>> futures = new ArrayList<>();
 
-        Interface.OperStatus operStatusNew = getOpState(flowCapableNodeConnectorNew);
+        Interface.OperStatus operStatusNew = InterfaceManagerCommonUtils.getOpState(flowCapableNodeConnectorNew);
         MacAddress macAddressNew = flowCapableNodeConnectorNew.getHardwareAddress();
 
-        Interface.OperStatus operStatusOld = getOpState(flowCapableNodeConnectorOld);
+        Interface.OperStatus operStatusOld = InterfaceManagerCommonUtils.getOpState(flowCapableNodeConnectorOld);
         MacAddress macAddressOld = flowCapableNodeConnectorOld.getHardwareAddress();
 
         boolean opstateModified = false;
@@ -110,13 +110,6 @@ public class OvsInterfaceStateUpdateHelper {
         }
     }
 
-    public static Interface.OperStatus getOpState(FlowCapableNodeConnector flowCapableNodeConnector) {
-        Interface.OperStatus operStatus = flowCapableNodeConnector.getState().isLive()
-                && !flowCapableNodeConnector.getConfiguration().isPORTDOWN() ? Interface.OperStatus.Up
-                        : Interface.OperStatus.Down;
-        return operStatus;
-    }
-
     public static void handleInterfaceStateUpdates(
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.Interface iface,