X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fopenroadminterface%2FOpenRoadmInterfaceFactory.java;h=a0f513a1f4026a81f206f0ade21651c42be2c8f9;hb=refs%2Fchanges%2F97%2F74797%2F2;hp=7636b26a16175ec57548f869b8dfbc9a01ac9af7;hpb=d4b1e8fa9d3267b9097846176f3e236b42b626d2;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterfaceFactory.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterfaceFactory.java index 7636b26a1..a0f513a1f 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterfaceFactory.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterfaceFactory.java @@ -22,12 +22,16 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev16 import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev161014.ethernet.container.EthernetBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.EthernetCsmacd; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.InterfaceType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpenROADMOpticalMultiplex; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalChannel; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalTransport; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOdu; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOtu; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.OchAttributes; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.RateIdentity; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.och.container.OchBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.OtsAttributes.FiberType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.ots.container.OtsBuilder; 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; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.odu.container.OduBuilder; @@ -38,7 +42,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.network.nodes.Mapping; public class OpenRoadmInterfaceFactory { - private final PortMapping portMapping; private final OpenRoadmInterfaces openRoadmInterfaces; @@ -106,9 +109,9 @@ public class OpenRoadmInterfaceFactory { } // Create Interface1 type object required for adding as augmentation // TODO look at imports of different versions of class - org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1Builder - ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces - .rev161014.Interface1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014 + .Interface1Builder ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel + .interfaces.rev161014.Interface1Builder(); ochInterfaceBldr.addAugmentation( org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1.class, ochIf1Builder.setOch(ocIfBuilder.build()).build()); @@ -135,9 +138,9 @@ public class OpenRoadmInterfaceFactory { // Create Interface1 type object required for adding as augmentation // TODO look at imports of different versions of class - org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1Builder - ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces - .rev161014.Interface1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014 + .Interface1Builder ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel + .interfaces.rev161014.Interface1Builder(); // Create generic interface InterfaceBuilder ochInterfaceBldr = createGenericInterfaceBuilder(portMap, OpticalChannel.class, createOpenRoadmOchInterfaceName(logicalConnPoint, waveNumber)); @@ -234,6 +237,50 @@ public class OpenRoadmInterfaceFactory { return otuInterfaceBldr.getName(); } + public String createOpenRoadmOtsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException { + if (mapping.getSupportingOts() == null) { + // Create generic interface + InterfaceBuilder otsInterfaceBldr = createGenericInterfaceBuilder(mapping, OpticalTransport.class, "OTS-" + + mapping.getLogicalConnectionPoint()); + // OTS interface augmentation specific data + OtsBuilder otsIfBuilder = new OtsBuilder(); + otsIfBuilder.setFiberType(FiberType.Smf); + + // Create Interface1 type object required for adding as + // augmentation + org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014 + .Interface1Builder otsIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical + .transport.interfaces.rev161014.Interface1Builder(); + otsInterfaceBldr.addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1.class, + otsIf1Builder.setOts(otsIfBuilder.build()).build()); + this.openRoadmInterfaces.postInterface(nodeId, otsInterfaceBldr); + this.portMapping.updateMapping(nodeId, mapping); + return otsInterfaceBldr.build().getName(); + } else { + return mapping.getSupportingOts(); + } + } + + public String createOpenRoadmOmsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException { + if (mapping.getSupportingOms() == null) { + // Create generic interface + InterfaceBuilder omsInterfaceBldr = createGenericInterfaceBuilder(mapping, OpenROADMOpticalMultiplex.class, + "OMS-" + mapping.getLogicalConnectionPoint()); + if (mapping.getSupportingOts() != null) { + omsInterfaceBldr.setSupportingInterface(mapping.getSupportingOts()); + } else { + throw new OpenRoadmInterfaceException(String.format("Unable to get ots interface from mapping % - %", + nodeId, mapping.getLogicalConnectionPoint())); + } + this.openRoadmInterfaces.postInterface(nodeId, omsInterfaceBldr); + this.portMapping.updateMapping(nodeId, mapping); + return omsInterfaceBldr.build().getName(); + } else { + return mapping.getSupportingOms(); + } + } + private InterfaceBuilder createGenericInterfaceBuilder(Mapping portMap, Class type, String key) { InterfaceBuilder interfaceBuilder = new InterfaceBuilder();