From a2c215874e665ca82672f0ed77d219fd150a0026 Mon Sep 17 00:00:00 2001 From: orenais Date: Thu, 21 Dec 2023 18:08:05 +0100 Subject: [PATCH] Refactoring of Tapi Step3 Add characteristics introduced in T-API 2.4 starting with nodes. Add Payload-structure and photonic-owned-node-edge-point-spec to xpdr OTSi and OTS NEPs (at initialization, and onDataTreeChange) JIRA: TRNSPRTPCE-759 Signed-off-by: orenais Change-Id: I71e5e148b9ac4cd94589bb85c39618effdde3aa4 --- .../topology/ConvertORToTapiTopology.java | 128 ++++++++++-------- .../topology/TapiNetworkModelServiceImpl.java | 120 +++++++++++++--- .../tapi/topology/TopologyUtils.java | 1 + ...test03_tapi_device_change_notifications.py | 2 - 4 files changed, 173 insertions(+), 78 deletions(-) diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORToTapiTopology.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORToTapiTopology.java index 6c97ba4de..3aaeeef7f 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORToTapiTopology.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORToTapiTopology.java @@ -598,6 +598,71 @@ public class ConvertORToTapiTopology { return null; } + public OwnedNodeEdgePointBuilder addPayloadStructureAndPhotSpecToOnep(String nodeId, + Map freqWidthMap, List operModeList, + Collection sicColl, OwnedNodeEdgePointBuilder onepBldr, String keyword) { + if (String.join("+", nodeId, TapiStringConstants.OTSI_MC).equals(keyword) + || String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA_OTS).equals(keyword)) { + //Creating OTS & OTSI_MC NEP specific attributes + onepBldr.setSupportedPayloadStructure(createSupportedPayloadStructureForPhtncMedia( + sicColl,operModeList)); + SpectrumCapabilityPacBuilder spectrumPac = new SpectrumCapabilityPacBuilder(); + OccupiedSpectrumBuilder ospecBd = new OccupiedSpectrumBuilder(); + if (freqWidthMap == null || freqWidthMap.isEmpty()) { + ospecBd + .setUpperFrequency(Uint64.valueOf(0)) + .setLowerFrequency(Uint64.valueOf(0)); + onepBldr.setAvailablePayloadStructure(createAvailablePayloadStructureForPhtncMedia( + false, sicColl,operModeList)); + double naz = 0.01; + AvailableSpectrum aspec = new AvailableSpectrumBuilder() + .setUpperFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + naz))) + .setLowerFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06 + naz))) + .build(); + Map aspecMap = new HashMap<>(); + aspecMap.put(new AvailableSpectrumKey(aspec.getLowerFrequency(), + aspec.getUpperFrequency()), aspec); + spectrumPac.setAvailableSpectrum(aspecMap); + } else { + onepBldr.setAvailablePayloadStructure(createAvailablePayloadStructureForPhtncMedia( + true, sicColl,operModeList)); + ospecBd + .setUpperFrequency(Uint64.valueOf(Math.round( + freqWidthMap.keySet().iterator().next().doubleValue() * 1E09 + + (freqWidthMap.entrySet().iterator().next().getValue().doubleValue() * 1E06) / 2))) + .setLowerFrequency(Uint64.valueOf(Math.round( + freqWidthMap.keySet().iterator().next().doubleValue() * 1E09 + - (freqWidthMap.entrySet().iterator().next().getValue().doubleValue() * 1E06) / 2))); + } + OccupiedSpectrum ospec = ospecBd.build(); + Map ospecMap = new HashMap<>(); + ospecMap.put(new OccupiedSpectrumKey(ospec.getLowerFrequency(), + ospec.getUpperFrequency()), ospec); + spectrumPac.setOccupiedSpectrum(ospecMap); + double nazz = 0.01; + SupportableSpectrum sspec = new SupportableSpectrumBuilder() + .setUpperFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + nazz))) + .setLowerFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06 + nazz))) + .build(); + Map sspecMap = new HashMap<>(); + sspecMap.put(new SupportableSpectrumKey(sspec.getLowerFrequency(), + sspec.getUpperFrequency()), sspec); + spectrumPac.setSupportableSpectrum(sspecMap); + PhotonicMediaNodeEdgePointSpec pnepSpec = new PhotonicMediaNodeEdgePointSpecBuilder() + .setSpectrumCapabilityPac(spectrumPac.build()) + .build(); + org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.OwnedNodeEdgePoint1 onep1 = + new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121 + .OwnedNodeEdgePoint1Builder() + .setPhotonicMediaNodeEdgePointSpec(pnepSpec) + .build(); + onepBldr.addAugmentation(onep1); + } + return onepBldr; + } + private OduSwitchingPools createOduSwitchingPoolForTp100G() { Map nblMap = new HashMap<>(); int count = 1; @@ -943,10 +1008,12 @@ public class ConvertORToTapiTopology { if (("IfOCHOTUCnODUCn").equals(ifCapType) || ("IfOCHOTUCnODUCnUniregen").equals(ifCapType) || ("IfOCHOTUCnODUCnRegen").equals(ifCapType)) { opModeList.add(new OperationalModeKey("400G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "400G rate available", oorTp.getTpId().toString()); break; } } opModeList.add(new OperationalModeKey("100G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "100G rate available", oorTp.getTpId().toString()); } else { opModeList = oorTp.augmentation( org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1.class) @@ -954,65 +1021,8 @@ public class ConvertORToTapiTopology { .toList(); } Map freqWidthMap = getXpdrUsedWavelength(oorTp); - if (String.join("+", this.ietfNodeId, TapiStringConstants.OTSI_MC).equals(keyword) - || String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA_OTS).equals(keyword)) { - //Creating OTS & OTSI_MC NEP specific attributes - onepBldr.setSupportedPayloadStructure(createSupportedPayloadStructureForPhtncMedia( - sicColl,opModeList)); - SpectrumCapabilityPacBuilder spectrumPac = new SpectrumCapabilityPacBuilder(); - OccupiedSpectrumBuilder ospecBd = new OccupiedSpectrumBuilder(); - if (freqWidthMap != null && !freqWidthMap.isEmpty()) { - onepBldr.setAvailablePayloadStructure(createAvailablePayloadStructureForPhtncMedia( - true, sicColl,opModeList)); - ospecBd - .setUpperFrequency(Uint64.valueOf(Math.round( - freqWidthMap.keySet().iterator().next().doubleValue() * 1E09 - + (freqWidthMap.entrySet().iterator().next().getValue().doubleValue() * 1E06) / 2))) - .setLowerFrequency(Uint64.valueOf(Math.round( - freqWidthMap.keySet().iterator().next().doubleValue() * 1E09 - - (freqWidthMap.entrySet().iterator().next().getValue().doubleValue() * 1E06) / 2))); - } else { - ospecBd - .setUpperFrequency(Uint64.valueOf(0)) - .setLowerFrequency(Uint64.valueOf(0)); - onepBldr.setAvailablePayloadStructure(createAvailablePayloadStructureForPhtncMedia( - false, sicColl,opModeList)); - double naz = 0.01; - AvailableSpectrum aspec = new AvailableSpectrumBuilder() - .setUpperFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + naz))) - .setLowerFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 - + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06 + naz))) - .build(); - Map aspecMap = new HashMap<>(); - aspecMap.put(new AvailableSpectrumKey(aspec.getLowerFrequency(), - aspec.getUpperFrequency()), aspec); - spectrumPac.setAvailableSpectrum(aspecMap); - } - OccupiedSpectrum ospec = ospecBd.build(); - Map ospecMap = new HashMap<>(); - ospecMap.put(new OccupiedSpectrumKey(ospec.getLowerFrequency(), - ospec.getUpperFrequency()), ospec); - spectrumPac.setOccupiedSpectrum(ospecMap); - double nazz = 0.01; - SupportableSpectrum sspec = new SupportableSpectrumBuilder() - .setUpperFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 + nazz))) - .setLowerFrequency(Uint64.valueOf(Math.round(GridConstant.START_EDGE_FREQUENCY * 1E09 - + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06 + nazz))) - .build(); - Map sspecMap = new HashMap<>(); - sspecMap.put(new SupportableSpectrumKey(sspec.getLowerFrequency(), - sspec.getUpperFrequency()), sspec); - spectrumPac.setSupportableSpectrum(sspecMap); - PhotonicMediaNodeEdgePointSpec pnepSpec = new PhotonicMediaNodeEdgePointSpecBuilder() - .setSpectrumCapabilityPac(spectrumPac.build()) - .build(); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.OwnedNodeEdgePoint1 onep1 = - new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121 - .OwnedNodeEdgePoint1Builder() - .setPhotonicMediaNodeEdgePointSpec(pnepSpec) - .build(); - onepBldr.addAugmentation(onep1); - } + onepBldr = addPayloadStructureAndPhotSpecToOnep(this.ietfNodeId, freqWidthMap, opModeList, sicColl, + onepBldr, keyword); } return onepBldr.build(); } diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetworkModelServiceImpl.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetworkModelServiceImpl.java index 694200c75..2c3cde2da 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetworkModelServiceImpl.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetworkModelServiceImpl.java @@ -21,9 +21,14 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.Timeouts; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.tapi.R2RTapiLinkDiscovery; @@ -46,8 +51,15 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.x import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.SupportedIfCapability; import org.opendaylight.yang.gen.v1.http.org.openroadm.switching.pool.types.rev191129.SwitchingPoolTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev230526.xpdr.mode.attributes.supported.operational.modes.OperationalModeKey; +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; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey; +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.TpId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.AdministrativeState; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.Context; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.ContextBuilder; @@ -686,11 +698,15 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .build(); List newSupIfCapList = - new ArrayList<>(xpdrNetMaps.get(i).getSupportedInterfaceCapability()); + new ArrayList<>(xpdrNetMaps.get(i).getSupportedInterfaceCapability()); + List opModeList = new ArrayList<>(); + if (xpdrNetMaps.get(i).getSupportedOperationalMode() != null) { + opModeList.addAll(xpdrNetMaps.get(i).getSupportedOperationalMode()); + } - OwnedNodeEdgePoint onep = createNep(nepUuid2, xpdrNetMaps.get(i).getLogicalConnectionPoint(), + OwnedNodeEdgePoint onep = createNep(nodeId, nepUuid2, xpdrNetMaps.get(i).getLogicalConnectionPoint(), Map.of(onedName.key(), onedName), LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, - true, String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA_OTS), newSupIfCapList, + true, String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA_OTS), newSupIfCapList, opModeList, transformOperState(xpdrNetMaps.get(i).getPortOperState()), transformAdminState(xpdrNetMaps.get(i).getPortAdminState())); onepl.put(onep.key(), onep); @@ -708,10 +724,14 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { List newSupIfCapList = new ArrayList<>(xpdrNetMaps.get(i).getSupportedInterfaceCapability()); + List opModeList = new ArrayList<>(); + if (xpdrNetMaps.get(i).getSupportedOperationalMode() != null) { + opModeList.addAll(xpdrNetMaps.get(i).getSupportedOperationalMode()); + } - OwnedNodeEdgePoint onep = createNep(nepUuid3, xpdrNetMaps.get(i).getLogicalConnectionPoint(), + OwnedNodeEdgePoint onep = createNep(nodeId, nepUuid3, xpdrNetMaps.get(i).getLogicalConnectionPoint(), Map.of(onedName.key(), onedName), LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, - false, String.join("+", nodeId, TapiStringConstants.OTSI_MC), newSupIfCapList, + false, String.join("+", nodeId, TapiStringConstants.OTSI_MC), newSupIfCapList, opModeList, transformOperState(xpdrNetMaps.get(i).getPortOperState()), transformAdminState(xpdrNetMaps.get(i).getPortAdminState())); onepl.put(onep.key(), onep); @@ -742,9 +762,9 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { List newSupIfCapList = new ArrayList<>(xpdrClMaps.get(i).getSupportedInterfaceCapability()); - OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrClMaps.get(i).getLogicalConnectionPoint(), + OwnedNodeEdgePoint onep = createNep(nodeId, nepUuid, xpdrClMaps.get(i).getLogicalConnectionPoint(), Map.of(name.key(), name), LayerProtocolName.DSR, LayerProtocolName.DSR, true, - String.join("+", nodeId, TapiStringConstants.DSR), newSupIfCapList, + String.join("+", nodeId, TapiStringConstants.DSR), newSupIfCapList, null, transformOperState(xpdrClMaps.get(i).getPortOperState()), transformAdminState(xpdrClMaps.get(i).getPortAdminState())); onepl.put(onep.key(), onep); @@ -764,11 +784,10 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { List newSupIfCapList = new ArrayList<>(xpdrNetMaps.get(i).getSupportedInterfaceCapability()); - - OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrNetMaps.get(i).getLogicalConnectionPoint(), + OwnedNodeEdgePoint onep = createNep(nodeId, nepUuid, xpdrNetMaps.get(i).getLogicalConnectionPoint(), Map.of(onedName.key(), onedName), LayerProtocolName.ODU, LayerProtocolName.DSR, true, - String.join("+", nodeId, TapiStringConstants.I_ODU), newSupIfCapList, + String.join("+", nodeId, TapiStringConstants.I_ODU), newSupIfCapList, null, transformOperState(xpdrNetMaps.get(i).getPortOperState()), transformAdminState(xpdrNetMaps.get(i).getPortAdminState())); onepl.put(onep.key(), onep); @@ -789,10 +808,10 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { List newSupIfCapList = new ArrayList<>(xpdrClMaps.get(i).getSupportedInterfaceCapability()); - OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrClMaps.get(i).getLogicalConnectionPoint(), + OwnedNodeEdgePoint onep = createNep(nodeId, nepUuid, xpdrClMaps.get(i).getLogicalConnectionPoint(), Map.of(onedName.key(), onedName), LayerProtocolName.ODU, LayerProtocolName.DSR, true, - String.join("+", nodeId, TapiStringConstants.E_ODU), newSupIfCapList, + String.join("+", nodeId, TapiStringConstants.E_ODU), newSupIfCapList, null, transformOperState(xpdrClMaps.get(i).getPortOperState()), transformAdminState(xpdrClMaps.get(i).getPortAdminState())); onepl.put(onep.key(), onep); @@ -811,12 +830,12 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { return adminState.equals(AdminStates.InService) ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED; } - private OwnedNodeEdgePoint createNep(Uuid nepUuid, String tpid, Map nepNames, - LayerProtocolName nepProtocol, LayerProtocolName nodeProtocol, boolean withSip, - String keyword, - List sicList, - OperationalState operState, AdministrativeState adminState) { + private OwnedNodeEdgePoint createNep(String nodeId, Uuid nepUuid, String tpid, Map nepNames, + LayerProtocolName nepProtocol, LayerProtocolName nodeProtocol, boolean withSip, String keyword, + List sicList, List opModeList, + OperationalState operState, AdministrativeState adminState) { List sicListTemp = new ArrayList<>(); + List keyedOpModeList = new ArrayList<>(); for (SupportedIfCapability supInterCapa : sicList) { SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() .withKey(new SupportedInterfaceCapabilityKey(supInterCapa)) @@ -840,6 +859,33 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { onepBldr.setDirection(Direction.BIDIRECTIONAL).setLinkPortRole(PortRole.SYMMETRIC) .setAdministrativeState(adminState).setOperationalState(operState) .setLifecycleState(LifecycleState.INSTALLED); + if (keyword.contains(TapiStringConstants.OTSI_MC) || keyword.contains(TapiStringConstants.PHTNC_MEDIA_OTS)) { + if (opModeList == null || opModeList.isEmpty()) { + for (SupportedInterfaceCapability sic : sicColl) { + String ifCapType = sic.getIfCapType().toString().split("\\{")[0]; + if (("IfOCHOTUCnODUCn").equals(ifCapType) || ("IfOCHOTUCnODUCnUniregen").equals(ifCapType) + || ("IfOCHOTUCnODUCnRegen").equals(ifCapType)) { + keyedOpModeList.add(new OperationalModeKey("400G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "400G rate available", tpid); + break; + } + } + keyedOpModeList.add(new OperationalModeKey("100G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "100G rate available", tpid); + } else { + for (String opMode : opModeList) { + keyedOpModeList.add(new OperationalModeKey(opMode)); + } + } + Map freqWidthMap = new HashMap<>(); + if (getNetworkTerminationPointFromDatastore(nodeId, tpid) != null) { + freqWidthMap = tapiFactory.getXpdrUsedWavelength(getNetworkTerminationPointFromDatastore(nodeId, tpid)); + } else { + LOG.error("CREATENEP, No Tp found in topology for LCP {}, of NodeId {} ", tpid, nodeId); + } + onepBldr = tapiFactory.addPayloadStructureAndPhotSpecToOnep(nodeId, freqWidthMap, keyedOpModeList, sicColl, + onepBldr, keyword); + } return onepBldr.build(); } @@ -1276,4 +1322,44 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { LOG.error("Error committing into datastore", e); } } + + /** + * Get a network termination point for nodeId and tpId. + * @param nodeId String + * @param tpId String + * @return network termination point, null otherwise + */ + private TerminationPoint getNetworkTerminationPointFromDatastore(String nodeId, String tpId) { + InstanceIdentifier tpIID = InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .child( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.Node.class, + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.NodeKey(new NodeId(nodeId))) + .augmentation(Node1.class) + .child( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .networks.network.node.TerminationPoint.class, + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .networks.network.node.TerminationPointKey(new TpId(tpId))) + .build(); + try (ReadTransaction readTx = this.networkTransactionService.getDataBroker().newReadOnlyTransaction()) { + Optional optionalTerminationPoint = readTx + .read(LogicalDatastoreType.CONFIGURATION, tpIID) + .get(Timeouts.DATASTORE_READ, TimeUnit.MILLISECONDS); + return optionalTerminationPoint.isEmpty() ? null : optionalTerminationPoint.orElseThrow(); + } catch (ExecutionException | TimeoutException e) { + LOG.warn("Exception while getting termination {} for node id {} point from {} topology", + tpId, nodeId, NetworkUtils.OVERLAY_NETWORK_ID, e); + return null; + } catch (InterruptedException e) { + LOG.warn("Getting termination {} for node id {} point from {} topology was interrupted", + tpId, nodeId, NetworkUtils.OVERLAY_NETWORK_ID, e); + Thread.currentThread().interrupt(); + return null; + } + } + + } diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java index 349d3784d..640fc9f5c 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java @@ -77,6 +77,7 @@ public final class TopologyUtils { private static final Logger LOG = LoggerFactory.getLogger(TopologyUtils.class); private Map tapiSips; private final TapiLink tapiLink; + public static final String NOOPMODEDECLARED = "No operational mode declared in Topo for Tp {}, assumes by default "; public TopologyUtils(NetworkTransactionService networkTransactionService, DataBroker dataBroker, TapiLink tapiLink) { diff --git a/tests/transportpce_tests/tapi/test03_tapi_device_change_notifications.py b/tests/transportpce_tests/tapi/test03_tapi_device_change_notifications.py index 5d2364702..f6e78a3fb 100644 --- a/tests/transportpce_tests/tapi/test03_tapi_device_change_notifications.py +++ b/tests/transportpce_tests/tapi/test03_tapi_device_change_notifications.py @@ -405,7 +405,6 @@ class TransportPCEFulltesting(unittest.TestCase): time.sleep(2) self.assertEqual(response['status_code'], requests.codes.ok) link_list = response['output']['topology']['link'] - print(response['output']['topology']['link']) nb_updated_link = 0 for link in link_list: if all(x in link['name'][0]['value'] for x in ['XPDR-C1-XPDR1', 'XPDR1-NETWORK1']): @@ -427,7 +426,6 @@ class TransportPCEFulltesting(unittest.TestCase): def test_20_check_update_connectivity_service_Ethernet(self): self.tapi_serv_details["uuid"] = str(self.uuid_services.eth) - print(str(self.uuid_services.eth)) response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'get-connectivity-service-details', self.tapi_serv_details) self.assertEqual(response['status_code'], requests.codes.ok) -- 2.36.6