* 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.test;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.osgi.framework.console.CommandInterpreter;
import org.eclipse.osgi.framework.console.CommandProvider;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
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.group.types.rev131018.groups.GroupBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
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.yangtools.yang.binding.InstanceIdentifier;
import org.osgi.framework.BundleContext;
+@SuppressWarnings("checkstyle:MethodName")
public class OpenflowpluginGroupTestCommandProvider implements CommandProvider {
+ private static final String ORIGINAL_GROUP_NAME = "Foo";
- private DataBroker dataBroker;
- private ProviderContext pc;
+ private final DataBroker dataBroker;
private final BundleContext ctx;
private Group testGroup;
- private Group testGroup2;
private Node testNode;
- private final String originalGroupName = "Foo";
- private final String updatedGroupName = "Bar";
- public OpenflowpluginGroupTestCommandProvider(BundleContext ctx) {
+ public OpenflowpluginGroupTestCommandProvider(DataBroker dataBroker, BundleContext ctx) {
+ this.dataBroker = dataBroker;
this.ctx = ctx;
}
- public void onSessionInitiated(ProviderContext session) {
- pc = session;
- dataBroker = session.getSALService(DataBroker.class);
+ public void init() {
ctx.registerService(CommandProvider.class.getName(), this, null);
createTestNode();
}
private void createUserNode(String nodeRef) {
- NodeRef nodeOne = createNodeRef(nodeRef);
NodeBuilder builder = new NodeBuilder();
builder.setId(new NodeId(nodeRef));
- builder.setKey(new NodeKey(builder.getId()));
+ builder.withKey(new NodeKey(builder.getId()));
testNode = builder.build();
}
private void createTestNode() {
- NodeRef nodeOne = createNodeRef(OpenflowpluginTestActivator.NODE_ID);
NodeBuilder builder = new NodeBuilder();
builder.setId(new NodeId(OpenflowpluginTestActivator.NODE_ID));
- builder.setKey(new NodeKey(builder.getId()));
+ builder.withKey(new NodeKey(builder.getId()));
testNode = builder.build();
}
private InstanceIdentifier<Node> nodeToInstanceId(Node node) {
- return InstanceIdentifier.create(Nodes.class).child(Node.class, node.getKey());
+ return InstanceIdentifier.create(Nodes.class).child(Node.class, node.key());
}
- private GroupBuilder createTestGroup(String actiontype, String type, String mod) {
+ private GroupBuilder createTestGroup(String actionType, String groupType, String groupMod) {
// Sample data , committing to DataStore
- String GroupType = type;
- String ActionType = actiontype;
- String Groupmod = mod;
-
- long id = 1;
- 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)));
+ bucket.withKey(new BucketKey(new BucketId((long) 12)));
- if (GroupType == null) {
- GroupType = "g1";
+ if (groupType == null) {
+ groupType = "g1";
}
- if (ActionType == null) {
- ActionType = "a1";
+ if (actionType == null) {
+ actionType = "a1";
}
- switch (GroupType) {
+ switch (groupType) {
case "g1":
group.setGroupType(GroupTypes.GroupSelect);
break;
case "g4":
group.setGroupType(GroupTypes.GroupFf);
break;
+ default:
+ break;
}
- switch (ActionType) {
+ switch (actionType) {
case "a1":
bucket.setAction(createPopVlanAction());
break;
bucket.setAction(createPopPbbAction());
break;
case "a6":
- bucket.setAction(createPushPbbAction());
- break;
case "a7":
bucket.setAction(createPushPbbAction());
break;
case "a28":
bucket.setAction(createNonAppyPushVlanAction());
break;
-
+ default:
+ break;
}
- if (Groupmod == "add") {
+ if ("add".equals(groupMod)) {
bucket.setWatchGroup((long) 14);
bucket.setWatchPort((long) 1234);
bucket.setWeight(50);
bucket.setWatchPort((long) 134);
bucket.setWeight(30);
}
- group.setKey(key);
+
+ long id = 1;
+ GroupKey key = new GroupKey(new GroupId(id));
+ group.withKey(key);
// group.setInstall(false);
group.setGroupId(new GroupId(id));
- group.setGroupName(originalGroupName);
+ group.setGroupName(ORIGINAL_GROUP_NAME);
group.setBarrier(false);
BucketsBuilder value = new BucketsBuilder();
- List<Bucket> value1 = new ArrayList<Bucket>();
+ List<Bucket> value1 = new ArrayList<>();
value1.add(bucket.build());
value.setBucket(value1);
group.setBuckets(value.build());
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>();
+ action.withKey(new ActionKey(0));
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
vlan.setEthernetType(0x8100);
ActionBuilder action = new ActionBuilder();
action.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
push.setEthernetType(0x8847);
ActionBuilder action = new ActionBuilder();
action.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
popMplsActionBuilder.setEthernetType(0XB);
ActionBuilder action = new ActionBuilder();
action.setAction(new PopMplsActionCaseBuilder().setPopMplsAction(popMplsActionBuilder.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder();
ActionBuilder action = new ActionBuilder();
action.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(popPbbActionBuilder.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
pbb.setEthernetType(0x88E7);
ActionBuilder action = new ActionBuilder();
action.setAction(new PushPbbActionCaseBuilder().setPushPbbAction(pbb.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
ActionBuilder action = new ActionBuilder();
- action.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMplsTtlActionBuilder.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ action.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(
+ setMplsTtlActionBuilder.build()).build());
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
setNwTtlActionBuilder.setNwTtl((short) 1);
ActionBuilder action = new ActionBuilder();
action.setAction(new SetNwTtlActionCaseBuilder().setSetNwTtlAction(setNwTtlActionBuilder.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
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>();
+ action.withKey(new ActionKey(0));
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
CopyTtlInBuilder ttlin = new CopyTtlInBuilder();
ActionBuilder action = new ActionBuilder();
action.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder();
ActionBuilder action = new ActionBuilder();
action.setAction(new CopyTtlOutCaseBuilder().setCopyTtlOut(ttlout.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
DecMplsTtlBuilder mpls = new DecMplsTtlBuilder();
ActionBuilder action = new ActionBuilder();
action.setAction(new DecMplsTtlCaseBuilder().setDecMplsTtl(mpls.build()).build());
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
actions.add(action.build());
return actions;
}
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();
Uri value = new Uri("2");
output.setOutputNodeConnector(value);
ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
- ab.setKey(new ActionKey(0));
+ ab.withKey(new ActionKey(0));
ab.setOrder(0);
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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));
+ ab.withKey(new ActionKey(0));
+
+ List<Action> actions = new ArrayList<>();
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>();
+ action.withKey(new ActionKey(0));
+ List<Action> actions = new ArrayList<>();
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();
Uri value = new Uri(OutputPortValues.CONTROLLER.toString());
//output.setMaxLength(null);
output.setMaxLength(66000);
ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
+
+ List<Action> actionList = new ArrayList<>();
actionList.add(ab.build());
return actionList;
}
private static List<Action> createNonAppyPushMplsAction() {
- List<Action> actionList = new ArrayList<Action>();
+ List<Action> actionList = new ArrayList<>();
ActionBuilder ab = new ActionBuilder();
PushMplsActionBuilder push = new PushMplsActionBuilder();
push.setEthernetType(0x8849);
ab.setAction(new PushMplsActionCaseBuilder().setPushMplsAction(push.build()).build());
actionList.add(ab.build());
return actionList;
-
}
private static List<Action> createNonAppyPushPbbAction() {
- List<Action> actionList = new ArrayList<Action>();
+ List<Action> actionList = new ArrayList<>();
ActionBuilder ab = new ActionBuilder();
PushPbbActionBuilder pbb = new PushPbbActionBuilder();
pbb.setEthernetType(0x88E8);
private static List<Action> createNonAppyPushVlanAction() {
- List<Action> actionList = new ArrayList<Action>();
+ List<Action> actionList = new ArrayList<>();
ActionBuilder ab = new ActionBuilder();
PushVlanActionBuilder vlan = new PushVlanActionBuilder();
vlan.setEthernetType(0x8101);
ab.setAction(new PushVlanActionCaseBuilder().setPushVlanAction(vlan.build()).build());
actionList.add(ab.build());
return actionList;
-
- }
-
-
- private GroupBuilder createTestRemoveGroup() {
- 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>();
- actions.add(action.build()); */
- /* bucket.setAction(actions);
- bucket.setWatchGroup((long) 14);
- bucket.setWatchPort((long) 1234);
- 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(final CommandInterpreter ci) {
String nref = ci.nextArgument();
createUserNode(nref);
}
GroupBuilder gbuilder = createTestGroup(ci.nextArgument(), ci.nextArgument(), "add");
- ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
- InstanceIdentifier<Group> path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.getKey())
+ ReadWriteTransaction modification = Preconditions.checkNotNull(dataBroker).newReadWriteTransaction();
+ InstanceIdentifier<Group> path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.key())
.augmentation(FlowCapableNode.class).child(Group.class, new GroupKey(gbuilder.getGroupId()));
modification.delete(LogicalDatastoreType.CONFIGURATION, path1);
- CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
- Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+ modification.commit().addCallback(new FutureCallback<Object>() {
@Override
- public void onSuccess(Void aVoid) {
+ public void onSuccess(Object notUsed) {
ci.println("Status of Group Data Loaded Transaction: success.");
}
public void onFailure(Throwable throwable) {
ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
}
- });
+ }, MoreExecutors.directExecutor());
}
public void _addGroup(CommandInterpreter ci) {
}
private void writeGroup(final CommandInterpreter ci, Group group) {
- ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
+ ReadWriteTransaction modification = Preconditions.checkNotNull(dataBroker).newReadWriteTransaction();
InstanceIdentifier<Group> path1 = InstanceIdentifier.create(Nodes.class)
- .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+ .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
.child(Group.class, new GroupKey(group.getGroupId()));
modification.merge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), testNode, true);
modification.merge(LogicalDatastoreType.CONFIGURATION, path1, group, true);
- CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
- Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+ modification.commit().addCallback(new FutureCallback<Object>() {
@Override
- public void onSuccess(Void aVoid) {
+ public void onSuccess(Object notUsed) {
ci.println("Status of Group Data Loaded Transaction: success.");
}
public void onFailure(Throwable throwable) {
ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
}
- });
+ }, MoreExecutors.directExecutor());
}
public void _modifyGroup(CommandInterpreter ci) {
return help.toString();
}
-
- private static NodeRef createNodeRef(String string) {
- NodeKey key = new NodeKey(new NodeId(string));
- InstanceIdentifier<Node> path =
- InstanceIdentifier.create(Nodes.class).child(Node.class, key);
-
- return new NodeRef(path);
- }
}