X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2FNetworkModelWavelengthServiceImpl.java;h=1bb9ce0eba1c3811c277783f339bbacb11429e68;hb=0f9a451081238311c3f1f30e97aa22dcc5998a8a;hp=eee258516ae28e70d5d68e69c7cec9d92783a9df;hpb=66ccddbe00692f230350a19e1a222f09d6abd9a7;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java index eee258516..1bb9ce0eb 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java @@ -10,6 +10,7 @@ package org.opendaylight.transportpce.renderer; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -58,10 +59,10 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.O import org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.Wavelength; import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.WavelengthBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.PathDescription; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZ; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ztoa.direction.ZToA; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPoint; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.PathDescription; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZ; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ztoa.direction.ZToA; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPoint; 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.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -73,6 +74,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.node.TerminationPointKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder; +import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,29 +91,29 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength public void useWavelengths(PathDescription pathDescription) { List atozTpIds = getAToZTpList(pathDescription); - List ztoaTpIds = getZToATpList(pathDescription); - + atozTpIds.removeIf(Objects::isNull); deleteAvailableWL(atozTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), - pathDescription.getAToZDirection().getAToZWavelengthNumber()); + pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava()); + List ztoaTpIds = getZToATpList(pathDescription); + ztoaTpIds.removeIf(Objects::isNull); deleteAvailableWL(ztoaTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), - pathDescription.getZToADirection().getZToAWavelengthNumber()); - - addUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber(), atozTpIds); - addUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber(), ztoaTpIds); + pathDescription.getZToADirection().getZToAWavelengthNumber().toJava()); + addUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava(), atozTpIds); + addUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber().toJava(), ztoaTpIds); } @Override public void freeWavelengths(PathDescription pathDescription) { List atozTpIds = getAToZTpList(pathDescription); List ztoaTpIds = getZToATpList(pathDescription); - - deleteUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber(), atozTpIds); - deleteUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber(), ztoaTpIds); - + atozTpIds.removeIf(Objects::isNull); + ztoaTpIds.removeIf(Objects::isNull); + deleteUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava(), atozTpIds); + deleteUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber().toJava(), ztoaTpIds); addAvailableWL(atozTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), - pathDescription.getAToZDirection().getAToZWavelengthNumber()); + pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava()); addAvailableWL(ztoaTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), - pathDescription.getZToADirection().getZToAWavelengthNumber()); + pathDescription.getZToADirection().getZToAWavelengthNumber().toJava()); } private List getAToZTpList(PathDescription pathDescription) { @@ -125,7 +127,8 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength return aToZ.getResource().getResource() instanceof TerminationPoint; }).map(aToZ -> { TerminationPoint tp = (TerminationPoint) aToZ.getResource().getResource(); - if ((tp == null) || (tp.getTpNodeId() == null) || (tp.getTpId() == null)) { + if ((tp == null) || (tp.getTpNodeId() == null) || (tp.getTpId() == null) + || tp.getTpId().isEmpty()) { LOG.warn("Termination point in AToZ node {} contains nulls! Skipping this node!", aToZ.getId()); return null; } @@ -144,7 +147,8 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength return zToA.getResource().getResource() instanceof TerminationPoint; }).map(zToA -> { TerminationPoint tp = (TerminationPoint) zToA.getResource().getResource(); - if ((tp == null) || (tp.getTpNodeId() == null) || (tp.getTpId() == null)) { + if ((tp == null) || (tp.getTpNodeId() == null) || (tp.getTpId() == null) + || tp.getTpId().isEmpty()) { LOG.warn("Termination point in ZToA node {} contains nulls! Skipping this node!", zToA.getId()); return null; } @@ -223,7 +227,6 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength } Node1Builder node1Builder = new Node1Builder(node1); - switch (node2.getNodeType()) { case DEGREE: DegreeAttributes degreeAttributes = node1.getDegreeAttributes(); @@ -234,14 +237,12 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength degreeAttributesBuilder = new DegreeAttributesBuilder(degreeAttributes); } List availableDegreeWLs = - degreeAttributesBuilder.getAvailableWavelengths(); - if (availableDegreeWLs == null) { - availableDegreeWLs = new ArrayList<>(); - degreeAttributesBuilder.setAvailableWavelengths(availableDegreeWLs); - } + .AvailableWavelengths> availableDegreeWLs = new ArrayList<>(degreeAttributesBuilder + .getAvailableWavelengths()); availableDegreeWLs.add(new org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree - .node.attributes.AvailableWavelengthsBuilder().setIndex(wavelengthNumber).build()); + .node.attributes.AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthNumber)) + .build()); + degreeAttributesBuilder.setAvailableWavelengths(availableDegreeWLs); node1Builder.setDegreeAttributes(degreeAttributesBuilder.build()); break; case SRG: @@ -253,12 +254,11 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength srgAttributesBuilder = new SrgAttributesBuilder(srgAttributes); } List availableSrgWLs = srgAttributesBuilder.getAvailableWavelengths(); - if (availableSrgWLs == null) { - availableSrgWLs = new ArrayList<>(); - srgAttributesBuilder.setAvailableWavelengths(availableSrgWLs); - } - availableSrgWLs.add(new AvailableWavelengthsBuilder().setIndex(wavelengthNumber).build()); + .AvailableWavelengths> availableSrgWLs = new ArrayList<>(srgAttributesBuilder + .getAvailableWavelengths()); + availableSrgWLs.add(new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthNumber)) + .build()); + srgAttributesBuilder.setAvailableWavelengths(availableSrgWLs); node1Builder.setSrgAttributes(srgAttributesBuilder.build()); break; @@ -302,7 +302,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength availableWlIID = nodeIIDBuilder.child(DegreeAttributes.class) .child(org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node .attributes.AvailableWavelengths.class, - new AvailableWavelengthsKey(wavelengthNumber)) + new AvailableWavelengthsKey(Uint32.valueOf(wavelengthNumber))) .build(); break; case SRG: @@ -310,7 +310,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength .child(org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes .AvailableWavelengths.class, new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node - .attributes.AvailableWavelengthsKey(wavelengthNumber)) + .attributes.AvailableWavelengthsKey(Uint32.valueOf(wavelengthNumber))) .build(); break; @@ -405,19 +405,19 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREETXTTP: case DEGREETXRXTTP: usedWlIID = usedWlIIDBuilder.child(TxTtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(wavelengthIndex)).build(); + new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); break; case DEGREERXTTP: usedWlIID = usedWlIIDBuilder.child(RxTtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(wavelengthIndex)).build(); + new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); break; case DEGREETXCTP: case DEGREERXCTP: case DEGREETXRXCTP: usedWlIID = usedWlIIDBuilder.child(CtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(wavelengthIndex)).build(); + new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); break; case SRGTXCP: @@ -427,14 +427,14 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength .openroadm.network.topology.rev181130.networks.network.node.termination.point.cp.attributes .UsedWavelengths.class, new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology .rev181130.networks.network.node.termination.point.cp.attributes - .UsedWavelengthsKey(wavelengthIndex)).build(); + .UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); break; case SRGTXRXPP: case SRGRXPP: case SRGTXPP: usedWlIID = usedWlIIDBuilder.child(PpAttributes.class).child(UsedWavelength.class, - new UsedWavelengthKey(wavelengthIndex)).build(); + new UsedWavelengthKey(Uint32.valueOf(wavelengthIndex))).build(); break; case XPONDERNETWORK: @@ -494,43 +494,41 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREETXTTP: case DEGREETXRXTTP: TxTtpAttributes txTtpAttributes = null; + List usedDegreeTxTtpWls; if (tp1 != null) { txTtpAttributes = tp1.getTxTtpAttributes(); } TxTtpAttributesBuilder txTtpAttributesBuilder; if (txTtpAttributes == null) { txTtpAttributesBuilder = new TxTtpAttributesBuilder(); + usedDegreeTxTtpWls = new ArrayList<>(); } else { txTtpAttributesBuilder = new TxTtpAttributesBuilder(txTtpAttributes); + usedDegreeTxTtpWls = new ArrayList<>(txTtpAttributesBuilder.getUsedWavelengths()); } - List usedDegreeTxTtpWls = txTtpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeTxTtpWls == null) { - usedDegreeTxTtpWls = new ArrayList<>(); - txTtpAttributesBuilder.setUsedWavelengths(usedDegreeTxTtpWls); - } - usedDegreeTxTtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) + usedDegreeTxTtpWls.add(new UsedWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthIndex)) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + txTtpAttributesBuilder.setUsedWavelengths(usedDegreeTxTtpWls); tp1Builder.setTxTtpAttributes(txTtpAttributesBuilder.build()); break; case DEGREERXTTP: RxTtpAttributes rxTtpAttributes = null; + List usedDegreeRxTtpWls; if (tp1 != null) { rxTtpAttributes = tp1.getRxTtpAttributes(); } RxTtpAttributesBuilder rxTtpAttributesBuilder; if (rxTtpAttributes == null) { rxTtpAttributesBuilder = new RxTtpAttributesBuilder(); + usedDegreeRxTtpWls = new ArrayList<>(); } else { rxTtpAttributesBuilder = new RxTtpAttributesBuilder(rxTtpAttributes); + usedDegreeRxTtpWls = new ArrayList<>(rxTtpAttributesBuilder.getUsedWavelengths()); } - List usedDegreeRxTtpWls = rxTtpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeRxTtpWls == null) { - usedDegreeRxTtpWls = new ArrayList<>(); - rxTtpAttributesBuilder.setUsedWavelengths(usedDegreeRxTtpWls); - } - usedDegreeRxTtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) + usedDegreeRxTtpWls.add(new UsedWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthIndex)) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + rxTtpAttributesBuilder.setUsedWavelengths(usedDegreeRxTtpWls); tp1Builder.setRxTtpAttributes(rxTtpAttributesBuilder.build()); break; @@ -538,22 +536,21 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREERXCTP: case DEGREETXRXCTP: CtpAttributes ctpAttributes = null; + List usedDegreeCtpWls; if (tp1 != null) { ctpAttributes = tp1.getCtpAttributes(); } CtpAttributesBuilder ctpAttributesBuilder; if (ctpAttributes == null) { ctpAttributesBuilder = new CtpAttributesBuilder(); + usedDegreeCtpWls = new ArrayList<>(); } else { ctpAttributesBuilder = new CtpAttributesBuilder(ctpAttributes); + usedDegreeCtpWls = new ArrayList<>(ctpAttributesBuilder.getUsedWavelengths()); } - List usedDegreeCtpWls = ctpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeCtpWls == null) { - usedDegreeCtpWls = new ArrayList<>(); - ctpAttributesBuilder.setUsedWavelengths(usedDegreeCtpWls); - } - usedDegreeCtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) + usedDegreeCtpWls.add(new UsedWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthIndex)) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + ctpAttributesBuilder.setUsedWavelengths(usedDegreeCtpWls); tp1Builder.setCtpAttributes(ctpAttributesBuilder.build()); break; @@ -561,26 +558,24 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case SRGRXCP: case SRGTXRXCP: CpAttributes cpAttributes = null; + List usedDegreeCpWls; if (tp1 != null) { cpAttributes = tp1.getCpAttributes(); } CpAttributesBuilder cpAttributesBuilder; if (cpAttributes == null) { cpAttributesBuilder = new CpAttributesBuilder(); + usedDegreeCpWls = new ArrayList<>(); } else { cpAttributesBuilder = new CpAttributesBuilder(cpAttributes); - } - List usedDegreeCpWls = cpAttributesBuilder - .getUsedWavelengths(); - if (usedDegreeCpWls == null) { - usedDegreeCpWls = new ArrayList<>(); - cpAttributesBuilder.setUsedWavelengths(usedDegreeCpWls); + usedDegreeCpWls = new ArrayList<>(cpAttributesBuilder.getUsedWavelengths()); } usedDegreeCpWls.add(new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .networks.network.node.termination.point.cp.attributes.UsedWavelengthsBuilder() - .setIndex(wavelengthIndex) - .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + .networks.network.node.termination.point.cp.attributes.UsedWavelengthsBuilder() + .setIndex(Uint32.valueOf(wavelengthIndex)) + .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + cpAttributesBuilder.setUsedWavelengths(usedDegreeCpWls); tp1Builder.setCpAttributes(cpAttributesBuilder.build()); break; @@ -588,22 +583,21 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case SRGRXPP: case SRGTXPP: PpAttributes ppAttributes = null; + List usedDegreePpWls; if (tp1 != null) { ppAttributes = tp1.getPpAttributes(); } PpAttributesBuilder ppAttributesBuilder; if (ppAttributes == null) { ppAttributesBuilder = new PpAttributesBuilder(); + usedDegreePpWls = new ArrayList<>(); } else { ppAttributesBuilder = new PpAttributesBuilder(ppAttributes); + usedDegreePpWls = new ArrayList<>(ppAttributesBuilder.getUsedWavelength()); } - List usedDegreePpWls = ppAttributesBuilder.getUsedWavelength(); - if (usedDegreePpWls == null) { - usedDegreePpWls = new ArrayList<>(); - ppAttributesBuilder.setUsedWavelength(usedDegreePpWls); - } - usedDegreePpWls.add(new UsedWavelengthBuilder().setIndex(wavelengthIndex) + usedDegreePpWls.add(new UsedWavelengthBuilder().setIndex(Uint32.valueOf(wavelengthIndex)) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + ppAttributesBuilder.setUsedWavelength(usedDegreePpWls); tp1Builder.setPpAttributes(ppAttributesBuilder.build()); break;