Updates to Renderer
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / openroadminterface / OpenRoadmOdu4Interface.java
index 17a1b29fb048d8d2bcb2a22964a74cdf035e7c3a..d5ba9dcd2604b03f417f1120041ed99ba79aebc8 100644 (file)
@@ -10,11 +10,20 @@ package org.opendaylight.transportpce.renderer.openroadminterface;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.MountPointService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOdu;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.ODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.OduAttributes.MonitoringMode;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.odu.container.OduBuilder;
 
 public class OpenRoadmOdu4Interface extends OpenRoadmInterfaces {
 
-    public OpenRoadmOdu4Interface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint) {
-        super(db, mps, nodeId, logicalConnPoint);
+    public OpenRoadmOdu4Interface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint,
+            String serviceName) {
+        super(db, mps, nodeId, logicalConnPoint, serviceName);
 
     }
 
@@ -25,8 +34,28 @@ public class OpenRoadmOdu4Interface extends OpenRoadmInterfaces {
      * @return Name of the interface if successful, otherwise return null.
      */
 
-    public String createInterface() {
-        // TODO:implement this method
-        return null;
+    public String createInterface(String supportingOtuInterface) {
+
+        InterfaceBuilder oduInterfaceBldr = getIntfBuilder(portMap);
+        oduInterfaceBldr.setType(OtnOdu.class);
+        oduInterfaceBldr.setSupportingInterface(supportingOtuInterface);
+        oduInterfaceBldr.setName(logicalConnPoint + "-ODU");
+        oduInterfaceBldr.setKey(new InterfaceKey(logicalConnPoint + "-ODU"));
+
+        // ODU interface specific data
+        OduBuilder oduIfBuilder = new OduBuilder();
+        oduIfBuilder.setRate(ODU4.class);
+        oduIfBuilder.setMonitoringMode(MonitoringMode.Monitored);
+
+        // Create Interface1 type object required for adding as augmentation
+        Interface1Builder oduIf1Builder = new Interface1Builder();
+        oduInterfaceBldr.addAugmentation(Interface1.class, oduIf1Builder.setOdu(oduIfBuilder.build()).build());
+
+        // Post interface on the device
+        if (postInterface(oduInterfaceBldr)) {
+            return oduInterfaceBldr.getName();
+        } else {
+            return null;
+        }
     }
 }