X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Futils%2FNodeUtils.java;fp=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Futils%2FNodeUtils.java;h=6adfaf99eb282783038723187d265458ba0098c8;hb=2058c3a23deba4b6bdd50f3e1ea227d786b14289;hp=42b1fe5b82c6be04cada85d470809d608651b1f7;hpb=19874004a41c191cf58a54d2e636e7454d6f3af0;p=transportpce.git diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java index 42b1fe5b8..6adfaf99e 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java @@ -11,12 +11,14 @@ package org.opendaylight.transportpce.pce.utils; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; @@ -28,8 +30,29 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev18113 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder; @@ -39,6 +62,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey; @@ -46,6 +70,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; import org.opendaylight.yangtools.yang.binding.Augmentation; +import org.opendaylight.yangtools.yang.common.Uint32; public class NodeUtils { @@ -212,7 +237,8 @@ public class NodeUtils { .setLinkLatency(Long.valueOf(123)) .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() - .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues) + .setAmplifiedLink(new AmplifiedLinkBuilder() + .setAmplifiedLink(amplifiedLinkValues) .build()) .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) @@ -220,16 +246,260 @@ public class NodeUtils { .setOperationalState(State.InService).build(); TransactionUtils.getNetworkForSpanLoss(); - return new LinkBuilder().setLinkId(new LinkId("OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1")) + return new LinkBuilder() + .setLinkId(new LinkId("OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1")) .setSource( - new SourceBuilder().setSourceNode(new NodeId("OpenROADM-3-2-DEG1")) - .setSourceTp("DEG1-TTP-TX").build()) + new SourceBuilder() + .setSourceNode(new NodeId("OpenROADM-3-2-DEG1")) + .setSourceTp("DEG1-TTP-TX").build()) .setDestination( - new DestinationBuilder().setDestNode(new NodeId("OpenROADM-3-1-DEG1")) + new DestinationBuilder() + .setDestNode(new NodeId("OpenROADM-3-1-DEG1")) .setDestTp("DEG1-TTP-RX").build()) .addAugmentation(Link1.class, aug11) .build(); } + + // OTN network node + public static List getOTNSupportingNodes() { + List supportingNodes1 = new ArrayList<>(); + supportingNodes1 + .add(new SupportingNodeBuilder() + .setNodeRef(new NodeId("node 1")) + .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) + .build()); + + supportingNodes1 + .add(new SupportingNodeBuilder() + .setNodeRef(new NodeId("node 2")) + .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) + .build()); + return supportingNodes1; + } + + public static NodeBuilder getOTNNodeBuilder(List supportingNodes1, + OpenroadmTpType openroadmTpType) { + + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + tp1Bldr = getTerminationPoint1Builder(openroadmTpType); + TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); + xpdrTpBldr + .addAugmentation( + org.opendaylight + .yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class, + tp1Bldr.build()); + + xpdrTpBldr.addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, + createAnother2TerminationPoint(openroadmTpType).build()); + xpdrTpBldr.addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class, + createAnotherTerminationPoint(openroadmTpType).build()); + + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1(); + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = + new Node1Builder() + .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())) + .build(); + + + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 nodeIetf = + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .Node1Builder() + .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())) + .build(); + + return new NodeBuilder() + .setNodeId(new NodeId("node_test")) + .withKey(new NodeKey(new NodeId("node 1"))) + .addAugmentation( + Node1.class, node1Rev180226) + .addAugmentation( + org.opendaylight + .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class, + node1) + .addAugmentation( + org.opendaylight + .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, + nodeIetf + ) + .setSupportingNode(supportingNodes1); + } + + public static NodeBuilder getOTNNodeBuilderEmpty(List supportingNodes1, + OpenroadmTpType openroadmTpType) { + + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder tp1Bldr = + getTerminationPoint1Builder(openroadmTpType); + TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); + xpdrTpBldr.addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, + tp1Bldr.build()); + xpdrTpBldr.addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, + createAnotherTerminationPoint(openroadmTpType).build()); + + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty(); + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = + new Node1Builder() + .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())) + .build(); + + + return new NodeBuilder() + .setNodeId(new NodeId("node_test")) + .withKey(new NodeKey(new NodeId("node 1"))) + .addAugmentation( + Node1.class, node1Rev180226) + .addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class, + node1) + .setSupportingNode(supportingNodes1); + } + + private static org.opendaylight + .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .setSrgAttributes(getSrgAttributes()) + .setDegreeAttributes(getDegAttributes()) + .build(); + } + + private static org.opendaylight + .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .setSrgAttributes(getEmptySrgAttributes()) + .setDegreeAttributes(getEmptyDegAttributes()) + .build(); + } + + private static DegreeAttributes getDegAttributes() { + return (new DegreeAttributesBuilder()) + .setAvailableWavelengths( + Collections.singletonList(new AvailableWavelengthsBuilder() + .setIndex(20L) + .build())) + .build(); + } + + private static SrgAttributes getSrgAttributes() { + return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); + } + + private static DegreeAttributes getEmptyDegAttributes() { + return (new DegreeAttributesBuilder()) + .setAvailableWavelengths( + new ArrayList<>()) + .build(); + } + + private static SrgAttributes getEmptySrgAttributes() { + List + waveList = new ArrayList<>(); + return new SrgAttributesBuilder().setAvailableWavelengths(waveList).build(); + } + + private static TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) { + return new TerminationPointBuilder() + .setTpId(new TpId("2")) + .addAugmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + .TerminationPoint1.class, + createOTNTerminationPoint(openroadmTpType).build()); + } + + private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) { + + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + .setTpType(openroadmTpType); + + } + + private static org.opendaylight.yang.gen + .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint( + OpenroadmTpType openroadmTpType + ) { + return new org.opendaylight + .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder() + .setTpType(openroadmTpType) + .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build()) + .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build()) + .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build()) + .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build()) + .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(new ArrayList<>()).build()) + .setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build()) + .setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build()) + .setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder() + .setTailEquipmentId("destNode" + "--" + "destTp").build()); + } + + private static org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + .TerminationPoint1Builder createOTNTerminationPoint(OpenroadmTpType openroadmTpType) { + + SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() + .setIfCapType(IfOCHOTU4ODU4.class) + .build(); + + SupportedInterfaceCapability supIfCapa1 = new SupportedInterfaceCapabilityBuilder() + .setIfCapType(If100GEODU4.class) + .build(); + SupportedInterfaceCapability supIfCapa2 = new SupportedInterfaceCapabilityBuilder() + .setIfCapType(If10GEODU2e.class) + .build(); + SupportedInterfaceCapability supIfCapa3 = new SupportedInterfaceCapabilityBuilder() + .setIfCapType(If1GEODU0.class) + .build(); + + List supIfCapaList = new ArrayList<>(); + supIfCapaList.add(supIfCapa); + supIfCapaList.add(supIfCapa1); + supIfCapaList.add(supIfCapa2); + supIfCapaList.add(supIfCapa3); + + TpSupportedInterfaces tpSupIf = new TpSupportedInterfacesBuilder() + .setSupportedInterfaceCapability(supIfCapaList) + .build(); + + XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(); + + return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + .TerminationPoint1Builder() + .setTpType(openroadmTpType) + .setTpSupportedInterfaces(tpSupIf) + .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()); + } + + private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1Builder createAnother2TerminationPoint(OpenroadmTpType openroadmTpType) { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1Builder() + .setTpType(openroadmTpType); + } + + private static List create96AvalWaveSrg() { + + List + waveList = new ArrayList<>(); + + for (int i = 1; i < 97; i++) { + org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes + .AvailableWavelengthsBuilder avalBldr + = new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes + .AvailableWavelengthsBuilder() + .setIndex(Uint32.valueOf(i)) + .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes + .AvailableWavelengthsKey(Uint32.valueOf(i))); + waveList.add(avalBldr.build()); + } + return waveList; + } + }