From e6ccad87296488442cb124734733df79cbee8815 Mon Sep 17 00:00:00 2001 From: eaksahu Date: Mon, 3 Jul 2017 18:08:35 +0530 Subject: [PATCH] Bug 8790 - Local Macs getting cleared Local Macs are getting cleared from HA parent node , in case only one of the HA child node is diconnected. It should be cleared if both the HA nodes are disconnected . Change-Id: I222bc69aa7e4aa477870014a793e0ae5d73de26c Signed-off-by: eaksahu --- .../l2gw/ha/listeners/HwvtepNodeDataListener.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeDataListener.java b/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeDataListener.java index 1100e01f97..9975f9fe18 100644 --- a/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeDataListener.java +++ b/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeDataListener.java @@ -95,7 +95,10 @@ public abstract class HwvtepNodeDataListener boolean create = false; ReadWriteTransaction tx = broker.newReadWriteTransaction(); if (LogicalDatastoreType.OPERATIONAL == datastoreType.getDatastoreType()) { - copyToParent(identifier, dataRemoved, create, tx); + if (isNodeConnected(identifier, tx)) { + //Do not process the remove from disconnected child node + copyToParent(identifier, dataRemoved, create, tx); + } } else { copyToChild(identifier, dataRemoved, create, tx); } @@ -105,6 +108,12 @@ public abstract class HwvtepNodeDataListener }); } + protected boolean isNodeConnected(InstanceIdentifier identifier, ReadWriteTransaction tx) + throws ReadFailedException { + return tx.read(LogicalDatastoreType.OPERATIONAL, identifier.firstIdentifierOf(Node.class)) + .checkedGet().isPresent(); + } + boolean isDataUpdated(Optional existingDataOptional, T newData) { return !existingDataOptional.isPresent() || !Objects.equals(existingDataOptional.get(), newData); } -- 2.36.6