From: Robert Varga Date: Thu, 13 Feb 2014 02:27:26 +0000 (+0100) Subject: Do not rely od DataStore for all connected nodes X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~449^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=4987483d864bb1cac421db27150690f956b9d3e5 Do not rely od DataStore for all connected nodes Now that we track all connected flow-capable nodes we do need to go and read all nodes just to find them. Just look at which handlers are currently created. Change-Id: I1a33b53399d0de0e2cdbdbd90512a09933d127c8 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsProvider.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsProvider.java index 4851b441c3..8dea40473d 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsProvider.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsProvider.java @@ -94,11 +94,10 @@ public class StatisticsProvider implements AutoCloseable { private static final Logger spLogger = LoggerFactory.getLogger(StatisticsProvider.class); private final MultipartMessageManager multipartMessageManager = new MultipartMessageManager(); - private final InstanceIdentifier nodesIdentifier = InstanceIdentifier.builder(Nodes.class).toInstance(); private final DataProviderService dps; //Local caching of stats - private final ConcurrentMap handlers = new ConcurrentHashMap<>(); + private final ConcurrentMap handlers = new ConcurrentHashMap<>(); private OpendaylightGroupStatisticsService groupStatsService; @@ -236,19 +235,9 @@ public class StatisticsProvider implements AutoCloseable { return dps.beginTransaction(); } - private void statsRequestSender(){ - - List targetNodes = getAllConnectedNodes(); - - if(targetNodes == null) - return; - - - for (Node targetNode : targetNodes){ - - if(targetNode.getAugmentation(FlowCapableNode.class) != null){ - sendStatisticsRequestsToNode(targetNode.getKey()); - } + private void statsRequestSender() { + for (NodeStatisticsHandler h : handlers.values()) { + sendStatisticsRequestsToNode(h.getTargetNodeKey()); } } @@ -472,15 +461,6 @@ public class StatisticsProvider implements AutoCloseable { return handler; } - private List getAllConnectedNodes(){ - Nodes nodes = (Nodes) dps.readOperationalData(nodesIdentifier); - if(nodes == null) - return null; - - spLogger.debug("Number of connected nodes : {}",nodes.getNode().size()); - return nodes.getNode(); - } - private List getTablesFromNode(NodeKey nodeKey){ InstanceIdentifier nodesIdentifier = InstanceIdentifier.builder(Nodes.class).child(Node.class,nodeKey).augmentation(FlowCapableNode.class).toInstance();