From: Faseela K Date: Tue, 15 Mar 2016 13:07:46 +0000 (+0530) Subject: Bug 5463 : dpID coming as null during ovsdbbridge add DCN X-Git-Tag: release/beryllium-sr2~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=08f7361c4774d179d909007e92fa5a4158637e2f;p=vpnservice.git Bug 5463 : dpID coming as null during ovsdbbridge add DCN Description : Whenever a bridge is started, datapath-node-id is not coming in the initial notification, and often it comes in a subsequent update notification, which is not handled in interface-manager Change-Id: I7cb19e8ba109254710aabf8aca4bbba9edc85fca Signed-off-by: Faseela K --- diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceConfigListener.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceConfigListener.java index dec2f154..9d17e71e 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceConfigListener.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceConfigListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. + * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -39,6 +39,7 @@ public class InterfaceConfigListener extends AsyncDataTreeChangeListenerBase>> { diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceTopologyStateListener.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceTopologyStateListener.java index db2ebcd7..81203c7a 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceTopologyStateListener.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceTopologyStateListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. + * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -48,7 +48,7 @@ public class InterfaceTopologyStateListener extends AsyncDataChangeListenerBase< @Override protected AsyncDataBroker.DataChangeScope getDataChangeScope() { - return AsyncDataBroker.DataChangeScope.BASE; + return AsyncDataBroker.DataChangeScope.ONE; } @Override @@ -63,8 +63,13 @@ public class InterfaceTopologyStateListener extends AsyncDataChangeListenerBase< @Override protected void update(InstanceIdentifier identifier, OvsdbBridgeAugmentation bridgeOld, OvsdbBridgeAugmentation bridgeNew) { - LOG.info("Received Update DataChange Notification for identifier: {}, ovsdbBridgeAugmentation old: {}, new: {}." + - "No Action Performed.", identifier, bridgeOld, bridgeNew); + LOG.debug("Received Update DataChange Notification for identifier: {}, ovsdbBridgeAugmentation old: {}, new: {}.", + identifier, bridgeOld, bridgeNew); + if(bridgeOld.getDatapathId()== null && bridgeNew.getDatapathId()!= null){ + DataStoreJobCoordinator jobCoordinator = DataStoreJobCoordinator.getInstance(); + RendererStateAddWorker rendererStateAddWorker = new RendererStateAddWorker(identifier, bridgeNew); + jobCoordinator.enqueueJob(bridgeNew.getBridgeName().getValue() + bridgeNew.getDatapathId(), rendererStateAddWorker); + } } @Override diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java index ae9dccf3..c4babcda 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. + * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -44,24 +44,12 @@ public class OvsInterfaceTopologyStateAddHelper { WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); if (bridgeNew.getDatapathId() == null) { - LOG.warn("DataPathId found as null for Bridge Augmentation: {}... retrying...", bridgeNew); - Optional bridgeNodeOptional = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, bridgeIid, dataBroker); - if (bridgeNodeOptional.isPresent()) { - bridgeNew = bridgeNodeOptional.get(); - } - if (bridgeNew.getDatapathId() == null) { - LOG.warn("DataPathId found as null again for Bridge Augmentation: {}. Bailing out.", bridgeNew); - return futures; - } + LOG.warn("DataPathId found as null for Bridge Augmentation: {}... returning...", bridgeNew); + return futures; } String bridgeName = bridgeNew.getBridgeName().getValue(); BigInteger dpnId = IfmUtil.getDpnId(bridgeNew.getDatapathId()); - if (dpnId == null) { - LOG.warn("Got Null DPID for Bridge: {}", bridgeNew); - return futures; - } - // create bridge reference entry in interface meta operational DS InterfaceMetaUtils.createBridgeRefEntry(dpnId, bridgeIid, writeTransaction);