Multipart processing - gett id from device context. 37/20237/1
authorJozef Gloncak <jgloncak@cisco.com>
Wed, 13 May 2015 11:32:20 +0000 (13:32 +0200)
committerJozef Gloncak <jgloncak@cisco.com>
Wed, 13 May 2015 11:32:22 +0000 (13:32 +0200)
For deleting of meter, group and flow statistics was used attitude,
where node id was get from statistic data.
This patch changed it to get node id from device context.

Change-Id: I0dbad1c246347b3fd9be7a097adda9c2c2f10bd1
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java

index 05ff9d495afab59dd6eebaf85a3e71ff1b384076..f59bbd662f1d329016b355ea8f69dd9a6e2fa71f 100644 (file)
@@ -188,14 +188,11 @@ public final class StatisticsGatheringUtils {
     }
 
     private static void processFlowStatistics(final Iterable<FlowsStatisticsUpdate> data, final DeviceContext deviceContext) {
-        boolean isFirstLoop = true;
+        final NodeId nodeId = deviceContext.getDeviceState().getNodeId();
+        final InstanceIdentifier<Node> nodeIdent = InstanceIdentifier.create(Nodes.class)
+                .child(Node.class, new NodeKey(nodeId));
+        deleteAllKnownFlows(deviceContext, nodeIdent);
         for (final FlowsStatisticsUpdate flowsStatistics : data) {
-            if (isFirstLoop) {
-                final InstanceIdentifier<Node> nodeIdent = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, new NodeKey(flowsStatistics.getId()));
-                deleteAllKnownFlows(deviceContext, nodeIdent);
-                isFirstLoop = false;
-            }
             for (final FlowAndStatisticsMapList flowStat : flowsStatistics.getFlowAndStatisticsMapList()) {
                 final FlowBuilder flowBuilder = new FlowBuilder(flowStat);
                 FlowId flowId = null;
@@ -296,13 +293,10 @@ public final class StatisticsGatheringUtils {
 
     private static void processMetersStatistics(final Iterable<MeterStatisticsUpdated> data,
                                                 final DeviceContext deviceContext) {
-        boolean isFirstLoop = true;
+        NodeId nodeId = deviceContext.getDeviceState().getNodeId();
+        final InstanceIdentifier<FlowCapableNode> fNodeIdent = getFlowCapableNodeInstanceIdentifier(nodeId);
+        deleteAllKnownMeters(deviceContext, fNodeIdent);
         for (MeterStatisticsUpdated meterStatisticsUpdated : data) {
-            final InstanceIdentifier<FlowCapableNode> fNodeIdent = getFlowCapableNodeInstanceIdentifier(meterStatisticsUpdated.getId());
-            if (isFirstLoop) {
-                deleteAllKnownMeters(deviceContext, fNodeIdent);
-                isFirstLoop = false;
-            }
             for (final MeterStats mStat : meterStatisticsUpdated.getMeterStats()) {
                 final MeterStatistics stats = new MeterStatisticsBuilder(mStat).build();
                 final MeterId meterId = mStat.getMeterId();
@@ -352,15 +346,10 @@ public final class StatisticsGatheringUtils {
     }
 
     private static void processGroupStatistics(final Iterable<GroupStatisticsUpdated> data, final DeviceContext deviceContext) {
-        boolean isFirstLoop = true; 
+        NodeId nodeId = deviceContext.getDeviceState().getNodeId();
+        final InstanceIdentifier<FlowCapableNode> fNodeIdent = getFlowCapableNodeInstanceIdentifier(nodeId);
+        deleteAllKnownGroups(deviceContext, fNodeIdent);
         for (GroupStatisticsUpdated groupStatistics : data) {
-            NodeId nodeId = groupStatistics.getId();
-            final InstanceIdentifier<FlowCapableNode> fNodeIdent = getFlowCapableNodeInstanceIdentifier(nodeId);
-            if (isFirstLoop) {
-                deleteAllKnownGroups(deviceContext, fNodeIdent);
-                isFirstLoop = false;
-            }
-    
             for (final GroupStats groupStats : groupStatistics.getGroupStats()) {
     
                 final InstanceIdentifier<Group> groupIdent = fNodeIdent.child(Group.class, new GroupKey(groupStats.getGroupId()));