logging issues in elanmanager 60/69260/4
authorFaseela K <faseela.k@ericsson.com>
Thu, 8 Mar 2018 12:23:46 +0000 (17:53 +0530)
committerStephen Kitt <skitt@redhat.com>
Thu, 8 Mar 2018 15:19:02 +0000 (15:19 +0000)
Change-Id: I9209c3be150064bf230f5b56663a5a0ba8c311d0
Signed-off-by: Faseela K <faseela.k@ericsson.com>
46 files changed:
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cache/ElanInterfaceCache.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanAdd.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanDelete.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanGet.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanInterfaceAdd.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanInterfaceDelete.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanInterfaceGet.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanInterfaceUpdate.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanMacTableFlush.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanMacTableGet.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/ElanUpdate.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/StaticMacAdd.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/StaticMacDelete.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeAdd.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeDelete.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeGet.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeInterfaceAdd.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeInterfaceDelete.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/etree/EtreeInterfaceGet.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnUtils.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanDpnInterfaceClusteredListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInstanceManager.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceStateClusteredListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanSmacFlowEventListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeCopier.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAConfigNodeListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAJobScheduler.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpClusteredListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/ManagerListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/merge/MergeCommandsAggregator.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/ChildListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayUtils.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanDmacUtils.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanForwardingEntriesHandler.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanItmUtils.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/TransportZoneNotificationUtil.java

index 546d238ea35ccd9fcbeaba47bf098589182f1f9e..98e40df57d099b2ff195d6691eb875eb55a7edbe 100644 (file)
@@ -36,7 +36,8 @@ import org.slf4j.LoggerFactory;
  */
 @Singleton
 public class ElanInterfaceCache extends DataObjectCache<ElanInterface> {
-    private static final Logger LOG = LoggerFactory.getLogger(ElanInterface.class);
+
+    private static final Logger LOG = LoggerFactory.getLogger(ElanInterfaceCache.class);
 
     private final Map<String, Set<String>> elanInstanceToInterfacesCache = new ConcurrentHashMap<>();
 
index b0f7703d889fc2a7648051dce877ccbc4c54aaa2..59d5420765a89e789e6fcf22a652ebdf01ab5882 100644 (file)
@@ -37,8 +37,8 @@ public class ElanAdd extends OsgiCommandSupport {
             macTimeOut = 30;
         }
 
-        LOG.debug("Executing create ElanInstance command" + "\t" + elanName + "\t" + macTimeOut + "\t" + elanDescr
-                + "\t");
+        LOG.debug("Executing create ElanInstance command for elanName : {}, macTimeOut : {}, elanDescr : {}",
+                elanName, macTimeOut, elanDescr);
         if (elanName.length() <= MAX_LENGTH) {
             boolean isSuccess = elanProvider.createElanInstance(elanName, macTimeOut, elanDescr);
             if (isSuccess) {
index 6939ac24d1092a4c2efc0dabc666e237a7a21893..046e8e28bf7ac3ce03c6824f554567493a9896ca 100644 (file)
@@ -29,7 +29,7 @@ public class ElanDelete extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing the Deletion of ElanInstance command" + "\t" + elanName + "\t");
+        LOG.debug("Executing the Deletion of ElanInstance command for elanName: {}", elanName);
         boolean isSuccess = elanProvider.deleteElanInstance(elanName);
         if (isSuccess) {
             session.getConsole().println("Elan Instance deleted successfully");
index 293efd4490530f594bf3af7f4ff82a4c0a679aa4..9e80f213bbb8c82d6fff4fe43493cde79a5bbba3 100644 (file)
@@ -32,7 +32,7 @@ public class ElanGet extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing Get ElanInstance command" + "\t" + elanName +  "\t");
+        LOG.debug("Executing Get ElanInstance command for elanName: {}", elanName);
         if (elanName != null) {
             ElanInstance elanInstance = elanProvider.getElanInstance(elanName);
             if (elanInstance == null) {
index ba8fe752037cbccbd650aaecdaaf9c4a34a8a6c4..6627903752418cc1a89121a94ae78307a301ede6 100644 (file)
@@ -37,8 +37,8 @@ public class ElanInterfaceAdd extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing create ElanInterface command" + "\t" + elanName + "\t" + interfaceName + "\t"
-                + staticMacAddresses + "\t" + elanInterfaceDescr + "\t");
+        LOG.debug("Executing create ElanInterface command for elanName:{}, interfaceName:{}, staticMacAddresses:{},"
+                + "elanInterfaceDescr:{}",elanName, interfaceName, staticMacAddresses, elanInterfaceDescr);
         elanProvider.addElanInterface(elanName, interfaceName, staticMacAddresses, elanInterfaceDescr);
         return null;
     }
index 7cbf0f68bbefb5c4675e3c66d9faa279f23fc399..653609552958447fd15aa2a08c0a6b3d77c1b106 100644 (file)
@@ -30,7 +30,7 @@ public class ElanInterfaceDelete  extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Deleting ElanInterface command" + "\t" + elanName + "\t" + interfaceName + "\t");
+        LOG.debug("Deleting ElanInterface command for elanName:{}, interfaceName:{}", elanName, interfaceName);
         elanProvider.deleteElanInterface(interfaceName);
         return null;
     }
index 34e66fac324c724a1526398eefe1943b59762e64..60b858f5b56f25fe10aba042a526da2c3342a541 100644 (file)
@@ -39,8 +39,7 @@ public class ElanInterfaceGet extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing Get ElanInterface command for the corresponding Elan Instance"
-                + "\t" + elanName + "\t");
+        LOG.debug("Executing Get ElanInterface command for the corresponding Elan Instance for {}", elanName);
         if (elanName != null) {
             ElanInstance elanInstance = elanProvider.getElanInstance(elanName);
             List<String> elanInterfaces = elanProvider.getElanInterfaces(elanName);
index b5f33e2fa66c665051f66da95919aa26d1cadc7c..2405cd04349911ff48991686dfaa36bba67773b4 100644 (file)
@@ -37,8 +37,8 @@ public class ElanInterfaceUpdate extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing updating ElanInterface command" + "\t" + elanName + "\t" + interfaceName + "\t"
-                + staticMacAddresses + "\t" + elanInterfaceDescr + "\t");
+        LOG.debug("Executing elanInterface update command for elanName:{}, interfaceName:{}, staticMacAddresses:{},"
+                + "elanInterfaceDescr:{}", elanName, interfaceName, staticMacAddresses, elanInterfaceDescr);
         elanProvider.updateElanInterface(elanName, interfaceName, staticMacAddresses, elanInterfaceDescr);
         return null;
     }
index 25ebd45f5f4d00d28996e7d79002a75b1a2e6205..ba603f567e57a765131555bf24f7d00f58a5fe28 100644 (file)
@@ -29,7 +29,7 @@ public class ElanMacTableFlush extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing create ElanInstance command" + "\t" + elanName + "\t");
+        LOG.debug("Executing mac table flush command for {}", elanName);
         elanProvider.flushMACTable(elanName);
         return null;
     }
index 2510a758fd5a523e257ccb1f2e20b3d0ecf0ac8d..516af9339d439a7fa9b80b23de3ca38be1a98cfe 100644 (file)
@@ -34,7 +34,7 @@ public class ElanMacTableGet extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing updating ElanInterface command" + "\t");
+        LOG.debug("Executing elan mac table get command for {}", elanName);
         Collection<MacEntry> macTables = elanProvider.getElanMacTable(elanName);
         if (!macTables.isEmpty()) {
             SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy:HH:mm:ss");
index 091073ac0ba1ce09e48022c1a292915061f7b869..57f2ecfc8a337abf399cf3fee6519742ec0c8147 100644 (file)
@@ -32,7 +32,8 @@ public class ElanUpdate  extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Updating the ElanInstance command" + "\t" + elanName + "\t" + macTimeOut + "\t" + elanDescr + "\t");
+        LOG.debug("Updating elanInstance update command for elanName:{}, macTimeOut:{}, elanDescr:{}",
+                elanName, macTimeOut, elanDescr);
         elanProvider.updateElanInstance(elanName, macTimeOut, elanDescr);
         return null;
     }
index f18a6a37aaad5762851b50f7777da7cf4292734f..22aeedae41d89166b6c29a79f03a1c18dd366ea0 100644 (file)
@@ -33,8 +33,8 @@ public class StaticMacAdd extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing create ElanInterface command" + "\t" + elanName + "\t" + interfaceName + "\t"
-                + staticMacAddress + "\t");
+        LOG.debug("Executing static mac add command for elanName:{}, interfaceName:{}, staticMacAddress:{}",
+                elanName, interfaceName, staticMacAddress);
         elanProvider.addStaticMacAddress(interfaceName, staticMacAddress);
         return null;
     }
index eaa487ead0d16f80ae6f963c69c3512c06d084c0..aab6bec29b7fbafad1937de253a6d10c5dcd9173 100644 (file)
@@ -33,8 +33,8 @@ public class StaticMacDelete  extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing create ElanInterface command" + "\t" + elanName + "\t" + interfaceName + "\t"
-                + staticMacAddress + "\t");
+        LOG.debug("Executing static mac delete command for elanName:{}, interfaceName:{}, staticMacAddress:{}",
+                elanName, interfaceName, staticMacAddress);
         elanProvider.deleteStaticMacAddress(interfaceName, staticMacAddress);
         return null;
     }
index 8fbd7e7c1f6da8851f4ae475077ff8781242d00a..1c71ec5ae514ff24141c6930979f3746ba9450cf 100644 (file)
@@ -37,8 +37,8 @@ public class EtreeAdd extends OsgiCommandSupport {
             macTimeOut = 30;
         }
 
-        LOG.debug("Executing create EtreeInstance command" + "\t" + etreeName + "\t" + macTimeOut + "\t"
-                + etreeDescr + "\t");
+        LOG.debug("Executing create EtreeInstance command etreeName:{}, macTimeOut:{}, etreeDescr:{}",
+                etreeName, macTimeOut, etreeDescr);
         if (etreeName.length() <= MAX_LENGTH) {
             boolean isSuccess = elanProvider.createEtreeInstance(etreeName, macTimeOut, etreeDescr);
             if (isSuccess) {
index 5a2d43cc40994c78928d8d2cecff20f14988d501..02d91d6773d710f6d93c38519edb40070ce63d8b 100644 (file)
@@ -29,7 +29,7 @@ public class EtreeDelete extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing the Deletion of EtreeInstance command" + "\t" + etreeName + "\t");
+        LOG.debug("Executing the Deletion of EtreeInstance command {}", etreeName);
         boolean isSuccess = elanProvider.deleteEtreeInstance(etreeName);
         if (isSuccess) {
             session.getConsole().println("Etree Instance deleted successfully");
index b0206b78cd59826319b0cdd156ef5f2df17d64a7..1e6c7abfa2f9875374fbe614a8454f81c03c95df 100644 (file)
@@ -33,7 +33,7 @@ public class EtreeGet extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing Get EtreeInstance command" + "\t" + etreeName + "\t");
+        LOG.debug("Executing Get EtreeInstance command for {}", etreeName);
         if (etreeName != null) {
             ElanInstance elanInstance = elanProvider.getElanInstance(etreeName);
             if (elanInstance == null || elanInstance.getAugmentation(EtreeInstance.class) == null) {
index 7e08dce88c73118cf5a8ba635dd850eb7918302f..8fa054386aef348bc195dd0f2b662928d12015af 100644 (file)
@@ -65,8 +65,9 @@ public class EtreeInterfaceAdd extends OsgiCommandSupport {
             }
         }
 
-        LOG.debug("Executing create EtreeInterface command" + "\t" + elanName + "\t" + interfaceName + "\t"
-                + interfaceType + "\t" + staticMacAddresses + "\t" + elanInterfaceDescr + "\t");
+        LOG.debug("Executing create EtreeInterface command elanName:{}, interfaceName:{}, interfaceType:{},"
+                        + "staticMacAddresses:{}, elanInterfaceDescr:{}", elanName, interfaceName, interfaceType,
+                staticMacAddresses, elanInterfaceDescr);
         elanProvider.addEtreeInterface(elanName, interfaceName, inputType, staticMacAddresses, elanInterfaceDescr);
         session.getConsole().println("Created etree interface successfully");
 
index b4a7a27cbe2093966fc3fbc03d2754b1f4f862a2..474c4f44d34211934cb465385369ee5442a4f989 100644 (file)
@@ -32,7 +32,7 @@ public class EtreeInterfaceDelete extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Deleting EtreeInterface command" + "\t" + etreeName + "\t" + interfaceName + "\t");
+        LOG.debug("Deleting EtreeInterface command etreeName:{}, interfaceName:{}", etreeName, interfaceName);
         ElanInterface existingInterface =
                 elanProvider.getElanInterfaceByElanInterfaceName(interfaceName);
         if (existingInterface == null || existingInterface.getAugmentation(EtreeInterface.class) == null) {
index 97c6719be7e5096b224016905e7878edb9dcf235..459a4a4cfdaa01818f366ce5cde835027ec43327 100644 (file)
@@ -41,8 +41,7 @@ public class EtreeInterfaceGet extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
-        LOG.debug("Executing Get EtreeInterface command for the corresponding Etree Instance" + "\t" + etreeName
-                + "\t");
+        LOG.debug("Executing Get EtreeInterface command for the corresponding Etree Instance {}", etreeName);
         if (etreeName != null) {
             ElanInstance elanInstance = elanProvider.getElanInstance(etreeName);
             if (elanInstance == null || elanInstance.getAugmentation(EtreeInstance.class) == null) {
index 2539146ff3715a83e52ff07b6df763a4fbba3b23..415dd536eb871f315f83668b310a01a018e0cd9d 100644 (file)
@@ -151,10 +151,10 @@ public class EvpnUtils {
         try {
             rpcResult = result.get();
         } catch (InterruptedException e) {
-            LOG.error("getnextHopIpFromRpcOutput : InterruptedException for dpnid {}", e, dpnId);
+            LOG.error("getnextHopIpFromRpcOutput : InterruptedException for dpnid {}", dpnId, e);
             return null;
         } catch (ExecutionException e) {
-            LOG.error("getnextHopIpFromRpcOutput : ExecutionException for dpnid {}", e, dpnId);
+            LOG.error("getnextHopIpFromRpcOutput : ExecutionException for dpnid {}", dpnId, e);
             return null;
         }
         if (!rpcResult.isSuccessful()) {
@@ -268,7 +268,7 @@ public class EvpnUtils {
         String evpnName = evpnAugmentation.getEvpnName();
         String rd = vpnManager.getVpnRd(broker, evpnName);
         if (rd == null) {
-            LOG.debug("withdrawEvpnRT2Routes : rd is null ", elanName);
+            LOG.debug("withdrawEvpnRT2Routes : rd is null for {}", elanName);
             return;
         }
         List<MacEntry> macEntries = elanUtils.getElanMacEntries(elanName);
index ce331b1261528cb10558b30371bc413b9238f47d..0585e1751618fca23dd175f25c50d9a1fae40fd9 100644 (file)
@@ -160,7 +160,7 @@ public class ElanBridgeManager implements IElanBridgeManager {
                 try {
                     createIntegrationBridgeConfig(node, generateIntBridgeMac);
                 } catch (RuntimeException e) {
-                    LOG.error("Error creating bridge on " + node, e);
+                    LOG.error("Error creating bridge on {}", node, e);
                 }
             }
             return;
index 0d2f7dfb134d00b184d5c5b716337cb2596d4c40..5d4f4f702306a0f76100e7a7b4a31054db2bc155 100644 (file)
@@ -77,7 +77,7 @@ public class ElanDpnInterfaceClusteredListener
     void handleUpdate(InstanceIdentifier<DpnInterfaces> id, DpnInterfaces dpnInterfaces) {
         final String elanName = getElanName(id);
         if (ElanL2GwCacheUtils.getInvolvedL2GwDevices(elanName).isEmpty()) {
-            LOG.debug("dpnInterface updation, no external l2 devices to update for elan {} with Dp Id:", elanName,
+            LOG.debug("dpnInterface updation, no external l2 devices to update for elan {} with Dp Id {}", elanName,
                     dpnInterfaces.getDpId());
             return;
         }
index c68b0651fb4023dc1b48dc6eb3e6ee0f9e0d39c6..d6ebdd7b0d650c805249e5cdfe09ecaae7b6b749 100644 (file)
@@ -151,7 +151,7 @@ public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase<ElanIns
                     try {
                         return elanInterfaceManager.handleunprocessedElanInterfaces(update);
                     } catch (ElanException e) {
-                        LOG.error("update() failed for ElanInstance: " + identifier.toString(), e);
+                        LOG.error("update() failed for ElanInstance: {}", identifier.toString(), e);
                         return emptyList();
                     }
                 }, ElanConstants.JOB_MAX_RETRIES);
index ffb0acf076653c4a391ed5005a002be384935b8a..e306a493014bcbd47c912882d91e57c2272e0899 100644 (file)
@@ -1045,8 +1045,7 @@ public class ElanInterfaceManager extends AsyncDataTreeChangeListenerBase<ElanIn
                 LOG.info("Installing remote dmac for mac address {} and interface {}", macAddress, interfaceName);
                 synchronized (ElanUtils.getElanMacDPNKey(elanInfo.getElanTag(), macAddress,
                         interfaceInfo.getDpId())) {
-                    LOG.info("Acquired lock for mac : " + macAddress + ". Proceeding with remote dmac"
-                            + " install operation.");
+                    LOG.info("Acquired lock for mac : {}, proceeding with remote dmac install operation", macAddress);
                     elanUtils.setupDMacFlowOnRemoteDpn(elanInfo, interfaceInfo, dstDpId, macAddress,
                             writeFlowTx);
                 }
@@ -1381,8 +1380,8 @@ public class ElanInterfaceManager extends AsyncDataTreeChangeListenerBase<ElanIn
         } else {
             EtreeInstance etreeInstance = elanInfo.getAugmentation(EtreeInstance.class);
             if (etreeInstance == null) {
-                LOG.error("EtreeInterface " + elanInterface.getName() + " is associated with a non EtreeInstance: "
-                        + elanInfo.getElanInstanceName());
+                LOG.error("EtreeInterface {} is associated with a non EtreeInstance: {}",
+                        elanInterface.getName(), elanInfo.getElanInstanceName());
             } else {
                 bindElanService(etreeInstance.getEtreeLeafTagVal().getValue(), elanInfo.getElanInstanceName(),
                         elanInterface.getName(), lportTag, tx);
index a0bd0b49fbdc7ffa7255b2e15b8d17868369f52c..41306b692a2b8c63ad557eb2e70fa568ea60de15 100644 (file)
@@ -78,7 +78,7 @@ public class ElanInterfaceStateClusteredListener extends
                     try {
                         handleExternalTunnelUpdate(interfaceName, intrf);
                     } catch (ElanException e) {
-                        LOG.error("Failed to add Interface: " + identifier.toString());
+                        LOG.error("Failed to add Interface {}", identifier.toString());
                     }
                 });
             }
index 94b582d6d2073bbdcc1342d71d4b3e519e35b733..fb2e50e869b538401523fc160eececfad9f56867 100644 (file)
@@ -180,7 +180,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
                         .setKey(new ElanInstanceKey(elanInstanceName)).build();
                 MDSALUtil.syncWrite(broker, LogicalDatastoreType.CONFIGURATION,
                         ElanHelper.getElanInstanceConfigurationDataPath(elanInstanceName), updateElanInstance);
-                LOG.debug("Updating the Elan Instance {} with MAC TIME-OUT %l and Description %s ",
+                LOG.debug("Updating the Elan Instance {} with MAC TIME-OUT {} and Description {}",
                         updateElanInstance, macTimeout, description);
             }
         } else {
@@ -210,7 +210,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
                         .addAugmentation(EtreeInstance.class, etreeInstance).build();
                 MDSALUtil.syncWrite(broker, LogicalDatastoreType.CONFIGURATION,
                         ElanHelper.getElanInstanceConfigurationDataPath(elanInstanceName), updateElanInstance);
-                LOG.debug("Updating the Etree Instance {} with MAC TIME-OUT %l and Description %s ",
+                LOG.debug("Updating the Etree Instance {} with MAC TIME-OUT {} and Description {} ",
                         updateElanInstance, macTimeout, description);
             }
         } else {
@@ -860,9 +860,8 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
         ElanInstance elanInstance = elanIface.isPresent()
                 ? elanInstanceCache.get(elanIface.get().getElanInstanceName()).orNull() : null;
         if (elanInstance == null) {
-            LOG.debug("addArpResponderFlow: elanInstance is null, Failed to install arp responder flow for Interface {}"
-                      + " with MAC {} & IP {}", dpnId,
-                ingressInterfaceName, macAddress, ipAddress);
+            LOG.debug("addArpResponderFlow: elanInstance is null, Failed to install arp responder flow for dpnId {}"
+                    + "for Interface {} with MAC {} & IP {}", dpnId, ingressInterfaceName, macAddress, ipAddress);
             return;
         }
         String flowId = ArpResponderUtil.getFlowId(lportTag, ipAddress);
index 3bc22ae1b1986fd904721d3a0cb111d9c5758378..53e1281ace494e0b4362aca6fc50d1624440b6f3 100644 (file)
@@ -98,7 +98,7 @@ public class ElanSmacFlowEventListener implements SalFlowListener {
             String interfaceName = existingInterfaceInfo.get().getInterfaceName();
             PhysAddress physAddress = new PhysAddress(srcMacAddress);
             if (interfaceName == null) {
-                LOG.error(String.format("LPort record not found for tag %d", portTag));
+                LOG.error("LPort record not found for tag {}", portTag);
                 return;
             }
             jobCoordinator.enqueueJob(ElanUtils.getElanInterfaceJobKey(interfaceName), () -> {
index d0fc9fa14cef5ee7be0f3a72de888bfdec172a36..67f04fc508af4fc4113b86e51aa8757b7f65b76e 100644 (file)
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
 
 public final class HwvtepHAUtil {
 
-    static Logger LOG = LoggerFactory.getLogger(HwvtepHAUtil.class);
+    private static final Logger LOG = LoggerFactory.getLogger(HwvtepHAUtil.class);
 
     //TODO reuse HWvtepSouthboundConstants
     public static final String HA_ENABLED = "ha_enabled";
index 0d33e9d41d29f92f6f457127e3f0c137199fa425..7c646c6c45521157b2290fbbf06139742898985a 100644 (file)
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
 
 public class NodeConnectedHandler {
 
-    static Logger LOG = LoggerFactory.getLogger(NodeConnectedHandler.class);
+    private static final Logger LOG = LoggerFactory.getLogger(NodeConnectedHandler.class);
 
     GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
     PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
index 81df859482a969da69a26bd87db4b59d7e0ca60f..2eecca0685ec559fe6261e789012c3c831f6252e 100644 (file)
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
 @Singleton
 public class NodeCopier implements INodeCopier {
 
-    static Logger LOG = LoggerFactory.getLogger(NodeCopier.class);
+    private static final Logger LOG = LoggerFactory.getLogger(NodeCopier.class);
 
     GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
     PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
@@ -57,11 +57,12 @@ public class NodeCopier implements INodeCopier {
         this.db = db;
     }
 
+    @Override
     public void copyGlobalNode(Optional<Node> srcGlobalNodeOptional,
-                        InstanceIdentifier<Node> srcPath,
-                        InstanceIdentifier<Node> dstPath,
-                        LogicalDatastoreType logicalDatastoreType,
-                        ReadWriteTransaction tx) throws ReadFailedException {
+                               InstanceIdentifier<Node> srcPath,
+                               InstanceIdentifier<Node> dstPath,
+                               LogicalDatastoreType logicalDatastoreType,
+                               ReadWriteTransaction tx) throws ReadFailedException {
         if (!srcGlobalNodeOptional.isPresent() && logicalDatastoreType == CONFIGURATION) {
             Futures.addCallback(tx.read(logicalDatastoreType, srcPath), new FutureCallback<Optional<Node>>() {
                 @Override
@@ -139,6 +140,7 @@ public class NodeCopier implements INodeCopier {
         }
     }
 
+    @Override
     public void copyPSNode(Optional<Node> srcPsNodeOptional,
                            InstanceIdentifier<Node> srcPsPath,
                            InstanceIdentifier<Node> dstPsPath,
index 622e5e7ed6b9cee89ed1f327930a24cd4a6d22a2..489ed1cf3a7cff1ef957a9f79a42db42b2cfe7b1 100644 (file)
@@ -25,9 +25,14 @@ import org.opendaylight.netvirt.elan.l2gw.ha.handlers.IHAEventHandler;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.NodeCopier;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Singleton
 public class HAConfigNodeListener extends HwvtepNodeBaseListener {
+
+    private static final Logger LOG = LoggerFactory.getLogger(HAConfigNodeListener.class);
+
     private final IHAEventHandler haEventHandler;
     private final NodeCopier nodeCopier;
 
index f543f684b2510b56e638495dc5a41256ecc7f436..0d6774b6103ef66063a9fccd6ccafdfc10f636f9 100644 (file)
@@ -18,7 +18,7 @@ import org.slf4j.LoggerFactory;
 
 public final class HAJobScheduler implements Thread.UncaughtExceptionHandler {
 
-    private static final Logger LOG = LoggerFactory.getLogger(HAOpClusteredListener.class);
+    private static final Logger LOG = LoggerFactory.getLogger(HAJobScheduler.class);
     ExecutorService executorService;
 
     static HAJobScheduler instance = new HAJobScheduler();
index 33033e4500d26d283fdc45a03540d9f97ce98003..23583fff418031658e4320ea4090680bf57f32c5 100644 (file)
@@ -112,9 +112,9 @@ public class HAOpClusteredListener extends HwvtepNodeBaseListener implements Clu
 
 
         if (!wasHAChild && isHAChild) {
-            LOG.debug(getNodeId(childPath) + " " + "became ha_child");
+            LOG.debug("{} became ha_child", getNodeId(childPath));
         } else if (wasHAChild && !isHAChild) {
-            LOG.debug(getNodeId(childPath) + " " + "unbecome ha_child");
+            LOG.debug("{} unbecome ha_child", getNodeId(childPath));
         }
     }
 
index f2fcb9f549651d0ec76ca56f7ac46a8b52474a5a..edefaf07fc2161fc9a6024eea40d006325c3570e 100644 (file)
@@ -33,10 +33,14 @@ import org.opendaylight.netvirt.elan.l2gw.ha.handlers.NodeCopier;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Singleton
 public class HAOpNodeListener extends HwvtepNodeBaseListener {
 
+    private static final Logger LOG = LoggerFactory.getLogger(HAOpNodeListener.class);
+
     static BiPredicate<String, InstanceIdentifier<Node>> IS_PS_CHILD_TO_GLOBAL_NODE = (globalNodeId, iid) -> {
         String psNodeId = iid.firstKeyOf(Node.class).getNodeId().getValue();
         return psNodeId.startsWith(globalNodeId) && psNodeId.contains("physicalswitch");
index ba7581a18ddaecc2743028f3b5e0e1740844602a..6122644bf5740cfa79b479cb5173e0b8510fb31f 100644 (file)
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
 
 public abstract class HwvtepNodeBaseListener implements DataTreeChangeListener<Node>, AutoCloseable {
 
-    public static final Logger LOG = LoggerFactory.getLogger(HwvtepNodeBaseListener.class);
+    private static final Logger LOG = LoggerFactory.getLogger(HwvtepNodeBaseListener.class);
     private static final int STARTUP_LOOP_TICK = 500;
     private static final int STARTUP_LOOP_MAX_RETRIES = 8;
 
@@ -65,12 +65,8 @@ public abstract class HwvtepNodeBaseListener implements DataTreeChangeListener<N
                 processUpdatedNodes(changes, tx);
                 processDisconnectedNodes(changes, tx);
                 tx.submit().get();
-            } catch (InterruptedException e1) {
-                LOG.error("InterruptedException " + e1.getMessage());
-            } catch (ExecutionException e2) {
-                LOG.error("ExecutionException" + e2.getMessage());
-            } catch (ReadFailedException e3) {
-                LOG.error("ReadFailedException" + e3.getMessage());
+            } catch (InterruptedException | ExecutionException | ReadFailedException e) {
+                LOG.error("Error processing data-tree changes", e);
             }
         });
     }
index b7a0bc747f62223958a988719375c245eef3ed77..f91ddb2dd61a05c20097909c930f29108266567c 100644 (file)
@@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory;
 @Singleton
 public final class ManagerListener extends AsyncClusteredDataTreeChangeListenerBase<Managers, ManagerListener> {
 
-    private static final Logger LOG = LoggerFactory.getLogger(HAOpClusteredListener.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ManagerListener.class);
 
     private final DataBroker dataBroker;
 
index 235994bca97c0dd080f383130584265b2daecfce..8e22a4f29eb35a9847280027b33db0e5b03a5213 100644 (file)
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
 
 public abstract class MergeCommandsAggregator<BuilderTypeT extends Builder, AugTypeT extends DataObject> {
 
-    public static final Logger LOG = LoggerFactory.getLogger(MergeCommandsAggregator.class);
+    private static final Logger LOG = LoggerFactory.getLogger(MergeCommandsAggregator.class);
 
     protected Map<Class<?>, MergeCommand> commands = new HashMap<>();
 
index 1985830b296f47abb9b76a6b3da3184efc62d85e..b4eba7e3055a1c658ef99a7ad6e778899a12e5bc 100644 (file)
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 public abstract class ChildListener<P extends DataObject, C extends DataObject, G>
         implements DataTreeChangeListener<P>, AutoCloseable {
 
-    public static final Logger LOG = LoggerFactory.getLogger(ChildListener.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ChildListener.class);
     private static final long STARTUP_LOOP_TICK = 500;
     private static final int STARTUP_LOOP_MAX_RETRIES = 8;
 
index d7a5079744f283835857497cb2220e4589c16899..f43258472b1a0c2a6f4a86929e122213f83e6ed3 100644 (file)
@@ -293,7 +293,7 @@ public class HwvtepPhysicalSwitchListener
             LOG.trace("Updating cache for node {}", globalNodeIid);
             L2GatewayDevice l2GwDevice = l2GatewayCache.get(psName);
             if (childConnectedAfterParent.test(l2GwDevice, globalNodeIid)) {
-                LOG.trace("Device {} {} is already Connected by ",
+                LOG.trace("Device {} {} is already Connected by {}",
                         psName, globalNodeId, l2GwDevice.getHwvtepNodeId());
                 return;
             }
@@ -358,7 +358,7 @@ public class HwvtepPhysicalSwitchListener
                         l2GwDevice.getL2GatewayIds(), psName, tunnelIpAddr);
                 l2gwServiceProvider.provisionItmAndL2gwConnection(l2GwDevice, psName, hwvtepNodeId, tunnelIpAddr);
             } else {
-                LOG.info("l2gw.provision.skip {}", hwvtepNodeId, psName);
+                LOG.info("l2gw.provision.skip {}:{}", hwvtepNodeId, psName);
             }
         }
         elanClusterUtils.runOnlyInOwnerNode("Stale entry cleanup", () -> {
index 831d81dd0f6453efd75ad09b7e59052dbc9a2209..99dc2947d54030d132f67ce42b2600af80ae4807 100644 (file)
@@ -46,11 +46,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Singleton
 public class LocalUcastMacListener extends ChildListener<Node, LocalUcastMacs, String>
         implements ClusteredDataTreeChangeListener<Node> {
 
+    private static final Logger LOG = LoggerFactory.getLogger(LocalUcastMacListener.class);
     public static final String NODE_CHECK = "physical";
 
     private static final Predicate<InstanceIdentifier<Node>> IS_PS_NODE_IID =
index 5373249cdded4ede814009594bc63327b9c6d197..74d4881e697a7171690520485c6ac259ac601c08 100644 (file)
@@ -546,7 +546,7 @@ public class ElanL2GatewayUtils {
 
                     @Override
                     public void onFailure(Throwable throwable) {
-                        LOG.error("Failed to read config topology node ", nodeIid);
+                        LOG.error("Failed to read config topology node {}", nodeIid);
                     }
                 }, MoreExecutors.directExecutor());
     }
@@ -584,8 +584,8 @@ public class ElanL2GatewayUtils {
 
             @Override
             public void onFailure(Throwable error) {
-                LOG.warn(String.format("Failed during batch delete of elan [%s] macs from l2gw device [%s]. "
-                        + "Retrying with sequential deletes.", elanName, hwvtepNodeId), error);
+                LOG.warn("Failed during batch delete of elan {} macs from l2gw device {}. "
+                        + "Retrying with sequential deletes.", elanName, hwvtepNodeId, error);
                 if (lstElanMacs != null && !lstElanMacs.isEmpty()) {
                     for (MacAddress mac : lstElanMacs) {
                         HwvtepUtils.deleteRemoteUcastMac(broker, new NodeId(hwvtepNodeId), logicalSwitch, mac);
@@ -783,7 +783,7 @@ public class ElanL2GatewayUtils {
                 dpId = rpcResult.getResult().getDpid();
             }
         } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Failed to get the DPN ID for interface {}: {} ", interfaceName, e);
+            LOG.error("Failed to get the DPN ID for interface {}", interfaceName, e);
         }
         return dpId;
     }
@@ -989,7 +989,7 @@ public class ElanL2GatewayUtils {
             if (rpcResult.isSuccessful()) {
                 LOG.info("Created ITM tunnels for {}", hwvtepId);
             } else {
-                LOG.error("Failed to create ITM Tunnels: ", rpcResult.getErrors());
+                LOG.error("Failed to create ITM Tunnels: {}", rpcResult.getErrors());
             }
         } catch (InterruptedException | ExecutionException e) {
             LOG.error("RPC to create ITM tunnels failed", e);
index 8b508be52c5b40adf5cc81603dc646087a9fde57..5e8453089028edec7f6a689bc5d69b16f64b36b5 100644 (file)
@@ -88,7 +88,7 @@ public class ElanDmacUtils {
                     elanItmUtils.getExternalTunnelItmEgressAction(dpId, new NodeId(extDeviceNodeId), vni);
             mkInstructions.add(MDSALUtil.buildApplyActionsInstruction(actions));
         } catch (Exception e) {
-            LOG.error("Could not get Egress Actions for DpId=" + dpId + ", externalNode=" + extDeviceNodeId, e);
+            LOG.error("Could not get Egress Actions for DpId {} externalNode {}", dpId, extDeviceNodeId, e);
         }
 
         return MDSALUtil.buildFlowNew(NwConstants.ELAN_DMAC_TABLE,
index 05ee64fb3d5bb746b3d8b6ca957bb490b3a021b4..2bdb2e7d72027c0bf0d86a3bfb50ba120526dc79 100644 (file)
@@ -49,18 +49,16 @@ public class ElanForwardingEntriesHandler {
     public void updateElanInterfaceForwardingTablesList(String elanInstanceName, String interfaceName,
             String existingInterfaceName, MacEntry mac, WriteTransaction tx) {
         if (existingInterfaceName.equals(interfaceName)) {
-            LOG.error(String.format(
-                    "Static MAC address %s has already been added for the same ElanInstance "
-                            + "%s on the same Logical Interface Port %s."
+            LOG.error("Static MAC address {} has already been added for the same ElanInstance "
+                            + "{} on the same Logical Interface Port {}."
                             + " No operation will be done.",
-                    mac.getMacAddress().toString(), elanInstanceName, interfaceName));
+                    mac.getMacAddress().toString(), elanInstanceName, interfaceName);
         } else {
-            LOG.warn(String.format(
-                    "Static MAC address %s had already been added for ElanInstance %s on Logical Interface Port %s. "
+            LOG.warn("Static MAC address {} had already been added for ElanInstance {} on Logical Interface Port {}. "
                             + "This would be considered as MAC movement scenario and old static mac will be removed "
                             + "and new static MAC will be added"
-                            + "for ElanInstance %s on Logical Interface Port %s",
-                    mac.getMacAddress().toString(), elanInstanceName, interfaceName, elanInstanceName, interfaceName));
+                            + "for ElanInstance {} on Logical Interface Port {}",
+                    mac.getMacAddress().toString(), elanInstanceName, interfaceName, elanInstanceName, interfaceName);
             //Update the  ElanInterface Forwarding Container & ElanForwarding Container
             deleteElanInterfaceForwardingTablesList(existingInterfaceName, mac, tx);
             createElanInterfaceForwardingTablesList(interfaceName, mac, tx);
index 64a784edcf2126740a6885fc3befe0b84c2fc526..f4aeb825860b124bc155227f28f69b8679c44f18 100644 (file)
@@ -275,7 +275,7 @@ public class ElanItmUtils {
                 LOG.warn("RPC call to ITM.GetExternalTunnelInterfaceName failed with error: {}", rpcResult.getErrors());
             }
         } catch (NullPointerException | InterruptedException | ExecutionException e) {
-            LOG.error("Failed to get external tunnel interface name for sourceNode: {} and dstNode: {}: {} ",
+            LOG.error("Failed to get external tunnel interface name for sourceNode: {} and dstNode: {}",
                     sourceNode, dstNode, e);
         }
         return tunnelInterfaceName;
index fec60d8e96a84588c77e9faed1ca6459175141c3..554f7ba60ac37356578e59c7cbbef281c4551331 100755 (executable)
@@ -960,8 +960,8 @@ public class ElanUtils {
         if (etreeInterface != null && etreeInterface.getEtreeInterfaceType() == EtreeInterfaceType.Root) {
             EtreeLeafTagName etreeTagName = elanEtreeUtils.getEtreeLeafTagByElanTag(elanTag);
             if (etreeTagName == null) {
-                LOG.warn("Interface " + interfaceName
-                        + " seems like it belongs to Etree but etreeTagName from elanTag " + elanTag + " is null.");
+                LOG.warn("Interface {} seems like it belongs to Etree but etreeTagName from elanTag {} is null.",
+                        interfaceName, elanTag);
             } else {
                 flowEntity = buildRemoteDmacFlowEntry(srcDpId, destDpId, lportTagOrVni,
                         etreeTagName.getEtreeLeafTag().getValue(), macAddress, displayName, elanInstance);
@@ -1016,8 +1016,8 @@ public class ElanUtils {
             }
             mkInstructions.add(MDSALUtil.buildApplyActionsInstruction(actions));
         } catch (Exception e) {
-            LOG.error("Could not get egress actions to add to flow for srcDpId=" + srcDpId + ", destDpId=" + destDpId
-                    + ", lportTag/VNI=" + lportTagOrVni, e);
+            LOG.error("Could not get egress actions to add to flow for srcDpId {}, destDpId {}, lportTag/VNI {}",
+                    srcDpId,  destDpId, lportTagOrVni, e);
         }
 
         Flow flow = MDSALUtil.buildFlowNew(NwConstants.ELAN_DMAC_TABLE,
@@ -1250,7 +1250,7 @@ public class ElanUtils {
             }
         } catch (InterruptedException | ExecutionException e) {
             LOG.error("Error in RPC call removeTerminatingServiceActions for ELAN with serviceId {} on "
-                    + "dpn {}: {}", serviceId, destDpId, e);
+                    + "dpn {}", serviceId, destDpId, e);
         }
     }
 
index 687c76dafe42860d52733fb1b32839c75cdbeb9e..2266cba718c8a7eba5fa159a6dcb3f16f2e566cf 100644 (file)
@@ -112,7 +112,7 @@ public class TransportZoneNotificationUtil {
                     elanInstanceCache.get(elanInt.getElanInstanceName()).orNull())) {
                 return true;
             } else {
-                LOG.debug("Non-VXLAN elanInstance: " + elanInt.getElanInstanceName());
+                LOG.debug("Non-VXLAN elanInstance: {}", elanInt.getElanInstanceName());
             }
         }
 
@@ -439,7 +439,7 @@ public class TransportZoneNotificationUtil {
             String localIp = southBoundUtils.getOpenvswitchOtherConfig(node.get(), LOCAL_IP);
             if (localIp == null) {
                 LOG.error("missing local_ip key in ovsdb:openvswitch-other-configs in operational"
-                        + " network-topology for node: " + node.get().getNodeId().getValue());
+                        + " network-topology for node: {}", node.get().getNodeId().getValue());
             } else {
                 return localIp;
             }
@@ -465,7 +465,7 @@ public class TransportZoneNotificationUtil {
         Optional<BridgeRefEntry> optionalBridgeRefEntry =
                 tx.read(LogicalDatastoreType.OPERATIONAL, bridgeRefInfoPath).checkedGet();
         if (!optionalBridgeRefEntry.isPresent()) {
-            LOG.error("no bridge ref entry found for dpnId: " + dpnId);
+            LOG.error("no bridge ref entry found for dpnId {}", dpnId);
             return Optional.absent();
         }
 
@@ -475,7 +475,7 @@ public class TransportZoneNotificationUtil {
         // FIXME: Read this through a cache
         Optional<Node> optionalNode = tx.read(LogicalDatastoreType.OPERATIONAL, nodeId).checkedGet();
         if (!optionalNode.isPresent()) {
-            LOG.error("missing node for dpnId: " + dpnId);
+            LOG.error("missing node for dpnId {}", dpnId);
         }
         return optionalNode;
     }