Fix Bug 271
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / GroupConvertor.java
index 1e6b4f8f2e37e8a0c65ec6d3146c52f056dfebd8..f36e84043181b315c2ef7e546938a2ac6b79d54e 100644 (file)
@@ -1,5 +1,6 @@
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
 
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -42,10 +43,10 @@ public final class GroupConvertor {
 
     }
 
-    public static GroupModInput toGroupModInput(
+    public static GroupModInputBuilder toGroupModInput(
 
-    org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group source, short version) {
-        List<BucketsList> bucketLists = new ArrayList<BucketsList>();
+    org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group source, short version,BigInteger datapathid) {
+        List<BucketsList> bucketLists = null;
         GroupModInputBuilder groupModInputBuilder = new GroupModInputBuilder();
         if (source instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput) {
             groupModInputBuilder.setCommand(GroupModCommand.OFPGCADD);
@@ -71,19 +72,20 @@ public final class GroupConvertor {
             groupModInputBuilder.setType(GroupType.OFPGTFF);
         }
 
-        
         groupModInputBuilder.setGroupId(new GroupId(source.getGroupId().getValue()));
         // Only if the bucket is configured for the group then add it
-        if (source.getBuckets().getBucket().size() != 0) {
-            getbucketList(source.getBuckets(), bucketLists, version, source.getGroupType().getIntValue());
+        if ((source.getBuckets() != null) && (source.getBuckets().getBucket().size() != 0)) {
+
+            bucketLists = new ArrayList<BucketsList>();
+            getbucketList(source.getBuckets(), bucketLists, version, source.getGroupType().getIntValue(),datapathid);
             groupModInputBuilder.setBucketsList(bucketLists);
         }
         groupModInputBuilder.setVersion(version);
-        return groupModInputBuilder.build();
+        return groupModInputBuilder;
 
     }
 
-    private static void getbucketList(Buckets buckets, List<BucketsList> bucketLists, short version, int groupType) {
+    private static void getbucketList(Buckets buckets, List<BucketsList> bucketLists, short version, int groupType,BigInteger datapathid) {
 
         Iterator<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket> groupBucketIterator = buckets
                 .getBucket().iterator();
@@ -129,7 +131,7 @@ public final class GroupConvertor {
                 bucketBuilder.setWatchPort(new PortNumber(BinContent.intToUnsignedLong(DEFAULT_WATCH_PORT.intValue())));
             }
 
-            List<ActionsList> bucketActionList = ActionConvertor.getActionList(groupBucket.getAction(), version);
+            List<ActionsList> bucketActionList = ActionConvertor.getActionList(groupBucket.getAction(), version,datapathid);
             bucketBuilder.setActionsList(bucketActionList);
             BucketsList bucket = bucketBuilder.build();
             bucketLists.add(bucket);