1 package test.mock.util;
3 import org.opendaylight.openflowplugin.applications.frm.impl.ForwardingRulesManagerConfig;
4 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
5 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
8 import java.util.Collections;
9 import java.util.concurrent.ExecutionException;
10 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
11 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
12 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodesBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 public abstract class FRMTest extends AbstractDataBrokerTest {
24 public void addFlowCapableNode(NodeKey nodeKey) {
25 Nodes nodes = new NodesBuilder().setNode(Collections.<Node>emptyList()).build();
26 InstanceIdentifier<Node> flowNodeIdentifier = InstanceIdentifier.create(Nodes.class)
27 .child(Node.class, nodeKey);
29 FlowCapableNodeBuilder fcnBuilder = new FlowCapableNodeBuilder();
30 NodeBuilder nodeBuilder = new NodeBuilder();
31 nodeBuilder.setKey(nodeKey);
32 nodeBuilder.addAugmentation(FlowCapableNode.class, fcnBuilder.build());
34 WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
35 writeTx.put(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class), nodes);
36 writeTx.put(LogicalDatastoreType.OPERATIONAL, flowNodeIdentifier, nodeBuilder.build());
37 writeTx.put(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Nodes.class), nodes);
38 writeTx.put(LogicalDatastoreType.CONFIGURATION, flowNodeIdentifier, nodeBuilder.build());
39 assertCommit(writeTx.submit());
42 public void removeNode(NodeKey nodeKey) throws ExecutionException, InterruptedException {
43 WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
44 writeTx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey));
45 writeTx.submit().get();
48 public void addTable(final TableKey tableKey, final NodeKey nodeKey) {
49 addFlowCapableNode(nodeKey);
50 final Table table = new TableBuilder().setKey(tableKey).setFlow(Collections.<Flow>emptyList()).build();
51 WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction();
52 InstanceIdentifier<Table> tableII = InstanceIdentifier.create(Nodes.class).child(Node.class, nodeKey)
53 .augmentation(FlowCapableNode.class).child(Table.class, tableKey);
54 writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table);
55 assertCommit(writeTx.submit());
58 public ForwardingRulesManagerConfig getConfig(){
59 ForwardingRulesManagerConfig.ForwardingRulesManagerConfigBuilder cfgBuilder =
60 new ForwardingRulesManagerConfig.ForwardingRulesManagerConfigBuilder();
61 cfgBuilder.setStaleMarkingEnabled(false);
62 return cfgBuilder.build();