Create/Delete Uni IT 66/33566/1
authorIcaro Camelo <icamelo@inocybe.com>
Tue, 26 Jan 2016 03:05:33 +0000 (22:05 -0500)
committerIcaro Camelo <icamelo@inocybe.com>
Tue, 26 Jan 2016 17:05:40 +0000 (12:05 -0500)
Change-Id: I412b1cb2fc9f6eaa5c927e273a450cdcd3d928ed
Signed-off-by: Icaro Camelo <icamelo@inocybe.com>
it/src/test/java/org/opendaylight/unimgr/it/UnimgrIT.java

index c8cb8717e6781381ca1f5086312bb9237a43211e..47b7b9c9e39470f12ee641fdd5806927c260c9af 100644 (file)
@@ -166,15 +166,6 @@ public class UnimgrIT extends AbstractMdsalTestBase {
                 topology);
     }
 
-    @Test
-    public void testCreateUni() {
-        LOG.info("Test for create Uni");
-    }
-
-    private void testDeleteUni() {
-        LOG.info("Test for delete Uni");
-    }
-
     @Test
     public void testCreateEvc() {
         LOG.info("Test for create Evc");
@@ -359,4 +350,60 @@ public class UnimgrIT extends AbstractMdsalTestBase {
         transaction.close();
         return result;
     }
+
+    @Test
+    public void createAndDeleteUNITest() {
+        UniAugmentation uni = new UniAugmentationBuilder()
+                .setMacAddress(new MacAddress(MAC_ADDRESS_1))
+                .setMacLayer(MAC_LAYER)
+                .setMode(MODE)
+                .setMtuSize(BigInteger.valueOf(Long.valueOf(MTU_SIZE)))
+                .setPhysicalMedium(PHY_MEDIUM)
+                .setSpeed(null)
+                .setType(TYPE)
+                .setIpAddress(new IpAddress(IP_1.toCharArray()))
+                .build();
+
+        InstanceIdentifier<Node> nodePath = createUniNode(MAC_ADDRESS_1, IP_1);
+        Assert.assertTrue(validateUni(true, nodePath));
+
+        InstanceIdentifier<Node> deletedNodePath = deleteNode(MAC_ADDRESS_1, IP_1);
+        Assert.assertTrue(validateUni(false, deletedNodePath));
+    }
+
+    private boolean validateUni(boolean forCreate, InstanceIdentifier<Node> iid) {
+        Node uni = read(LogicalDatastoreType.CONFIGURATION, iid);
+        if (forCreate && uni != null) {
+            return true;
+        } else if (!forCreate && uni == null) {
+            return true;
+        }
+        return false;
+    }
+
+    private InstanceIdentifier<Node> deleteNode(String macAddress, String ipAddress) {
+        UniAugmentation uni = new UniAugmentationBuilder().setMacAddress(new MacAddress(macAddress))
+                .setMacLayer(MAC_LAYER).setMode(MODE).setMtuSize(BigInteger.valueOf(Long.valueOf(MTU_SIZE)))
+                .setPhysicalMedium(PHY_MEDIUM).setType(TYPE).setIpAddress(new IpAddress(ipAddress.toCharArray()))
+                .build();
+
+        NodeId uniNodeId = new NodeId(new NodeId("uni://" + uni.getIpAddress().getIpv4Address().getValue().toString()));
+        InstanceIdentifier<Node> genericNode = InstanceIdentifier
+                .create(NetworkTopology.class)
+                .child(Topology.class,
+                        new TopologyKey(new TopologyId(new Uri("unimgr:uni"))))
+                .child(Node.class,
+                        new NodeKey(uniNodeId));
+
+        LOG.info("Received a request to delete node {}", genericNode);
+        WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
+        transaction.delete(LogicalDatastoreType.CONFIGURATION, genericNode);
+        try {
+            transaction.submit().checkedGet();
+        } catch (TransactionCommitFailedException e) {
+            LOG.error("Unable to remove node with Iid {} from store {}.", genericNode, LogicalDatastoreType.CONFIGURATION);
+            return null;
+        }
+        return genericNode;
+    }
 }
\ No newline at end of file