Merge "added copyright"
authorAbhijit Kumbhare <abhijitk@us.ibm.com>
Wed, 15 Jan 2014 18:07:43 +0000 (18:07 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 15 Jan 2014 18:07:43 +0000 (18:07 +0000)
test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginGroupTestCommandProvider.java

index f2e3538c0a61bd8eccdc056b98e9768acfdfd469..aa29243215cc4a5057d7fe9a07e0178779206cd1 100644 (file)
@@ -12,11 +12,21 @@ import org.opendaylight.controller.md.sal.common.api.data.DataModification;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.data.DataBrokerService;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.VlanCfi;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.ControllerActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtlCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecNwTtlCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DropActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.FloodActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.FloodAllActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.HwPathActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.LoopbackActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopMplsActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopPbbActionCaseBuilder;
@@ -24,15 +34,34 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushMplsActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlTypeActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNextHopActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTosActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetQueueActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanCfiActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanIdActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanPcpActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SwPathActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.controller.action._case.ControllerActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.copy.ttl.in._case.CopyTtlInBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.copy.ttl.out._case.CopyTtlOutBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.mpls.ttl._case.DecMplsTtlBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.nw.ttl._case.DecNwTtl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.nw.ttl._case.DecNwTtlBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.drop.action._case.DropAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.drop.action._case.DropActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.flood.action._case.FloodActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.flood.all.action._case.FloodAllActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.hw.path.action._case.HwPathActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.loopback.action._case.LoopbackActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.output.action._case.OutputActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.pop.mpls.action._case.PopMplsActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.pop.pbb.action._case.PopPbbActionBuilder;
@@ -40,20 +69,36 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.push.mpls.action._case.PushMplsActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.push.pbb.action._case.PushPbbActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.push.vlan.action._case.PushVlanActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.dst.action._case.SetDlDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.src.action._case.SetDlSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.type.action._case.SetDlTypeActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.mpls.ttl.action._case.SetMplsTtlActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.next.hop.action._case.SetNextHopActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.dst.action._case.SetNwDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.src.action._case.SetNwSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.tos.action._case.SetNwTosActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.ttl.action._case.SetNwTtlActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.queue.action._case.SetQueueActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.dst.action._case.SetTpDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.src.action._case.SetTpSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.cfi.action._case.SetVlanCfiActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.id.action._case.SetVlanIdActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.pcp.action._case.SetVlanPcpActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.sw.path.action._case.SwPathActionBuilder;
 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.action.types.rev131112.address.address.Ipv4Builder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.OutputPortValues;
 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.Groups;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder;
 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.groups.Group;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
@@ -63,7 +108,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
@@ -75,6 +122,7 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
     private ProviderContext pc;
     private final BundleContext ctx;
     private Group testGroup;
+    private Group testGroup2;
     private Node testNode;
     private final String originalGroupName = "Foo";
     private final String updatedGroupName = "Bar";
@@ -110,515 +158,496 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
         return InstanceIdentifier.builder(Nodes.class).child(Node.class, node.getKey()).toInstance();
     }
 
-    private GroupBuilder createTestGroup() {
+    private GroupBuilder createTestGroup(String actiontype,String type,String mod) {
         // Sample data , committing to DataStore
+       
+       String GroupType = type;
+       String ActionType = actiontype;
+       String Groupmod = mod;
         DataModification modification = dataBrokerService.beginTransaction();
 
-        long id = 123;
+        long id = 1;
         GroupKey key = new GroupKey(new GroupId(id));
-        GroupBuilder group = new GroupBuilder();
-        BucketBuilder bucket = new BucketBuilder();
+        GroupBuilder group = new GroupBuilder();        
+        BucketBuilder bucket = new BucketBuilder();        
         bucket.setBucketId(new BucketId((long) 12));
-        group.setKey(key);
-        group.setGroupId(new GroupId(id));
-        PopVlanActionBuilder vlanAction = new PopVlanActionBuilder();
-        ActionBuilder action = new ActionBuilder();
-        action.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(vlanAction.build()).build());
-        action.setOrder(0);
-        List<Action> actions = new ArrayList<Action>();
-        actions.add(action.build());
-        bucket.setAction(actions);
+        bucket.setKey(new BucketKey(new BucketId((long) 12)));  
+        
+        if (GroupType == null) {
+            GroupType = "g1";
+        }
+        if(ActionType==null){
+               ActionType="a1";
+        }
+
+        switch (GroupType) {
+        case "g1":
+                group.setGroupType(GroupTypes.GroupSelect); 
+            break;
+        case "g2":
+           group.setGroupType(GroupTypes.GroupAll); 
+          break;
+        case "g3":
+            group.setGroupType(GroupTypes.GroupIndirect); 
+           break;
+        case "g4":
+            group.setGroupType(GroupTypes.GroupFf); 
+           break;
+        }
+        
+        switch (ActionType){
+        case "a1":
+                bucket.setAction(createPopVlanAction()); 
+               break;
+        case "a2":
+               bucket.setAction(createPushVlanAction()); 
+               break;
+        case "a3":
+               bucket.setAction(createPushMplsAction());  
+               break;
+        case "a4":
+               bucket.setAction(createPopMplsAction());  
+               break;  
+        case "a5":
+               bucket.setAction(createPopPbbAction());  
+               break;  
+        case "a6":
+               bucket.setAction(createPushPbbAction());  
+               break;   
+        case "a7":
+               bucket.setAction(createPushPbbAction());  
+               break;         
+        case "a8":
+               bucket.setAction(createCopyTtlInAction());  
+               break;  
+        case "a9":
+               bucket.setAction(createCopyTtlOutAction());  
+               break;  
+        case "a10":
+               bucket.setAction(createDecMplsTtlAction());  
+               break;  
+        case "a11":
+               bucket.setAction(createDecNwTtlAction());  
+               break;         
+        case "a12":
+               bucket.setAction(createSetQueueAction());   
+               break;        
+        case "a13":
+               bucket.setAction(createSetNwTtlAction());   
+               break;         
+        case "a14":
+               bucket.setAction(createGroupAction());  
+               break;        
+        case "a15":
+               bucket.setAction(createSetMplsTtlAction());  
+               break;
+        case "a16":
+               bucket.setAction(createFloodOutputAction());
+               break;
+        case "a17":
+               bucket.setAction(createAllOutputAction());
+               break;
+        case "a18":
+               bucket.setAction(createNormalOutputAction());
+               break;
+        case "a19":
+               bucket.setAction(creatTableOutputAction());
+               break;
+        case "a20":
+               bucket.setAction(createControllerAction());
+               break;  
+        case "a21":
+               bucket.setAction(createLocalOutputAction());
+               break;  
+        case "a22":
+               bucket.setAction(createAnyOutputAction());
+               break;  
+        case "a23":
+               bucket.setAction(createInportOutputAction());
+               break; 
+        case "a24" :           
+               bucket.setAction(null);
+               break;
+        case "a25" :           
+               bucket.setAction(createNonAppyOutputAction());
+               break;
+        case "a26" :           
+                       bucket.setAction(createNonAppyPushMplsAction());
+                       break;
+        case "a27" :           
+                       bucket.setAction(createNonAppyPushPbbAction());
+                       break;
+        case "a28" :           
+                       bucket.setAction(createNonAppyPushVlanAction());
+                       break;
+               
+        }
+           
+        if(Groupmod=="add"){           
         bucket.setWatchGroup((long) 14);
         bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-        group.setGroupType(GroupTypes.GroupSelect);
+        bucket.setWeight(50);
+        }else {
+                bucket.setWatchGroup((long) 13);
+             bucket.setWatchPort((long) 134);
+             bucket.setWeight(30);     
+        }
+        group.setKey(key);
+       // group.setInstall(false);
+        group.setGroupId(new GroupId(id));       
         group.setGroupName(originalGroupName);
         group.setBarrier(false);
         BucketsBuilder value = new BucketsBuilder();
         List<Bucket> value1 = new ArrayList<Bucket>();
-
         value1.add(bucket.build());
-        value1.add(Action1().build()); // setField-ipv4
-        value1.add(Action2().build()); // push Pbb
-        value1.add(Action3().build()); // pop Pbb
-        value1.add(Action4().build()); // push mpls
-        value1.add(Action5().build()); // pop mpls
-        value1.add(Action6().build()); // push vlan
-        value1.add(Action7().build()); // Output-ALL
-        value1.add(Action8().build()); // Dec_MPLS
-        value1.add(Action9().build()); // Set_MPLS
-        value1.add(Action10().build()); // setNwTTL
-        value1.add(Action11().build()); // decNwTTL
-        value1.add(Action12().build()); // Output-Inport
-        value1.add(Action13().build()); // Output-Flood
-        value1.add(Action14().build()); // Output-Normal
-        value1.add(Action15().build()); // Output-Local
-        value1.add(Action16().build()); // Output-Table
-        value1.add(Action17().build()); // Copy-ttl-in
-        value1.add(Action18().build()); // copy-ttl-out
-        value1.add(Action19().build()); // set-queue
-        value1.add(Action20().build()); // send to controller
-
         value.setBucket(value1);
         group.setBuckets(value.build());
         testGroup = group.build();
         return group;
     }
+    
+  
 
-    private BucketBuilder Action1() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 13));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-        ActionBuilder ab1 = new ActionBuilder();
-
-        SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
-        SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
-        // IPv4
-        Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder();
-        Ipv4MatchBuilder ipv4Match1 = new Ipv4MatchBuilder();
-        Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.5210");
-        Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1");
-        ipv4Match1.setIpv4Destination(dstip);
-        ipv4Match.setIpv4Source(srcip);
-        setFieldBuilder.setLayer3Match(ipv4Match.build());
-        ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        setFieldBuilder1.setLayer3Match(ipv4Match1.build());
-        ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
-        ab1.setKey(new ActionKey(1));
-        actions.add(ab1.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action2() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 14));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        PushPbbActionBuilder pbb = new PushPbbActionBuilder();
-        pbb.setEthernetType(new Integer(0x88E7));
-        ab.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action3() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 15));
-
+       private List<Action> createPopVlanAction(){     
+       PopVlanActionBuilder vlanAction = new PopVlanActionBuilder();
+        ActionBuilder action = new ActionBuilder();
+        action.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(vlanAction.build()).build());
+        action.setKey(new ActionKey(0));
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder();
-        ab.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(popPbbActionBuilder.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action4() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 16));
-
+    
+    private List<Action> createPushVlanAction(){       
+       PushVlanActionBuilder vlan = new PushVlanActionBuilder();
+       vlan.setEthernetType(new Integer(0x8100));
+        ActionBuilder action = new ActionBuilder();
+        action.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        PushMplsActionBuilder push = new PushMplsActionBuilder();
-        push.setEthernetType(new Integer(0x8847));
-        ab.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action5() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 17));
-
+    private List<Action> createPushMplsAction(){ 
+       PushMplsActionBuilder push = new PushMplsActionBuilder(); 
+       push.setEthernetType(new Integer(0x8847));
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        PopMplsActionBuilder popMplsActionBuilder = new PopMplsActionBuilder();
-        popMplsActionBuilder.setEthernetType(0XB);
-        ab.setAction(new PopMplsActionCaseBuilder().setPopMplsAction(popMplsActionBuilder.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action6() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 18));
-
+    private List<Action> createPopMplsAction(){ 
+       PopMplsActionBuilder popMplsActionBuilder = new PopMplsActionBuilder(); 
+       popMplsActionBuilder.setEthernetType(0XB);
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new PopMplsActionCaseBuilder().setPopMplsAction(popMplsActionBuilder.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        PushVlanActionBuilder vlan = new PushVlanActionBuilder();
-        vlan.setEthernetType(new Integer(0x8100));
-        ab.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action7() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 19));
-
+           
+    private List<Action> createPopPbbAction(){ 
+       PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder();       
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(popPbbActionBuilder.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("ALL");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action8() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 20));
-
+    private List<Action> createPushPbbAction(){ 
+       PushPbbActionBuilder pbb = new PushPbbActionBuilder();
+       pbb.setEthernetType(new Integer(0x88E7));
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        DecMplsTtlBuilder mpls = new DecMplsTtlBuilder();
-        ab.setAction(new DecMplsTtlCaseBuilder().setDecMplsTtl(mpls.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action9() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 21));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
+    private List<Action> createSetMplsTtlAction(){ 
+       SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
         setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
-        ab.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMplsTtlActionBuilder.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action10() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 22));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder();
-        setNwTtlActionBuilder.setNwTtl((short) 1);
-        ab.setAction(new SetNwTtlActionCaseBuilder().setSetNwTtlAction(setNwTtlActionBuilder.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action11() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 23));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        DecNwTtlBuilder ta = new DecNwTtlBuilder();
-        DecNwTtl decNwTtl = ta.build();
-        ab.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(decNwTtl).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action12() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 24));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("INPORT");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action13() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 25));
-
-        List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("FLOOD");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
-    }
-
-    private BucketBuilder Action14() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 26));
-
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMplsTtlActionBuilder.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("NORMAL");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action15() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 27));
-
+    private List<Action> createSetNwTtlAction(){ 
+       SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder();
+        setNwTtlActionBuilder.setNwTtl((short) 1);
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new SetNwTtlActionCaseBuilder().setSetNwTtlAction(setNwTtlActionBuilder.build()).build());          
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("LOCAL");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actions.add(action.build());
+        return actions;        
     }
-
-    private BucketBuilder Action16() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 28));
-
+    private List<Action> createSetQueueAction(){ 
+       SetQueueActionBuilder setQueueActionBuilder = new SetQueueActionBuilder();
+        setQueueActionBuilder.setQueueId(1L);
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new SetQueueActionCaseBuilder().setSetQueueAction(setQueueActionBuilder.build()).build());
+        action.setKey(new ActionKey(0));
         List<Action> actions = new ArrayList<Action>();
+        actions.add(action.build());
+        return actions;        
+    }
+    
+  
+    private List<Action> createCopyTtlInAction(){ 
+        CopyTtlInBuilder ttlin = new CopyTtlInBuilder();          
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build());
+       List<Action> actions = new ArrayList<Action>();
+       actions.add(action.build());
+       return actions;         
+    }
+   private List<Action> createCopyTtlOutAction(){ 
+        CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder();
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new CopyTtlOutCaseBuilder().setCopyTtlOut(ttlout.build()).build());
+       List<Action> actions = new ArrayList<Action>();
+       actions.add(action.build());
+       return actions;         
+    }
+   private List<Action> createDecMplsTtlAction(){ 
+       DecMplsTtlBuilder mpls = new DecMplsTtlBuilder();
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new DecMplsTtlCaseBuilder().setDecMplsTtl(mpls.build()).build());
+       List<Action> actions = new ArrayList<Action>();
+       actions.add(action.build());
+       return actions;         
+    }
+   private List<Action> createDecNwTtlAction(){ 
+         DecNwTtlBuilder nwttl = new DecNwTtlBuilder();
+           ActionBuilder action = new ActionBuilder();
+           action.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(nwttl.build()).build());
+       List<Action> actions = new ArrayList<Action>();       
+      
+       ActionBuilder ab = new ActionBuilder();     
+       OutputActionBuilder output = new OutputActionBuilder();
+     //  output.setMaxLength(30);
+       Uri value = new Uri("2");
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       ab.setOrder(0);
+       actions.add(ab.build());
+       actions.add(action.build());
+       return actions;         
+    } 
+   
+   private List<Action> createFloodOutputAction(){
+     
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.FLOOD.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   
+   private List<Action> createAllOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.ALL.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   
+   private List<Action> createAnyOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.ANY.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   private List<Action> createNormalOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.NORMAL.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   private List<Action> createInportOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.INPORT.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   private List<Action> creatTableOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.TABLE.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   
+   private List<Action> createControllerAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.CONTROLLER.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   
+   private List<Action> createLocalOutputAction(){
+            
+       List<Action> actions = new ArrayList<Action>();
+       ActionBuilder ab = new ActionBuilder();
+       OutputActionBuilder output = new OutputActionBuilder();
+       output.setMaxLength(30);
+       Uri value = new Uri(OutputPortValues.LOCAL.toString());
+       output.setOutputNodeConnector(value);
+       ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+       ab.setKey(new ActionKey(0));
+       actions.add(ab.build());      
+       return actions;
+    }
+   private List<Action> createGroupAction(){ 
+          
+          GroupActionBuilder groupActionB = new GroupActionBuilder();
+       groupActionB.setGroupId(1L);
+       groupActionB.setGroup("0");   
+          ActionBuilder action = new ActionBuilder();
+          action.setAction(new GroupActionCaseBuilder().setGroupAction(groupActionB.build()).build());
+          action.setKey(new ActionKey(0));
+       List<Action> actions = new ArrayList<Action>();
+       actions.add(action.build());
+       return actions;         
+    }
+
+ private static List<Action> createNonAppyOutputAction(){
+
+        List<Action> actionList = new ArrayList<Action>();
         ActionBuilder ab = new ActionBuilder();
-
         OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(30);
-        Uri value = new Uri("TABLE");
+        Uri value = new Uri(OutputPortValues.CONTROLLER.toString());
         output.setOutputNodeConnector(value);
+        //output.setMaxLength(null);
+        output.setMaxLength(66000);        
         ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        actionList.add(ab.build());
+        return actionList;
     }
+    
+    private static List<Action> createNonAppyPushMplsAction(){
 
-    private BucketBuilder Action17() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 29));
-
-        List<Action> actions = new ArrayList<Action>();
+        List<Action> actionList = new ArrayList<Action>();
         ActionBuilder ab = new ActionBuilder();
-
-        CopyTtlInBuilder ttlin = new CopyTtlInBuilder();
-        ab.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        PushMplsActionBuilder push = new PushMplsActionBuilder();
+        push.setEthernetType(new Integer(0x8849));
+        ab.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
+        actionList.add(ab.build());
+        return actionList;
+        
     }
+    private static List<Action> createNonAppyPushPbbAction(){
 
-    private BucketBuilder Action18() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 30));
-
-        List<Action> actions = new ArrayList<Action>();
+        List<Action> actionList = new ArrayList<Action>();
         ActionBuilder ab = new ActionBuilder();
-
-        CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder();
-        ab.setAction(new CopyTtlOutCaseBuilder().setCopyTtlOut(ttlout.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        PushPbbActionBuilder pbb = new PushPbbActionBuilder();
+        pbb.setEthernetType(new Integer(0x88E8));
+        ab.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build());
+        actionList.add(ab.build()); 
+        return actionList;
+        
     }
 
-    private BucketBuilder Action19() {
-
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 31));
+    
+    private static List<Action> createNonAppyPushVlanAction(){
 
-        List<Action> actions = new ArrayList<Action>();
+        List<Action> actionList = new ArrayList<Action>();
         ActionBuilder ab = new ActionBuilder();
-
-        SetQueueActionBuilder setQueueActionBuilder = new SetQueueActionBuilder();
-        setQueueActionBuilder.setQueueId(1L);
-        ab.setAction(new SetQueueActionCaseBuilder().setSetQueueAction(setQueueActionBuilder.build()).build());
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
-        bucket.setWatchGroup((long) 14);
-        bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        PushVlanActionBuilder vlan = new PushVlanActionBuilder();
+        vlan.setEthernetType(new Integer(0x8101));
+        ab.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build());
+        actionList.add(ab.build());
+        return actionList;
+        
     }
+   
 
-    private BucketBuilder Action20() {
+    private GroupBuilder createTestRemoveGroup(){
+        // Sample data , committing to DataStore
+        DataModification modification = dataBrokerService.beginTransaction();
 
-        BucketBuilder bucket = new BucketBuilder();
-        bucket.setBucketId(new BucketId((long) 31));
+        long id = 123;
+        GroupKey key = new GroupKey(new GroupId(id));
+        GroupBuilder group = new GroupBuilder();
+     /*   BucketBuilder bucket = new BucketBuilder();
+        bucket.setBucketId(new BucketId((long) 12));
+        bucket.setKey(new BucketKey(new BucketId((long) 12))); */
+        group.setKey(key);
+    //    group.setInstall(false);      
 
+        group.setGroupId(new GroupId(id));
+      /*  PopVlanActionBuilder vlanAction = new PopVlanActionBuilder();
+        ActionBuilder action = new ActionBuilder();
+        action.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(vlanAction.build()).build());
         List<Action> actions = new ArrayList<Action>();
-        ActionBuilder ab = new ActionBuilder();
-
-        OutputActionBuilder output = new OutputActionBuilder();
-        output.setMaxLength(56);
-        Uri value = new Uri("CONTROLLER");
-        output.setOutputNodeConnector(value);
-        ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
-        ab.setOrder(0);
-        ab.setKey(new ActionKey(0));
-        actions.add(ab.build());
-
-        bucket.setAction(actions);
+        actions.add(action.build()); */
+     /*   bucket.setAction(actions);
         bucket.setWatchGroup((long) 14);
         bucket.setWatchPort((long) 1234);
-        bucket.setWeight(15);
-
-        return bucket;
+        bucket.setWeight(15); */
+     //   group.setGroupType(GroupTypes.GroupSelect);
+     //   group.setGroupName(originalGroupName);
+     //   group.setBarrier(false);
+    //    BucketsBuilder value = new BucketsBuilder();
+    //    List<Bucket> value1 = new ArrayList<Bucket>();
+    //    value1.add(bucket.build());
+     //   value.setBucket(value1);
+      //  group.setBuckets(value.build());
+        testGroup2 = group.build();
+        return group;
     }
-
-    public void _removeGroup(CommandInterpreter ci) {
+    
+   
+    
+    public void _removeGroup(CommandInterpreter ci){
         String nref = ci.nextArgument();
 
         if (nref == null) {
@@ -628,7 +657,7 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
             ci.println("User node added" + nref);
             createUserNode(nref);
         }
-        GroupBuilder gbuilder = createTestGroup();
+        GroupBuilder gbuilder = createTestGroup(ci.nextArgument(),ci.nextArgument(),"add");
         DataModification<InstanceIdentifier<?>, DataObject> modification = dataBrokerService.beginTransaction();
         InstanceIdentifier<Group> path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey())
                 .augmentation(FlowCapableNode.class).child(Group.class, new GroupKey(gbuilder.getGroupId())).build();
@@ -664,14 +693,16 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
             ci.println("User node added" + nref);
             createUserNode(nref);
         }
-        createTestGroup();
+        createTestGroup(ci.nextArgument(),ci.nextArgument(),"add");
         writeGroup(ci, testGroup);
     }
 
     private void writeGroup(CommandInterpreter ci, Group group) {
         DataModification modification = dataBrokerService.beginTransaction();
-        InstanceIdentifier<Group> path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey())
-                .augmentation(FlowCapableNode.class).child(Group.class, new GroupKey(group.getGroupId())).build();
+        InstanceIdentifier<Group> path1 = InstanceIdentifier.builder(Nodes.class)
+                .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                .child(Group.class, new GroupKey(group.getGroupId()))
+                .build();
         modification.putOperationalData(nodeToInstanceId(testNode), testNode);
         modification.putOperationalData(path1, group);
         modification.putConfigurationData(nodeToInstanceId(testNode), testNode);
@@ -701,11 +732,11 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
             ci.println("User node added" + nref);
             createUserNode(nref);
         }
-        GroupBuilder group = createTestGroup();
-        group.setGroupName(updatedGroupName);
-        writeGroup(ci, group.build());
-        group.setGroupName(originalGroupName);
+        GroupBuilder group = createTestGroup(ci.nextArgument(),ci.nextArgument(),"modify");           
         writeGroup(ci, group.build());
+        
+   //     group.setGroupName(originalGroupName);
+     //   writeGroup(ci, group.build());
     }
 
     @Override
@@ -721,12 +752,9 @@ public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
 
     private static NodeRef createNodeRef(String string) {
         NodeKey key = new NodeKey(new NodeId(string));
-        InstanceIdentifier<Node> path = InstanceIdentifier.builder(Nodes.class).child(Node.class, key).toInstance();
+        InstanceIdentifier<Node> path =
+                InstanceIdentifier.builder(Nodes.class).child(Node.class, key).toInstance();
 
         return new NodeRef(path);
     }
-
-    private static void removeMeImFaick() {
-
-    }
 }