package org.opendaylight.transportpce.renderer.utils;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZ;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToA;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToABuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToAKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.ResourceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.Link;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.LinkBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.NodeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPoint;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.link.LinkIdentifierBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.node.NodeIdentifierBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.termination.point.TerminationPointIdentifierBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.handler.header.ServiceHandlerHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.RendererRollbackInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.ServicePathInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.ServicePathInputBuilder;
+import java.util.Map;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.RendererRollbackInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.ServicePathInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev211210.FrequencyTHz;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.AToZDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.AToZDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ZToADirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ZToADirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZ;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToA;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToABuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToAKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.ResourceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.TerminationPoint;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.TerminationPointBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.NodesKey;
+import org.opendaylight.yangtools.yang.common.Uint32;
public final class ServiceDataUtils {
+ private ServiceDataUtils() {
+ }
+
public static Nodes createNode(String nodeId, String srcTp, String dstTp) {
return new NodesBuilder().setNodeId(nodeId).withKey(new NodesKey(nodeId)).setSrcTp(srcTp)
.setDestTp(dstTp).build();
public static ServicePathInput buildServicePathInputs(List<Nodes> nodes) {
ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
servicePathInputBuilder.setNodes(nodes);
- servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
+ servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(Uint32.valueOf(20));
return servicePathInputBuilder.build();
}
List<Nodes> nodes = new ArrayList<>();
nodes.add(ServiceDataUtils.createNode("node1", "src", "dst"));
servicePathInputBuilder.setNodes(nodes);
- servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
+ servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(Uint32.valueOf(20));
return servicePathInputBuilder.build();
}
public static RendererRollbackInput buildRendererRollbackInput() {
RendererRollbackInputBuilder rendererRollbackInputBuilder = new RendererRollbackInputBuilder();
- rendererRollbackInputBuilder.setNodeInterface(new ArrayList<>());
+ rendererRollbackInputBuilder.setNodeInterface(Map.of());
return rendererRollbackInputBuilder.build();
}
ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
.setServiceName("service 1").setPathDescription(createPathDescriptionTerminationPointResource(tpId))
.setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
- .setServiceAEnd(getServiceAEndBuild().build())
- .setServiceZEnd(getServiceZEndBuild().build());
- return builder.build();
- }
-
- public static ServiceImplementationRequestInput buildServiceImplementationRequestInputInvalidResource() {
- ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
- .setServiceName("service 1").setPathDescription(createPathDescriptionInvalidResource())
- .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
- .setServiceAEnd(getServiceAEndBuild().build())
- .setServiceZEnd(getServiceZEndBuild().build());
- return builder.build();
- }
-
- public static ServiceImplementationRequestInput buildServiceImplementationRequestInputLinkResource() {
- ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
- .setServiceName("service 1").setPathDescription(createPathDescriptionLinkResource())
- .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
- .setServiceAEnd(getServiceAEndBuild().build())
- .setServiceZEnd(getServiceZEndBuild().build());
- return builder.build();
- }
-
- private static PathDescription createPathDescriptionInvalidResource() {
- List<AToZ> atoZList = new ArrayList<AToZ>();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
- .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
- .resource.resource.Node node1 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
- .setNodeId("XPONDER-1-2").build()).build();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
- .resource.resource.Node node2 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
- .setNodeId("XPONDER-1-2").build()).build();
- AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
- .setResource(node1).build()).build();
- AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
- .setResource(node2).build()).build();
- atoZList.add(atoZ);
- atoZList.add(atoZ2);
- AToZDirection atozDirection = new AToZDirectionBuilder()
- .setRate(20L)
- .setAToZWavelengthNumber(20L)
- .setAToZ(atoZList)
- .build();
- List<ZToA> ztoAList = new ArrayList<ZToA>();
- ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
- .setResource(node1).build()).build();
- ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
- .setResource(node2).build()).build();
- ztoAList.add(ztoA);
- ztoAList.add(ztoA2);
- ZToADirection ztoaDirection = new ZToADirectionBuilder()
- .setRate(20L)
- .setZToAWavelengthNumber(20L)
- .setZToA(ztoAList)
- .build();
- PathDescriptionBuilder builder = new PathDescriptionBuilder()
- .setAToZDirection(atozDirection)
- .setZToADirection(ztoaDirection);
+ .setServiceAEnd(getServiceAEndBuild(tpId).build())
+ .setServiceZEnd(getServiceZEndBuild(tpId).build())
+ .setConnectionType(ConnectionType.Service);
return builder.build();
}
public static PathDescription createPathDescriptionTerminationPointResource(String tpId) {
- List<AToZ> atoZList = new ArrayList<AToZ>();
+ Map<AToZKey,AToZ> atoZMap = new HashMap<>();
TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
- TerminationPoint terminationPoint = terminationPointBuilder
- .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
- .setTpId("XPONDER-1-2-" + tpId).build()).build();
- TerminationPoint terminationPoint2 = terminationPointBuilder
- .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
- .setTpId("XPONDER-1-2-" + tpId).build()).build();
- AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
- .setResource(terminationPoint).build()).build();
- AToZ atoZ2 = new AToZBuilder().setId("2").withKey(new AToZKey("2")).setResource(new ResourceBuilder()
- .setResource(terminationPoint2).build()).build();
- atoZList.add(atoZ);
- atoZList.add(atoZ2);
+ List<String> nodeIds = Arrays.asList("XPONDER-1-2", "XPONDER-2-3");
+ Integer atozId = 1;
+ for (String nodeId : nodeIds) {
+ for (String otherNodeId : nodeIds) {
+ TerminationPoint terminationPoint = terminationPointBuilder
+ .setTpNodeId(nodeId + '-'
+ + tpId)
+ .setTpId(tpId).build();
+ AToZ atoZ = new AToZBuilder().setId(atozId.toString())
+ .withKey(new AToZKey(atozId.toString())).setResource(new ResourceBuilder()
+ .setResource(terminationPoint).build()).build();
+ atozId++;
+ atoZMap.put(atoZ.key(),atoZ);
+ }
+ }
AToZDirection atozDirection = new AToZDirectionBuilder()
- .setRate(20L)
- .setAToZWavelengthNumber(20L)
- .setAToZ(atoZList)
- .build();
- List<ZToA> ztoAList = new ArrayList<ZToA>();
- ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
- .setResource(terminationPoint).build()).build();
- ZToA ztoA2 = new ZToABuilder().setId("2").withKey(new ZToAKey("2")).setResource(new ResourceBuilder()
- .setResource(terminationPoint).build()).build();
- ztoAList.add(ztoA);
- ztoAList.add(ztoA2);
- ZToADirection ztoaDirection = new ZToADirectionBuilder()
- .setRate(20L)
- .setZToAWavelengthNumber(20L)
- .setZToA(ztoAList)
+ .setRate(Uint32.valueOf(20))
+ .setAToZWavelengthNumber(Uint32.valueOf(20))
+ .setAToZMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+ .setAToZMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
+ .setAToZ(atoZMap)
.build();
- PathDescriptionBuilder builder = new PathDescriptionBuilder()
- .setAToZDirection(atozDirection)
- .setZToADirection(ztoaDirection);
- return builder.build();
- }
- private static PathDescription createPathDescriptionLinkResource() {
- List<AToZ> atoZList = new ArrayList<AToZ>();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
- .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
- Link link1 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 1").build())
- .build();
- Link link2 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 2").build())
- .build();
- AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
- .setResource(link1).build()).build();
- AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
- .setResource(link2).build()).build();
- atoZList.add(atoZ);
- atoZList.add(atoZ2);
- AToZDirection atozDirection = new AToZDirectionBuilder()
- .setRate(20L)
- .setAToZWavelengthNumber(20L)
- .setAToZ(atoZList)
- .build();
- List<ZToA> ztoAList = new ArrayList<ZToA>();
- ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
- .setResource(link1).build()).build();
- ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
- .setResource(link2).build()).build();
- ztoAList.add(ztoA);
- ztoAList.add(ztoA2);
+ Collections.reverse(nodeIds);
+ Map<ZToAKey,ZToA> ztoAMap = new HashMap<>();
+ Integer ztoaId = 1;
+ for (String nodeId : nodeIds) {
+ for (String otherNodeId : nodeIds) {
+ TerminationPoint terminationPoint = terminationPointBuilder
+ .setTpNodeId(nodeId + '-'
+ + tpId)
+ .setTpId(tpId).build();
+ ZToA ztoA = new ZToABuilder().setId(ztoaId.toString())
+ .withKey(new ZToAKey(ztoaId.toString())).setResource(new ResourceBuilder()
+ .setResource(terminationPoint).build()).build();
+ ztoaId++;
+ ztoAMap.put(ztoA.key(),ztoA);
+ }
+ }
ZToADirection ztoaDirection = new ZToADirectionBuilder()
- .setRate(20L)
- .setZToAWavelengthNumber(20L)
- .setZToA(ztoAList)
+ .setRate(Uint32.valueOf(20))
+ .setZToAWavelengthNumber(Uint32.valueOf(20))
+ .setZToAMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+ .setZToAMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
+ .setZToA(ztoAMap)
.build();
PathDescriptionBuilder builder = new PathDescriptionBuilder()
.setAToZDirection(atozDirection)
return builder.build();
}
- public static ServiceAEndBuilder getServiceAEndBuild() {
+ public static ServiceAEndBuilder getServiceAEndBuild(String tpId) {
return new ServiceAEndBuilder()
- .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
+ .setClli("clli").setServiceFormat(ServiceFormat.OC)
+ .setServiceRate(Uint32.valueOf(1)).setNodeId("XPONDER-1-2-"
+ + tpId)
.setTxDirection(
new TxDirectionBuilder()
.setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
.setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
.setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
.setPortSubSlot("port subslot").setPortType("port type").build())
- .build());
+ .build())
+ .setServiceRate(Uint32.valueOf(100))
+ .setServiceFormat(ServiceFormat.Ethernet);
}
- public static ServiceZEndBuilder getServiceZEndBuild() {
+ public static ServiceZEndBuilder getServiceZEndBuild(String tpId) {
return new ServiceZEndBuilder()
- .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
+ .setClli("clli").setServiceFormat(ServiceFormat.OC)
+ .setServiceRate(Uint32.valueOf(1)).setNodeId("XPONDER-2-3-"
+ + tpId)
.setTxDirection(
new TxDirectionBuilder()
.setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
.setPortSubSlot("port subslot").setPortType("port type").build())
.build());
}
-
- private ServiceDataUtils() {
- }
-
}