1) Fixed minor issue caused by change in port statistics models
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / GroupStatsResponseConvertor.java
index 4b68c70879749f3d497fcf71ce4e33bcfb77e4e3..332e5ac100ae020a6e24d771f4888411a6f3c390 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * Copyright IBM Corporation, 2013.  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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
 
 import java.util.ArrayList;
@@ -7,20 +15,28 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter64;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.Buckets;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.BucketsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.DurationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.buckets.BucketCounter;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.buckets.BucketCounterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.buckets.BucketCounterKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.group.stats.BucketStats;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc._case.multipart.reply.group.desc.GroupDesc;
 
 /**
  * Class is an utility class for converting group related statistics messages coming from switch to MD-SAL
@@ -31,9 +47,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 public class GroupStatsResponseConvertor {
 
     public List<GroupStats> toSALGroupStatsList(
-            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats> allGroupStats){
-        List<GroupStats> convertedSALGroups = new ArrayList<GroupStats>();
-        for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats group: allGroupStats){
+            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
+            .multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats> allGroupStats){
+        List<GroupStats> convertedSALGroups = new ArrayList<>();
+        for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
+                .multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats group: allGroupStats){
             convertedSALGroups.add(toSALGroupStats(group));
         }
         return convertedSALGroups;
@@ -45,7 +63,8 @@ public class GroupStatsResponseConvertor {
      * @return GroupStats -- GroupStats defined in MD-SAL
      */
     public GroupStats toSALGroupStats(
-            org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats groupStats){
+            org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.
+            multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats groupStats){
         
         GroupStatsBuilder salGroupStats = new GroupStatsBuilder();
         
@@ -57,24 +76,29 @@ public class GroupStatsResponseConvertor {
         time.setNanosecond(new Counter32(groupStats.getDurationNsec()));
         
         salGroupStats.setDuration(time.build());
-        salGroupStats.setGroupId(groupStats.getGroupId().intValue());
+        salGroupStats.setGroupId(new GroupId(groupStats.getGroupId().getValue()));
         salGroupStats.setPacketCount(new Counter64(groupStats.getPacketCount()));
         salGroupStats.setRefCount(new Counter32(groupStats.getRefCount()));
+        salGroupStats.setKey(new GroupStatsKey(salGroupStats.getGroupId()));
         
         return salGroupStats.build();
     }
     
     public Buckets toSALBuckets(
-            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.group.stats.BucketStats> bucketStats ){
+            List<BucketStats> bucketStats ){
         
         BucketsBuilder salBuckets  = new BucketsBuilder();
         
-        List<BucketCounter> allBucketStats = new ArrayList<BucketCounter>();
-        
-        for( org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.group.stats.BucketStats bucketStat : bucketStats){
+        List<BucketCounter> allBucketStats = new ArrayList<>();
+        int bucketKey = 0;
+        for(BucketStats bucketStat : bucketStats){
             BucketCounterBuilder bucketCounter = new BucketCounterBuilder();
             bucketCounter.setByteCount(new Counter64(bucketStat.getByteCount()));
             bucketCounter.setPacketCount(new Counter64(bucketStat.getPacketCount()));
+            BucketId bucketId = new BucketId((long)bucketKey);
+            bucketCounter.setKey(new BucketCounterKey(bucketId));
+            bucketCounter.setBucketId(bucketId);
+            bucketKey++;
             allBucketStats.add(bucketCounter.build());
         }
         salBuckets.setBucketCounter(allBucketStats);
@@ -83,11 +107,10 @@ public class GroupStatsResponseConvertor {
     
     
     public List<GroupDescStats> toSALGroupDescStatsList(
-            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.
-            multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc> allGroupDescStats){
+            List<GroupDesc> allGroupDescStats){
         
-        List<GroupDescStats> convertedSALGroupsDesc = new ArrayList<GroupDescStats>();
-        for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc groupDesc: allGroupDescStats){
+        List<GroupDescStats> convertedSALGroupsDesc = new ArrayList<>();
+        for(GroupDesc groupDesc: allGroupDescStats){
             convertedSALGroupsDesc.add(toSALGroupDescStats(groupDesc));
         }
         return convertedSALGroupsDesc;
@@ -103,34 +126,43 @@ public class GroupStatsResponseConvertor {
         GroupDescStatsBuilder salGroupDescStats = new GroupDescStatsBuilder();
         
         salGroupDescStats.setBuckets(toSALBucketsDesc(groupDesc.getBucketsList()));
-        salGroupDescStats.setGroupId(new GroupId(groupDesc.getGroupId()));
+        salGroupDescStats.setGroupId(new GroupId(groupDesc.getGroupId().getValue()));
         salGroupDescStats.setGroupType(GroupTypes.forValue(groupDesc.getType().getIntValue()));
+        salGroupDescStats.setKey(new GroupDescStatsKey(salGroupDescStats.getGroupId()));
         
         return salGroupDescStats.build();
     }
     
     public  org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets toSALBucketsDesc(
-            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList> bucketDescStats ){
+            List<BucketsList> bucketDescStats ){
         
         org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder salBucketsDesc  = 
                 new org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder();
-        List<Bucket> allBuckets = new ArrayList<Bucket>();
-        
-        for( org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList bucketDetails : bucketDescStats){
+        List<Bucket> allBuckets = new ArrayList<>();
+        int bucketKey = 0;
+        for(BucketsList bucketDetails : bucketDescStats){
             BucketBuilder bucketDesc = new BucketBuilder();
             List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> convertedSalActions = 
-                    ActionConvertor.toSALBucketActions (bucketDetails.getActionsList());
+                    ActionConvertor.toMDSalActions (bucketDetails.getActionsList());
             
-            List<Action> actions = new ArrayList<Action>(); 
+            List<Action> actions = new ArrayList<>(); 
+            int actionKey = 0;
             for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action : convertedSalActions){
-                ActionBuilder warppedAction = new ActionBuilder();
-                warppedAction.setAction(action);
-                actions.add(warppedAction.build());
+                ActionBuilder wrappedAction = new ActionBuilder();
+                wrappedAction.setAction(action);
+                wrappedAction.setKey(new ActionKey(actionKey));
+                wrappedAction.setOrder(actionKey);
+                actions.add(wrappedAction.build());
+                actionKey++;
             }
             bucketDesc.setAction(actions);
             bucketDesc.setWeight(bucketDetails.getWeight());
             bucketDesc.setWatchPort(bucketDetails.getWatchPort().getValue());
             bucketDesc.setWatchGroup(bucketDetails.getWatchGroup());
+            BucketId bucketId = new BucketId((long)bucketKey);
+            bucketDesc.setBucketId(bucketId);
+            bucketDesc.setKey(new BucketKey(bucketId));
+            bucketKey++;
             allBuckets.add(bucketDesc.build());
         }
         salBucketsDesc.setBucket(allBuckets);