From a3a28e8138fa25170b01e6b51a44490f002f6e91 Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Mon, 6 May 2013 12:42:24 -0700 Subject: [PATCH] Change to update node properties - inventoryServiceShim to trigger node description update - Inventory Service to accept node properties updates for known nodes only - Inventory Service to publish only effective node properties update and on default container only - Minor changes to the Property classes toString() methods - Removed toString() overridden method in UpdateType as default toString() which prints the enum name is self explicative and serves better in logs Signed-off-by: Alessandro Boch --- .../openflow/internal/Activator.java | 5 +- .../openflow/internal/InventoryService.java | 68 ++++++++----------- .../internal/InventoryServiceShim.java | 35 +++++++++- .../controller/sal/core/Actions.java | 3 +- .../controller/sal/core/Buffers.java | 3 +- .../controller/sal/core/Capabilities.java | 3 +- .../controller/sal/core/Config.java | 11 ++- .../controller/sal/core/Latency.java | 9 +-- .../controller/sal/core/Name.java | 11 ++- .../controller/sal/core/Property.java | 10 +-- .../controller/sal/core/State.java | 11 ++- .../controller/sal/core/Tables.java | 3 +- .../controller/sal/core/Tier.java | 5 +- .../controller/sal/core/TimeStamp.java | 11 ++- .../controller/sal/core/UpdateType.java | 6 -- .../internal/SwitchManagerImpl.java | 10 +-- 16 files changed, 107 insertions(+), 97 deletions(-) diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java index 9b7d1e3bc2..30834cbe13 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java @@ -121,7 +121,6 @@ public class Activator extends ComponentActivatorAbstractBase { // export the service c.setInterface( new String[] { IPluginInInventoryService.class.getName(), - IStatisticsListener.class.getName(), IInventoryShimInternalListener.class.getName() }, null); @@ -336,8 +335,8 @@ public class Activator extends ComponentActivatorAbstractBase { } if (imp.equals(InventoryServiceShim.class)) { - c.setInterface(new String[] { IContainerListener.class.getName() }, - null); + c.setInterface(new String[] { IContainerListener.class.getName(), + IStatisticsListener.class.getName()}, null); c.add(createServiceDependency() .setService(IController.class, "(name=Controller)") diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java index 3a3eaad93e..8af9b3ea05 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java @@ -20,14 +20,12 @@ import java.util.concurrent.ConcurrentMap; import org.apache.felix.dm.Component; import org.opendaylight.controller.protocol_plugin.openflow.IInventoryShimInternalListener; -import org.opendaylight.controller.protocol_plugin.openflow.IStatisticsListener; import org.opendaylight.controller.protocol_plugin.openflow.core.IController; import org.opendaylight.controller.protocol_plugin.openflow.core.ISwitch; import org.opendaylight.controller.sal.core.Actions; import org.opendaylight.controller.sal.core.Buffers; import org.opendaylight.controller.sal.core.Capabilities; import org.opendaylight.controller.sal.core.ConstructionException; -import org.opendaylight.controller.sal.core.Description; import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.Node.NodeIDType; import org.opendaylight.controller.sal.core.NodeConnector; @@ -38,7 +36,6 @@ import org.opendaylight.controller.sal.core.UpdateType; import org.opendaylight.controller.sal.inventory.IPluginInInventoryService; import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService; import org.opendaylight.controller.sal.utils.GlobalConstants; -import org.openflow.protocol.statistics.OFDescriptionStatistics; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,7 +48,7 @@ import org.slf4j.LoggerFactory; * */ public class InventoryService implements IInventoryShimInternalListener, - IPluginInInventoryService, IStatisticsListener { + IPluginInInventoryService { protected static final Logger logger = LoggerFactory .getLogger(InventoryService.class); private Set pluginOutInventoryServices = Collections @@ -142,7 +139,7 @@ public class InventoryService implements IInventoryShimInternalListener, try { node = new Node(NodeIDType.OPENFLOW, id); } catch (ConstructionException e) { - logger.error("",e); + logger.error("", e); } return node; @@ -197,8 +194,9 @@ public class InventoryService implements IInventoryShimInternalListener, @Override public ConcurrentMap> getNodeConnectorProps( Boolean refresh) { - if (nodeConnectorProps == null) + if (nodeConnectorProps == null) { return null; + } if (isDefaultContainer && refresh) { Map switches = controller.getSwitches(); @@ -230,9 +228,9 @@ public class InventoryService implements IInventoryShimInternalListener, switch (type) { case ADDED: case CHANGED: - if (propMap == null) + if (propMap == null) { propMap = new HashMap(); - + } if (props != null) { for (Property prop : props) { propMap.put(prop.getName(), prop); @@ -256,9 +254,10 @@ public class InventoryService implements IInventoryShimInternalListener, } private void addNode(Node node, Set props) { - logger.trace("{} added", node); - if (nodeProps == null) + logger.trace("{} added, props: {}", node, props); + if (nodeProps == null) { return; + } // update local cache Map propMap = new HashMap(); @@ -300,31 +299,31 @@ public class InventoryService implements IInventoryShimInternalListener, } } } - - private void updateSwitchProperty(Long switchId, Set propSet) { - // update local cache - Node node = OFSwitchToNode(controller.getSwitch(switchId)); - Map propMap = nodeProps.get(node); - if (propMap == null) { - propMap = new HashMap(); + + private void updateNode(Node node, Set properties) { + logger.trace("{} updated, props: {}", node, properties); + if (nodeProps == null || !nodeProps.containsKey(node) || + properties == null || properties.isEmpty()) { + return; } - boolean change = false; - for (Property prop : propSet) { - String propertyName = prop.getName(); - Property currentProp = propMap.get(propertyName); - if (!prop.equals(currentProp)) { - change = true; - propMap.put(propertyName, prop); + // Update local cache with new properties + Set newProperties = new HashSet(properties.size()); + Map propertyMap = nodeProps.get(node); + for (Property property : properties) { + String name = property.getName(); + Property currentProperty = propertyMap.get(name); + if (!property.equals(currentProperty)) { + propertyMap.put(name, property); + newProperties.add(property); } } - nodeProps.put(node, propMap); - // Update sal if any of the properties has changed - if (change) { + // Update SAL if we got new properties + if (!newProperties.isEmpty()) { synchronized (pluginOutInventoryServices) { for (IPluginOutInventoryService service : pluginOutInventoryServices) { - service.updateNode(node, UpdateType.CHANGED, propSet); + service.updateNode(node, UpdateType.CHANGED, newProperties); } } } @@ -339,19 +338,12 @@ public class InventoryService implements IInventoryShimInternalListener, case REMOVED: removeNode(node); break; + case CHANGED: + updateNode(node, props); + break; default: break; } } - @Override - public void descriptionRefreshed(Long switchId, - OFDescriptionStatistics descriptionStats) { - - Set propSet = new HashSet(1); - Description desc = new Description( - descriptionStats.getDatapathDescription()); - propSet.add(desc); - this.updateSwitchProperty(switchId, propSet); - } } diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java index b522063ad7..c472747a8e 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java @@ -19,6 +19,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import org.opendaylight.controller.protocol_plugin.openflow.IInventoryShimExternalListener; import org.opendaylight.controller.protocol_plugin.openflow.IInventoryShimInternalListener; +import org.opendaylight.controller.protocol_plugin.openflow.IStatisticsListener; import org.opendaylight.controller.protocol_plugin.openflow.core.IController; import org.opendaylight.controller.protocol_plugin.openflow.core.IMessageListener; import org.opendaylight.controller.protocol_plugin.openflow.core.ISwitch; @@ -28,6 +29,7 @@ import org.opendaylight.controller.sal.core.Buffers; import org.opendaylight.controller.sal.core.Capabilities; import org.opendaylight.controller.sal.core.ConstructionException; import org.opendaylight.controller.sal.core.ContainerFlow; +import org.opendaylight.controller.sal.core.Description; import org.opendaylight.controller.sal.core.IContainerListener; import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.Node.NodeIDType; @@ -41,6 +43,7 @@ import org.openflow.protocol.OFMessage; import org.openflow.protocol.OFPortStatus; import org.openflow.protocol.OFPortStatus.OFPortReason; import org.openflow.protocol.OFType; +import org.openflow.protocol.statistics.OFDescriptionStatistics; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,7 +55,7 @@ import org.slf4j.LoggerFactory; * */ public class InventoryServiceShim implements IContainerListener, - IMessageListener, ISwitchStateListener { + IMessageListener, ISwitchStateListener, IStatisticsListener { protected static final Logger logger = LoggerFactory .getLogger(InventoryServiceShim.class); private IController controller = null; @@ -351,6 +354,14 @@ public class InventoryServiceShim implements IContainerListener, inventoryShimInternalListener.updateNode(node, type, null); } break; + case CHANGED: + // Notify only the default Inventory Service + inventoryShimDefaultListener = inventoryShimInternalListeners + .get(GlobalConstants.DEFAULT.toString()); + if (inventoryShimDefaultListener != null) { + inventoryShimDefaultListener.updateNode(node, type, props); + } + break; default: break; } @@ -425,4 +436,26 @@ public class InventoryServiceShim implements IContainerListener, switchAdded(sw); } } + + @Override + public void descriptionRefreshed(Long switchId, + OFDescriptionStatistics descriptionStats) { + Node node; + try { + node = new Node(NodeIDType.OPENFLOW, switchId); + } catch (ConstructionException e) { + logger.error("{}", e.getMessage()); + return; + } + + Set properties = new HashSet(1); + Description desc = new Description( + descriptionStats.getDatapathDescription()); + properties.add(desc); + + // Notify all internal and external listeners + notifyInventoryShimListener(node, UpdateType.CHANGED, properties); + } + + } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java index 832c9565a5..6fb38a3a90 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java @@ -14,7 +14,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file Actions.java @@ -94,6 +93,6 @@ public class Actions extends Property { @Override public String toString() { - return "Actions[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Actions[" + actionsValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java index 9324806ada..91f647d45b 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java @@ -14,7 +14,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file Buffers.java @@ -70,6 +69,6 @@ public class Buffers extends Property { @Override public String toString() { - return "Buffers[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Buffers[" + buffersValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java index b239ed4739..d4c8cd1b56 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java @@ -14,7 +14,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file Capabilities.java @@ -87,6 +86,6 @@ public class Capabilities extends Property { @Override public String toString() { - return "Capabilities[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Capabilities[" + capabilitiesValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java index 505cc61816..f8a48997f8 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java @@ -8,12 +8,11 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; - -import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * The class represents Admin Config status @@ -64,6 +63,6 @@ public class Config extends Property { @Override public String toString() { - return "Config["+ReflectionToStringBuilder.toString(this)+"]"; + return "Config["+ configValue +"]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java index a7fd580b01..3958635914 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java @@ -9,13 +9,10 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; - import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * @file Latency.java diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java index bf67ed8861..6ac89952b3 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java @@ -9,12 +9,11 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; - -import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * The class represents the Name property of an element. @@ -59,6 +58,6 @@ public class Name extends Property { @Override public String toString() { - return "Name[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Name[" + nameValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java index 9e4475e071..15d9976106 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java @@ -10,12 +10,13 @@ package org.opendaylight.controller.sal.core; import java.io.Serializable; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file Property.java @@ -45,6 +46,7 @@ abstract public class Property implements Serializable { /** * Private constructor used for JAXB mapping */ + @SuppressWarnings("unused") private Property() { this.name = null; } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java index 693abd85d5..4edc1f1d23 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java @@ -9,12 +9,11 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; - -import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * The class represents the State property of an Edge @@ -65,6 +64,6 @@ public class State extends Property { @Override public String toString() { - return "State[" + ReflectionToStringBuilder.toString(this) + "]"; + return "State[" + stateValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java index 4775aa8712..4370c4c598 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java @@ -14,7 +14,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file Tables.java @@ -69,6 +68,6 @@ public class Tables extends Property { @Override public String toString() { - return "Tables[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Tables[" + tablesValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java index 89db9aab24..f45599f6c8 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java @@ -12,9 +12,8 @@ package org.opendaylight.controller.sal.core; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * The class represents the Tier property of a node @@ -61,6 +60,6 @@ public class Tier extends Property { @Override public String toString() { - return "Tier[" + ReflectionToStringBuilder.toString(this) + "]"; + return "Tier[" + tierValue + "]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java index cfdceac822..6b2467ee5d 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java @@ -9,12 +9,11 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; - -import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; /** * @file TimeStamp.java @@ -85,6 +84,6 @@ public class TimeStamp extends Property { @Override public String toString() { - return "TimeStamp[" + ReflectionToStringBuilder.toString(this) + "]"; + return "TimeStamp[" + timestampName + ": " + timestamp +"]"; } } diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java index 84883c6adc..2e9058abe8 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.sal.core; -import org.apache.commons.lang3.builder.ReflectionToStringBuilder; /** * @file UpdateType.java @@ -29,9 +28,4 @@ public enum UpdateType { public String getName() { return this.name; } - - @Override - public String toString() { - return "UpdateType[" + ReflectionToStringBuilder.toString(this) + "]"; - } } diff --git a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java index 8ed7e46275..79159e5ff1 100644 --- a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java +++ b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java @@ -715,7 +715,7 @@ public class SwitchManagerImpl implements ISwitchManager, } private void addNode(Node node, Set props) { - log.trace("{} added", node); + log.trace("{} added, props: {}", node, props); if (nodeProps == null) { return; } @@ -766,8 +766,9 @@ public class SwitchManagerImpl implements ISwitchManager, private void removeNode(Node node) { log.trace("{} removed", node); - if (nodeProps == null) + if (nodeProps == null) { return; + } nodeProps.remove(node); // check if span ports need to be cleaned up @@ -778,8 +779,9 @@ public class SwitchManagerImpl implements ISwitchManager, } private void updateNode(Node node, Set props) { - log.trace("{} updated", node); - if (nodeProps == null) { + log.trace("{} updated, props: {}", node, props); + if (nodeProps == null || !nodeProps.containsKey(node) || + props == null || props.isEmpty()) { return; } -- 2.36.6