From: guillaume.lambert Date: Mon, 22 Apr 2024 12:33:20 +0000 (+0200) Subject: Rework TAPI TapiNetworkModelServiceImpl code style X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=63d09194b19dbf380d1b35faf4d5b51b74d1fbc4;p=transportpce.git Rework TAPI TapiNetworkModelServiceImpl code style JIRA: TRNSPRTPCE-735 Signed-off-by: guillaume.lambert Change-Id: I86ae4ee0ba9334168b02f105459ec626e85e52d0 --- 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 8706dc301..5a1669cd7 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 @@ -36,7 +36,6 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev231221.network.Nodes; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.NodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev230526.xpdr.odu.switching.pools.OduSwitchingPools; @@ -195,51 +194,64 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { LOG.info("Mapping of node {}: {}", orNodeId, node.getMapping().values()); // check type of device, check version and create node mapping - if (NodeTypes.Rdm.getIntValue() == node.getNodeInfo().getNodeType().getIntValue()) { - // ROADM device - // transform flat mapping list to per degree and per srg mapping lists - Map> mapDeg = new HashMap<>(); - Map> mapSrg = new HashMap<>(); - List mappingList = new ArrayList<>(node.nonnullMapping().values()); - mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); - - List nodeShardList = getRoadmNodelist(mappingList); - - // populate degree and srg LCP map - for (String str : nodeShardList) { - List interList = mappingList.stream().filter(x -> x.getLogicalConnectionPoint().contains(str)) + switch (node.getNodeInfo().getNodeType()) { + case Rdm: + // ROADM device + // transform flat mapping list to per degree and per srg mapping lists + Map> mapDeg = new HashMap<>(); + Map> mapSrg = new HashMap<>(); + List mappingList = new ArrayList<>(node.nonnullMapping().values()); + mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); + + List nodeShardList = getRoadmNodelist(mappingList); + + // populate degree and srg LCP map + for (String str : nodeShardList) { + List interList = mappingList.stream() + .filter(x -> x.getLogicalConnectionPoint().contains(str)) .collect(Collectors.toList()); - if (str.contains("DEG")) { - mapDeg.put(str, interList); - } else if (str.contains("SRG")) { - mapSrg.put(str, interList); - } else { - LOG.error("unknown element"); + if (str.contains("DEG")) { + mapDeg.put(str, interList); + } else if (str.contains("SRG")) { + mapSrg.put(str, interList); + } else { + LOG.error("unknown element"); + } + } + // Transform LCPs into ONEP + Map onepMap = + new HashMap<>(transformSrgToOnep(orNodeId, mapSrg)); + LOG.debug("CreateTapiNode NetworkModelServiceImpl, TopologicalMode = {}", topologicalMode); + LOG.debug("TAPINETWORKMODELSERVICEIMPL call transformSRGtoONEP (OrNodeId {} ", orNodeId); + LOG.debug("TAPINETWORKMODELSERVICEIMPL SRG OTSNode of retrieved OnepMap {} ", + onepMap.entrySet().stream() + .filter(e -> e.getValue().getSupportedCepLayerProtocolQualifierInstances() + .contains( + new SupportedCepLayerProtocolQualifierInstancesBuilder() + .setNumberOfCepInstances(Uint64.valueOf(1)) + .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROTS.VALUE) + .build())) + .collect(Collectors.toList())); + if (!topologicalMode.equals("Full")) { + // create tapi Node + Node roadmNode = createRoadmTapiNode("ROADMINFRA", onepMap); + mergeNodeinTopology(Map.of(roadmNode.key(), roadmNode)); + mergeSipsinContext(this.sipMap); + // TODO add states corresponding to device config -> based on mapping. + // This should be possible after Gilles work is merged + LOG.info("TAPI node for or node {} successfully merged", orNodeId); + break; } - } - // Transform LCPs into ONEP - Map onepMap = - new HashMap<>(transformSrgToOnep(orNodeId, mapSrg)); - LOG.debug("CreateTapiNode NetworkModelServiceImpl, TopologicalMode = {}", topologicalMode); - LOG.debug("TAPINETWORKMODELSERVICEIMPL call transformSRGtoONEP (OrNodeId {} ", orNodeId); - LOG.debug("TAPINETWORKMODELSERVICEIMPL SRG OTSNode of retrieved OnepMap {} ", - onepMap.entrySet().stream().filter(e -> e.getValue() - .getSupportedCepLayerProtocolQualifierInstances() - .contains(new SupportedCepLayerProtocolQualifierInstancesBuilder() - .setNumberOfCepInstances(Uint64.valueOf(1)) - .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROTS.VALUE) - .build())) - .collect(Collectors.toList())); - if (topologicalMode.equals("Full")) { onepMap.putAll(transformDegToOnep(orNodeId, mapDeg)); LOG.debug("TAPINETWORKMODELSERVICEIMPL DEG+SRG OTSNode of retrieved OnepMap {} ", - onepMap.entrySet().stream().filter(e -> e.getValue() - .getSupportedCepLayerProtocolQualifierInstances() - .contains(new SupportedCepLayerProtocolQualifierInstancesBuilder() - .setNumberOfCepInstances(Uint64.valueOf(1)) - .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROTS.VALUE) - .build())) - .collect(Collectors.toList())); + onepMap.entrySet().stream() + .filter(e -> e.getValue().getSupportedCepLayerProtocolQualifierInstances() + .contains( + new SupportedCepLayerProtocolQualifierInstancesBuilder() + .setNumberOfCepInstances(Uint64.valueOf(1)) + .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROTS.VALUE) + .build())) + .collect(Collectors.toList())); LOG.debug("TAPINETWORKMODELSERVICEIMPL DEG+SRG complete retrieved OnepMap {} ", onepMap); // create tapi Node Node roadmNode = createRoadmTapiNode(orNodeId, onepMap); @@ -250,51 +262,48 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { // rdm to rdm link creation if neighbour roadm is mounted LOG.info("checking if neighbor roadm exists"); - Map rdm2rdmLinks = this.linkDiscovery.readLLDP(new NodeId(orNodeId), orNodeVersion, - this.tapiTopoUuid); + Map rdm2rdmLinks = + this.linkDiscovery.readLLDP(new NodeId(orNodeId), orNodeVersion, this.tapiTopoUuid); if (!rdm2rdmLinks.isEmpty()) { mergeLinkinTopology(rdm2rdmLinks); } - } else { - // create tapi Node - Node roadmNode = createRoadmTapiNode("ROADMINFRA", onepMap); - mergeNodeinTopology(Map.of(roadmNode.key(), roadmNode)); - mergeSipsinContext(this.sipMap); - // TODO add states corresponding to device config -> based on mapping. - // This should be possible after Gilles work is merged - } + LOG.info("TAPI node for or node {} successfully merged", orNodeId); + break; - LOG.info("TAPI node for or node {} successfully merged", orNodeId); - } else if (NodeTypes.Xpdr.getIntValue() == node.getNodeInfo().getNodeType().getIntValue()) { - List networkMappings = node.nonnullMapping().values() - .stream().filter(k -> k.getLogicalConnectionPoint() - .contains("NETWORK")).collect(Collectors.toList()); - Map xpdrMap = new HashMap<>(); - for (Mapping mapping : networkMappings) { - Integer xpdrNb = Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]); - String nodeId = node.getNodeId() + TapiStringConstants.XXPDR + xpdrNb; - if (!xpdrMap.containsKey(xpdrNb)) { - List xpdrNetMaps = node.nonnullMapping().values() - .stream().filter(k -> k.getLogicalConnectionPoint() - .contains("XPDR" + xpdrNb + TapiStringConstants.NETWORK)).collect(Collectors.toList()); - List xpdrClMaps = node.nonnullMapping().values() - .stream().filter(k -> k.getLogicalConnectionPoint() - .contains("XPDR" + xpdrNb + TapiStringConstants.CLIENT)).collect(Collectors.toList()); - xpdrMap.put(xpdrNb, node.getNodeId()); - - // create switching pool - OduSwitchingPools oorOduSwitchingPool = createSwitchPoolForXpdr( - mapping.getXpdrType().getIntValue(), xpdrClMaps, xpdrNetMaps, xpdrNb); - - // node transformation - Map nodeMap = new HashMap<>(transformXpdrToTapiNode( - nodeId, xpdrClMaps, xpdrNetMaps, mapping.getXpdrType(), oorOduSwitchingPool)); - // add nodes and sips to tapi context - mergeNodeinTopology(nodeMap); - mergeSipsinContext(this.sipMap); + case Xpdr: + List networkMappings = node.nonnullMapping().values().stream() + .filter(k -> k.getLogicalConnectionPoint().contains("NETWORK")) + .collect(Collectors.toList()); + Map xpdrMap = new HashMap<>(); + for (Mapping mapping : networkMappings) { + Integer xpdrNb = + Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]); + String nodeId = node.getNodeId() + TapiStringConstants.XXPDR + xpdrNb; + if (!xpdrMap.containsKey(xpdrNb)) { + List xpdrNetMaps = node.nonnullMapping().values() + .stream().filter(k -> k.getLogicalConnectionPoint() + .contains("XPDR" + xpdrNb + TapiStringConstants.NETWORK)).collect(Collectors.toList()); + List xpdrClMaps = node.nonnullMapping().values() + .stream().filter(k -> k.getLogicalConnectionPoint() + .contains("XPDR" + xpdrNb + TapiStringConstants.CLIENT)).collect(Collectors.toList()); + xpdrMap.put(xpdrNb, node.getNodeId()); + // create switching pool + OduSwitchingPools oorOduSwitchingPool = createSwitchPoolForXpdr( + mapping.getXpdrType().getIntValue(), xpdrClMaps, xpdrNetMaps, xpdrNb); + // node transformation + Map nodeMap = new HashMap<>( + transformXpdrToTapiNode( + nodeId, xpdrClMaps, xpdrNetMaps, mapping.getXpdrType(), oorOduSwitchingPool)); + // add nodes and sips to tapi context + mergeNodeinTopology(nodeMap); + mergeSipsinContext(this.sipMap); + } } - } - LOG.info("TAPI node for or node {} successfully merged", orNodeId); + LOG.info("TAPI node for or node {} successfully merged", orNodeId); + break; + + default: + break; } // Device not managed yet } @@ -302,11 +311,9 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { @Override public void updateTapiTopology(String nodeId, Mapping mapping) { List uuids = getChangedNodeUuids(nodeId, mapping); - List changedOneps = updateNeps(mapping, uuids); updateLinks(changedOneps, mapping); sendNotification(changedOneps, mapping); - LOG.info("Updated TAPI topology successfully."); } @@ -327,11 +334,12 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } } - private Map getChangedAttributes(List changedOneps, - Mapping mapping) { + private Map getChangedAttributes( + List changedOneps, Mapping mapping) { Map changedAttributes = new HashMap<>(); for (Uuid nep : changedOneps) { - changedAttributes.put(new ChangedAttributesKey(nep.getValue()), + changedAttributes.put( + new ChangedAttributesKey(nep.getValue()), new ChangedAttributesBuilder().setValueName(nep.getValue()) .setOldValue(mapping.getPortOperState().equals("InService") ? "OutOfService" : "InService") .setNewValue(mapping.getPortOperState()) @@ -346,8 +354,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .augmentation(Context1.class).child(TopologyContext.class) .child(Topology.class, new TopologyKey(tapiTopoUuid)) .build(); - Optional optTopology = this.networkTransactionService - .read(LogicalDatastoreType.OPERATIONAL, topoIID).get(); + Optional optTopology = + this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, topoIID).get(); if (optTopology.isEmpty()) { LOG.error("Could not update TAPI links"); return; @@ -356,19 +364,21 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { LOG.info("UUIDofAffectedONEPS = {} ", changedOneps.toString()); for (Link link : optTopology.orElseThrow().nonnullLink().values()) { List linkNeps = Objects.requireNonNull(link.getNodeEdgePoint()).values().stream() - .map(NodeEdgePointRef::getNodeEdgePointUuid).collect(Collectors.toList()); - LOG.info("LinkEndPointsUUID = {} for link Name {}", linkNeps.toString(), link.getName().toString()); - if (!Collections.disjoint(changedOneps, linkNeps)) { - InstanceIdentifier linkIID = InstanceIdentifier.builder(Context.class) - .augmentation(Context1.class).child(TopologyContext.class) - .child(Topology.class, new TopologyKey(tapiTopoUuid)) - .child(Link.class, new LinkKey(link.getUuid())).build(); - Link linkblr = new LinkBuilder().setUuid(link.getUuid()) - .setAdministrativeState(transformAdminState(mapping.getPortAdminState())) - .setOperationalState(transformOperState(mapping.getPortOperState())).build(); - this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, linkIID, linkblr); - nbAffectedLinks++ ; + .map(NodeEdgePointRef::getNodeEdgePointUuid) + .collect(Collectors.toList()); + LOG.info("LinkEndPointsUUID = {} for link Name {}", linkNeps, link.getName()); + if (Collections.disjoint(changedOneps, linkNeps)) { + continue; } + InstanceIdentifier linkIID = InstanceIdentifier.builder(Context.class) + .augmentation(Context1.class).child(TopologyContext.class) + .child(Topology.class, new TopologyKey(tapiTopoUuid)) + .child(Link.class, new LinkKey(link.getUuid())).build(); + Link linkblr = new LinkBuilder().setUuid(link.getUuid()) + .setAdministrativeState(transformAdminState(mapping.getPortAdminState())) + .setOperationalState(transformOperState(mapping.getPortOperState())).build(); + this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, linkIID, linkblr); + nbAffectedLinks++ ; } LOG.info("AffectedLinksNb = {} ", nbAffectedLinks); this.networkTransactionService.commit().get(); @@ -385,35 +395,37 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .augmentation(Context1.class).child(TopologyContext.class) .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid)) .build(); - Optional optionalNode = this.networkTransactionService.read( - LogicalDatastoreType.OPERATIONAL, nodeIID).get(); - if (optionalNode.isPresent()) { - Node node = optionalNode.orElseThrow(); - List oneps = node.getOwnedNodeEdgePoint().values().stream() - .filter(onep -> ((Name) onep.getName().values().toArray()[0]).getValue() - .contains(mapping.getLogicalConnectionPoint())).collect(Collectors.toList()); - for (OwnedNodeEdgePoint onep : oneps) { - changedOneps.add(onep.getUuid()); - updateSips(mapping, onep); - CepList cepList = getUpdatedCeps(mapping, onep); - InstanceIdentifier onepIID = InstanceIdentifier.builder(Context.class) - .augmentation(Context1.class).child(TopologyContext.class) - .child(Topology.class, new TopologyKey(tapiTopoUuid)) - .child(Node.class, new NodeKey(nodeUuid)) - .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(onep.getUuid())) - .build(); - OwnedNodeEdgePoint onepblr = new OwnedNodeEdgePointBuilder().setUuid(onep.getUuid()) - .addAugmentation(new OwnedNodeEdgePoint1Builder().setCepList(cepList).build()) - .setAdministrativeState(transformAdminState(mapping.getPortAdminState())) - .setOperationalState(transformOperState(mapping.getPortOperState())).build(); - this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, onepIID, onepblr); - LOG.info("UpdatedNEP {} of UUID {} to ADMIN {} OPER {}", - onep.getName().toString(), onep.getUuid(), - transformAdminState(mapping.getPortAdminState()), - transformOperState(mapping.getPortOperState())); - } - this.networkTransactionService.commit().get(); + Optional optionalNode = + this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, nodeIID).get(); + if (optionalNode.isEmpty()) { + continue; } + Node node = optionalNode.orElseThrow(); + List oneps = node.getOwnedNodeEdgePoint().values().stream() + .filter(onep -> ((Name) onep.getName().values().toArray()[0]).getValue() + .contains(mapping.getLogicalConnectionPoint())) + .collect(Collectors.toList()); + for (OwnedNodeEdgePoint onep : oneps) { + changedOneps.add(onep.getUuid()); + updateSips(mapping, onep); + CepList cepList = getUpdatedCeps(mapping, onep); + InstanceIdentifier onepIID = InstanceIdentifier.builder(Context.class) + .augmentation(Context1.class).child(TopologyContext.class) + .child(Topology.class, new TopologyKey(tapiTopoUuid)) + .child(Node.class, new NodeKey(nodeUuid)) + .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(onep.getUuid())) + .build(); + OwnedNodeEdgePoint onepblr = new OwnedNodeEdgePointBuilder().setUuid(onep.getUuid()) + .addAugmentation(new OwnedNodeEdgePoint1Builder().setCepList(cepList).build()) + .setAdministrativeState(transformAdminState(mapping.getPortAdminState())) + .setOperationalState(transformOperState(mapping.getPortOperState())).build(); + this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, onepIID, onepblr); + LOG.info("UpdatedNEP {} of UUID {} to ADMIN {} OPER {}", + onep.getName().toString(), onep.getUuid(), + transformAdminState(mapping.getPortAdminState()), + transformOperState(mapping.getPortOperState())); + } + this.networkTransactionService.commit().get(); } catch (InterruptedException | ExecutionException e) { LOG.error("Could not update TAPI NEP"); } @@ -423,41 +435,53 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { private CepList getUpdatedCeps(Mapping mapping, OwnedNodeEdgePoint onep) { OwnedNodeEdgePoint1 onep1 = onep.augmentation(OwnedNodeEdgePoint1.class); + CepList guardClauseCepList = new CepListBuilder().setConnectionEndPoint(new HashMap<>()).build(); + if (onep1 == null) { + return guardClauseCepList; + } + CepList onep1CepList = onep1.getCepList(); + if (onep1CepList == null) { + return guardClauseCepList; + } + var onep1CepListConnEndPoint = onep1CepList.getConnectionEndPoint(); + if (onep1CepListConnEndPoint == null) { + return guardClauseCepList; + } Map cepMap = new HashMap<>(); - if (onep1 != null && onep1.getCepList() != null && onep1.getCepList().getConnectionEndPoint() != null) { - for (Map.Entry entry : onep1.getCepList().getConnectionEndPoint() - .entrySet()) { - ConnectionEndPoint cep = new ConnectionEndPointBuilder(entry.getValue()) - .setOperationalState(transformOperState(mapping.getPortOperState())).build(); - cepMap.put(entry.getKey(), cep); - } + for (Map.Entry entry : onep1CepListConnEndPoint.entrySet()) { + ConnectionEndPoint cep = new ConnectionEndPointBuilder(entry.getValue()) + .setOperationalState(transformOperState(mapping.getPortOperState())) + .build(); + cepMap.put(entry.getKey(), cep); } return new CepListBuilder().setConnectionEndPoint(cepMap).build(); } private List getChangedNodeUuids(String nodeId, Mapping mapping) { - List uuids = new ArrayList<>(); if (nodeId.contains("ROADM")) { - uuids.add(new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA)) - .getBytes(StandardCharsets.UTF_8)).toString())); - } else if (nodeId.contains("PDR")) { + return new ArrayList<>(List.of(new Uuid( + UUID.nameUUIDFromBytes( + (String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA)).getBytes(StandardCharsets.UTF_8)) + .toString()))); + } + if (nodeId.contains("PDR")) { LOG.debug("ANALYSING change in {}", nodeId); int xpdrNb = Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]); String xpdrNodeId = nodeId + TapiStringConstants.XXPDR + xpdrNb; - uuids.add(new Uuid(UUID.nameUUIDFromBytes((String.join("+", xpdrNodeId, TapiStringConstants.XPDR)) - .getBytes(StandardCharsets.UTF_8)).toString())); - } else { - LOG.error("Updating this device is currently not supported"); - return uuids; + return new ArrayList<>(List.of(new Uuid( + UUID.nameUUIDFromBytes( + (String.join("+", xpdrNodeId, TapiStringConstants.XPDR)).getBytes(StandardCharsets.UTF_8)) + .toString()))); } - return uuids; + LOG.error("Updating this device is currently not supported"); + return new ArrayList<>(); } private void updateSips(Mapping mapping, OwnedNodeEdgePoint onep) { - if (onep.getMappedServiceInterfacePoint() == null - || onep.getMappedServiceInterfacePoint().size() == 0) { + if (onep.getMappedServiceInterfacePoint() == null || onep.getMappedServiceInterfacePoint().size() == 0) { return; } + //TODO remove onep.getMappedServiceInterfacePoint().size() == 0 check -> a for-loop on empty list won't harm for (MappedServiceInterfacePoint msip : onep.getMappedServiceInterfacePoint().values()) { InstanceIdentifier sipIID = InstanceIdentifier .builder(Context.class) @@ -474,31 +498,35 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } private Map transformXpdrToTapiNode(String nodeId, List xpdrClMaps, - List xpdrNetMaps, XpdrNodeTypes xponderType, - OduSwitchingPools oorOduSwitchingPool) { + List xpdrNetMaps, XpdrNodeTypes xponderType, OduSwitchingPools oorOduSwitchingPool) { Map nodeMap = new HashMap<>(); LOG.info("creation of a DSR/ODU node for {}", nodeId); - Uuid nodeUuidDsr = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, TapiStringConstants.XPDR)) - .getBytes(StandardCharsets.UTF_8)).toString()); - Name nameDsr = new NameBuilder().setValueName("dsr/odu node name").setValue( - String.join("+", nodeId, TapiStringConstants.XPDR)).build(); - Name nameOtsi = new NameBuilder().setValueName("otsi node name").setValue( - String.join("+", nodeId, TapiStringConstants.XPDR)).build(); - Name nameNodeType = new NameBuilder().setValueName("Node Type") - .setValue(getNodeType(xponderType)).build(); - Set dsrLayerProtocols = Set.of(LayerProtocolName.DSR, LayerProtocolName.ODU, + Uuid nodeUuidDsr = new Uuid( + UUID.nameUUIDFromBytes( + (String.join("+", nodeId, TapiStringConstants.XPDR)).getBytes(StandardCharsets.UTF_8)) + .toString()); + Name nameDsr = new NameBuilder() + .setValueName("dsr/odu node name") + .setValue(String.join("+", nodeId, TapiStringConstants.XPDR)) + .build(); + Name nameOtsi = new NameBuilder() + .setValueName("otsi node name") + .setValue(String.join("+", nodeId, TapiStringConstants.XPDR)) + .build(); + Name nameNodeType = new NameBuilder().setValueName("Node Type").setValue(getNodeType(xponderType)).build(); + Set dsrLayerProtocols = Set.of( + LayerProtocolName.DSR, LayerProtocolName.ODU, LayerProtocolName.DIGITALOTN, LayerProtocolName.PHOTONICMEDIA); - Node dsrNode = createTapiXpdrNode(Map.of(nameDsr.key(), nameDsr, nameOtsi.key(), nameOtsi, nameNodeType.key(), - nameNodeType), dsrLayerProtocols, nodeId, nodeUuidDsr, xpdrClMaps, xpdrNetMaps, xponderType, - oorOduSwitchingPool); - + Node dsrNode = createTapiXpdrNode( + Map.of(nameDsr.key(), nameDsr, nameOtsi.key(), nameOtsi, nameNodeType.key(), nameNodeType), + dsrLayerProtocols, nodeId, nodeUuidDsr, xpdrClMaps, xpdrNetMaps, xponderType, oorOduSwitchingPool); nodeMap.put(dsrNode.key(), dsrNode); return nodeMap; } - private OduSwitchingPools createSwitchPoolForXpdr(int xpdrType, List xpdrClMaps, List xpdrNetMaps, - Integer xpdrNb) { - // todo: are switching pool correct here?? + private OduSwitchingPools createSwitchPoolForXpdr( + int xpdrType, List xpdrClMaps, List xpdrNetMaps, Integer xpdrNb) { + //TODO are switching pool correct here?? switch (xpdrType) { case 1: // Tpdr @@ -515,8 +543,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { return null; } - private Map transformSrgToOnep(String orNodeId, - Map> mapSrg) { + private Map transformSrgToOnep( + String orNodeId, Map> mapSrg) { LOG.debug("CREATENEP transformSrgToOnep, ListOfMapping {}, of NodeId {} ", mapSrg, orNodeId); Map tpMap = new HashMap<>(); //List tpList = new ArrayList<>(); @@ -562,8 +590,7 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { private Map transformDegToOnep(String orNodeId, Map> mapDeg) { - LOG.debug("CREATENEP transformDegToOnep, ListOfMapping {}, of NodeId {} ", - mapDeg.toString(), orNodeId); + LOG.debug("CREATENEP transformDegToOnep, ListOfMapping {}, of NodeId {} ", mapDeg, orNodeId); Map degOnepMap = new HashMap<>(); Map tpMap = new HashMap<>(); //List tpList = new ArrayList<>(); @@ -571,19 +598,19 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { // For each degree node. Loop through the LCPs and create neps and sips for TTP for (Mapping m:entry.getValue()) { String tpId = m.getLogicalConnectionPoint(); - String overlayNodeId = String.join("-", orNodeId, tpId.split("\\-")[0]); if (!tpId.contains("TTP")) { LOG.info("LCP {} is not an external TP of DEGREE node", tpId); continue; } - if (getNetworkTerminationPoint1FromDatastore(overlayNodeId, tpId) != null) { - //tpList.add(getNetworkTerminationPointFromDatastore(overlayNodeId, tpId)); - tpMap.put(tpId, getNetworkTerminationPoint1FromDatastore(overlayNodeId, tpId)); - LOG.info("LCP {} is not empty for augmentation TP1", tpId); - } else { + String overlayNodeId = String.join("-", orNodeId, tpId.split("\\-")[0]); + if (getNetworkTerminationPoint1FromDatastore(overlayNodeId, tpId) == null) { LOG.error("CREATENEP transformDegToOnep, No Tp found in topology for LCP {}, of NodeId {} ", tpId, overlayNodeId); + continue; } + //tpList.add(getNetworkTerminationPointFromDatastore(overlayNodeId, tpId)); + tpMap.put(tpId, getNetworkTerminationPoint1FromDatastore(overlayNodeId, tpId)); + LOG.info("LCP {} is not empty for augmentation TP1", tpId); } } degOnepMap.putAll(populateNepsForRdmNode(orNodeId, tpMap, false, TapiStringConstants.PHTNC_MEDIA_OTS)); @@ -612,13 +639,15 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { // Then check SIPs and delete them. Then services and connections with SIPs and put them to another state. LOG.info("Deleting node {} from TAPI topology", nodeId); InstanceIdentifier topologyIID = InstanceIdentifier.builder(Context.class) - .augmentation(Context1.class).child(TopologyContext.class).child(Topology.class, - new TopologyKey(tapiTopoUuid)).build(); + .augmentation(Context1.class) + .child(TopologyContext.class) + .child(Topology.class, new TopologyKey(tapiTopoUuid)) + .build(); Topology topology = null; try { Optional optTopology = this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, topologyIID).get(); - if (!optTopology.isPresent()) { + if (optTopology.isEmpty()) { LOG.error("No topology object present. Error deleting node {}", nodeId); return; } @@ -637,8 +666,10 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { if (nodeId.contains("ROADM")) { if (topologicalMode.equals("Full")) { // Node is in photonic media layer and UUID can be built from nodeId + PHTN_MEDIA - Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, - TapiStringConstants.PHTNC_MEDIA)).getBytes(StandardCharsets.UTF_8)).toString()); + Uuid nodeUuid = new Uuid( + UUID.nameUUIDFromBytes( + (String.join("+", nodeId,TapiStringConstants.PHTNC_MEDIA)).getBytes(StandardCharsets.UTF_8)) + .toString()); deleteNodeFromTopo(nodeUuid); } else { LOG.info("Abstracted Topo Mode in TAPI topology Datastore for OR topology representation. Node" @@ -667,9 +698,9 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { InstanceIdentifier contextIID = InstanceIdentifier.builder(Context.class).build(); Context context = null; try { - Optional optContext = this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, - contextIID).get(); - if (!optContext.isPresent()) { + Optional optContext = + this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, contextIID).get(); + if (optContext.isEmpty()) { LOG.error("No context object present in datastore."); return; } @@ -693,10 +724,11 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } } - private Node createTapiXpdrNode(Map nameMap, Set layerProtocols, - String nodeId, Uuid nodeUuid, List xpdrClMaps, List xpdrNetMaps, - XpdrNodeTypes xponderType, OduSwitchingPools oorOduSwitchingPool) { - + private Node createTapiXpdrNode( + Map nameMap, Set layerProtocols, + String nodeId, Uuid nodeUuid, + List xpdrClMaps, List xpdrNetMaps, + XpdrNodeTypes xponderType, OduSwitchingPools oorOduSwitchingPool) { Map ruleList = new HashMap<>(); Set ruleTypes = new HashSet<>(); ruleTypes.add(RuleType.FORWARDING); @@ -760,26 +792,29 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { List pmnepspecList = new ArrayList<>(); for (Map.Entry entry : builtNode.getOwnedNodeEdgePoint().entrySet()) { - if (!entry.getValue().getSupportedCepLayerProtocolQualifierInstances().stream() + if (entry.getValue().getSupportedCepLayerProtocolQualifierInstances().stream() .filter(sclpqi -> sclpqi.getLayerProtocolQualifier().equals(PHOTONICLAYERQUALIFIEROTS.VALUE)) .collect(Collectors.toList()).isEmpty() - && entry.getValue().augmentationOrElseThrow(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang - .tapi.photonic.media.rev221121.OwnedNodeEdgePoint1.class) != null - && entry.getValue().augmentationOrElseThrow(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi - .photonic.media.rev221121.OwnedNodeEdgePoint1.class).getPhotonicMediaNodeEdgePointSpec() - != null) { - pmnepspecList.add(entry.getValue().augmentationOrElseThrow(org.opendaylight.yang.gen.v1.urn.onf.otcc - .yang.tapi.photonic.media.rev221121.OwnedNodeEdgePoint1.class).getPhotonicMediaNodeEdgePointSpec()); + || entry.getValue().augmentationOrElseThrow( + org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121 + .OwnedNodeEdgePoint1.class) == null + || entry.getValue().augmentationOrElseThrow( + org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121 + .OwnedNodeEdgePoint1.class).getPhotonicMediaNodeEdgePointSpec() == null) { + continue; } + pmnepspecList.add(entry.getValue() + .augmentationOrElseThrow(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121 + .OwnedNodeEdgePoint1.class) + .getPhotonicMediaNodeEdgePointSpec()); } LOG.debug("TapiNetworkModelServiceImpl line 775, List of non empty PMNEPSEC is = {}", pmnepspecList); return builtNode; } - private Map createXpdrPhtnMdNeps(String nodeId, - List xpdrNetMaps) { + private Map createXpdrPhtnMdNeps( + String nodeId, List xpdrNetMaps) { Map onepl = new HashMap<>(); - // eNep creation on otsi node for (int i = 0; i < xpdrNetMaps.size(); i++) { Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes( @@ -839,23 +874,19 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { Map onepl = new HashMap<>(); // client nep creation on DSR node for (int i = 0; i < xpdrClMaps.size(); i++) { - LOG.info("Client NEP = {}", String.join("+", nodeId, TapiStringConstants.DSR, - xpdrClMaps.get(i).getLogicalConnectionPoint())); + LOG.info("Client NEP = {}", + String.join("+", nodeId, TapiStringConstants.DSR, xpdrClMaps.get(i).getLogicalConnectionPoint())); Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes( (String.join("+", nodeId, TapiStringConstants.DSR, xpdrClMaps.get(i).getLogicalConnectionPoint())).getBytes(StandardCharsets.UTF_8)).toString()); NameBuilder nameBldr = new NameBuilder().setValue(String.join("+", nodeId, TapiStringConstants.DSR, xpdrClMaps.get(i).getLogicalConnectionPoint())); - Name name; - if (OpenroadmNodeType.TPDR.getName().equalsIgnoreCase(xponderType.getName())) { - name = nameBldr.setValueName("100G-tpdr").build(); - } else { - name = nameBldr.setValueName("NodeEdgePoint_C").build(); - } - + Name name = nameBldr + .setValueName(OpenroadmNodeType.TPDR.getName().equalsIgnoreCase(xponderType.getName()) + ? "100G-tpdr" : "NodeEdgePoint_C") + .build(); List newSupIfCapList = new ArrayList<>(xpdrClMaps.get(i).getSupportedInterfaceCapability()); - 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, null, @@ -895,8 +926,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { xpdrClMaps.get(i).getLogicalConnectionPoint())).getBytes(StandardCharsets.UTF_8)).toString()); Name onedName = new NameBuilder() .setValueName("eNodeEdgePoint_N") - .setValue(String.join("+", nodeId, TapiStringConstants.E_ODU, - xpdrClMaps.get(i).getLogicalConnectionPoint())) + .setValue( + String.join("+", nodeId, TapiStringConstants.E_ODU, xpdrClMaps.get(i).getLogicalConnectionPoint())) .build(); List newSupIfCapList = @@ -943,45 +974,50 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .setLayerProtocolName(nepProtocol) .setName(nepNames); if (withSip) { - onepBldr.setMappedServiceInterfacePoint(this.tapiFactory.createMSIP(1, nepProtocol, tpid, keyword, - sicColl, operState, adminState)); + onepBldr.setMappedServiceInterfacePoint( + this.tapiFactory.createMSIP(1, nepProtocol, tpid, keyword, sicColl, operState, adminState)); this.sipMap.putAll(tapiFactory.getTapiSips()); } LOG.debug("Node layer {}", nodeProtocol.getName()); - onepBldr.setSupportedCepLayerProtocolQualifierInstances( - this.tapiFactory.createSupportedCepLayerProtocolQualifier(sicColl, nepProtocol)); - 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)); + onepBldr + .setSupportedCepLayerProtocolQualifierInstances( + this.tapiFactory.createSupportedCepLayerProtocolQualifier(sicColl, nepProtocol)) + .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)) { + return onepBldr.build(); + } + 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)) { + //TODO use switch / case block + keyedOpModeList.add(new OperationalModeKey("400G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "400G rate available", tpid); + break; } } - 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); + keyedOpModeList.add(new OperationalModeKey("100G")); + LOG.warn(TopologyUtils.NOOPMODEDECLARED + "100G rate available", tpid); + } else { + for (String opMode : opModeList) { + keyedOpModeList.add(new OperationalModeKey(opMode)); } - onepBldr = tapiFactory.addPayloadStructureAndPhotSpecToOnep(nodeId, freqWidthMap, keyedOpModeList, - sicColl, onepBldr, keyword); - LOG.debug("TapiNetworkServiceImpl line982, onep = {}", onepBldr.build()); } + 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); + LOG.debug("TapiNetworkServiceImpl line982, onep = {}", onepBldr.build()); return onepBldr.build(); + //TODO don't build twice } private Node createRoadmTapiNode(String orNodeId, Map onepMap) { @@ -999,8 +1035,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { nodeNames = new NameBuilder().setValueName("roadm node name") .setValue(String.join("+", orNodeId, TapiStringConstants.PHTNC_MEDIA)).build(); } - Name nameNodeType = new NameBuilder().setValueName("Node Type") - .setValue(OpenroadmNodeType.ROADM.getName()).build(); + Name nameNodeType = + new NameBuilder().setValueName("Node Type").setValue(OpenroadmNodeType.ROADM.getName()).build(); // Protocol Layer Set layerProtocols = Set.of(LayerProtocolName.PHOTONICMEDIA); // Empty random creation of mandatory fields for avoiding errors.... @@ -1074,8 +1110,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .build(); } - private OduSwitchingPools createSwtchSwitchPool(List xpdrClMaps, List xpdrNetMaps, - Integer xpdrNb) { + private OduSwitchingPools createSwtchSwitchPool( + List xpdrClMaps, List xpdrNetMaps, Integer xpdrNb) { Set tpl = new HashSet<>(); TpId tpId = null; for (int i = 1; i <= xpdrClMaps.size(); i++) { @@ -1092,7 +1128,6 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .setTpList(tpl) .build(); nbMap.put(nbl.key(),nbl); - return new OduSwitchingPoolsBuilder() .setSwitchingPoolNumber(Uint16.valueOf(1)) .setSwitchingPoolType(SwitchingPoolTypes.NonBlocking) @@ -1149,15 +1184,15 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { NodeEdgePoint nep1 = new NodeEdgePointBuilder() .setTopologyUuid(this.tapiTopoUuid) .setNodeUuid(new Uuid(UUID.nameUUIDFromBytes( - (String.join("+", nodeId,TapiStringConstants. DSR)) - .getBytes(StandardCharsets.UTF_8)).toString())) + (String.join("+", nodeId,TapiStringConstants. DSR)).getBytes(StandardCharsets.UTF_8)) + .toString())) .setNodeEdgePointUuid(tp1Uuid) .build(); NodeEdgePoint nep2 = new NodeEdgePointBuilder() .setTopologyUuid(this.tapiTopoUuid) .setNodeUuid(new Uuid(UUID.nameUUIDFromBytes( - (String.join("+", nodeId,TapiStringConstants. DSR)) - .getBytes(StandardCharsets.UTF_8)).toString())) + (String.join("+", nodeId,TapiStringConstants. DSR)).getBytes(StandardCharsets.UTF_8)) + .toString())) .setNodeEdgePointUuid(tpUuid) .build(); nepList.put(nep1.key(), nep1); @@ -1199,6 +1234,7 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { private String getNodeType(XpdrNodeTypes xponderType) { switch (xponderType.getIntValue()) { + //TODO use enum directly case 1: return OpenroadmNodeType.TPDR.getName(); case 2: @@ -1207,9 +1243,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { return OpenroadmNodeType.SWITCH.getName(); default: LOG.info("XpdrType {} not supported", xponderType); - break; + return null; } - return null; } private void mergeNodeinTopology(Map nodeMap) { @@ -1217,15 +1252,15 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { // TODO: verify this is correct. Should we identify the context IID with the context UUID?? LOG.info("Creating tapi node in TAPI topology context"); InstanceIdentifier topoIID = InstanceIdentifier.builder(Context.class) - .augmentation(Context1.class).child(TopologyContext.class) + .augmentation(Context1.class) + .child(TopologyContext.class) .child(Topology.class, new TopologyKey(this.tapiTopoUuid)) .build(); Topology topology = new TopologyBuilder().setUuid(this.tapiTopoUuid).setNode(nodeMap).build(); // merge in datastore - this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID, - topology); + this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID, topology); try { this.networkTransactionService.commit().get(); } catch (InterruptedException | ExecutionException e) { @@ -1246,8 +1281,7 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { Topology topology = new TopologyBuilder().setUuid(this.tapiTopoUuid).setLink(linkMap).build(); // merge in datastore - this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID, - topology); + this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID, topology); try { this.networkTransactionService.commit().get(); } catch (InterruptedException | ExecutionException e) { @@ -1264,8 +1298,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { contextBuilder.setServiceInterfacePoint(sips); InstanceIdentifier contextIID = InstanceIdentifier.builder(Context.class).build(); // merge in datastore - this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, contextIID, - contextBuilder.build()); + this.networkTransactionService.merge( + LogicalDatastoreType.OPERATIONAL, contextIID, contextBuilder.build()); this.networkTransactionService.commit().get(); LOG.info("TAPI SIPs merged successfully."); } catch (InterruptedException | ExecutionException e) { @@ -1323,9 +1357,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { ConnectivityContext connContext = null; try { Optional optConnContext = - this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, connectivitycontextIID) - .get(); - if (!optConnContext.isPresent()) { + this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, connectivitycontextIID).get(); + if (optConnContext.isEmpty()) { LOG.error("Couldnt retrieve connectivity context from datastore"); return; } @@ -1342,10 +1375,11 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { Map connServMap = connContext.getConnectivityService(); Map connMap = connContext.getConnection(); if (connServMap != null) { - for (ConnectivityService service:connServMap.values()) { + for (ConnectivityService service : connServMap.values()) { Map serviceEndPoints = service.getEndPoint(); - if (serviceEndPoints.values().stream().anyMatch(endPoint -> endPoint.getServiceInterfacePoint() - .getServiceInterfacePointUuid().equals(sipUuid))) { + if (serviceEndPoints.values().stream() + .anyMatch(endPoint -> endPoint.getServiceInterfacePoint().getServiceInterfacePointUuid() + .equals(sipUuid))) { LOG.info("Service using SIP of node {} identified. Update state of service", nodeId); ConnectivityService updService = new ConnectivityServiceBuilder(service) .setAdministrativeState(AdministrativeState.LOCKED) @@ -1357,15 +1391,16 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } } // Update state of connections - if (connMap != null) { - for (Connection connection:connMap.values()) { - if (connection.getName().values().stream().anyMatch(name -> name.getValue().contains(nodeId))) { - Connection updConn = new ConnectionBuilder(connection) - .setLifecycleState(LifecycleState.PENDINGREMOVAL) - .setOperationalState(OperationalState.DISABLED) - .build(); - updateConnection(updConn); - } + if (connMap == null) { + return; + } + for (Connection connection:connMap.values()) { + if (connection.getName().values().stream().anyMatch(name -> name.getValue().contains(nodeId))) { + Connection updConn = new ConnectionBuilder(connection) + .setLifecycleState(LifecycleState.PENDINGREMOVAL) + .setOperationalState(OperationalState.DISABLED) + .build(); + updateConnection(updConn); } } } @@ -1398,19 +1433,17 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } } - private Map populateNepsForRdmNode(String nodeId, - Map tpMap, boolean withSip, String nepPhotonicSublayer) { + private Map populateNepsForRdmNode( + String nodeId, Map tpMap, boolean withSip, String nepPhotonicSublayer) { // create neps for MC and and Photonic Media OTS/OMS Map onepMap = new HashMap<>(); for (Map.Entry entry : tpMap.entrySet()) { // Admin and oper state common for all tps OpenroadmTpType tpType = entry.getValue().getTpType(); // PHOTONIC MEDIA nep - LOG.debug("PHOTO NEP = {}", String.join("+", nodeId, nepPhotonicSublayer, - entry.getKey())); + LOG.debug("PHOTO NEP = {}", String.join("+", nodeId, nepPhotonicSublayer, entry.getKey())); SupportedCepLayerProtocolQualifierInstancesBuilder sclpqiBd = - new SupportedCepLayerProtocolQualifierInstancesBuilder() - .setNumberOfCepInstances(Uint64.valueOf(1)); + new SupportedCepLayerProtocolQualifierInstancesBuilder().setNumberOfCepInstances(Uint64.valueOf(1)); switch (nepPhotonicSublayer) { case TapiStringConstants.PHTNC_MEDIA_OMS: sclpqiBd.setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROMS.VALUE); @@ -1443,9 +1476,10 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { usedFreqMap = tapiFactory.getPP11UsedWavelength( getNetworkTerminationPoint11FromDatastore(nodeId, entry.getKey())); if (usedFreqMap == null || usedFreqMap.isEmpty()) { - availableFreqMap.put(GridConstant.START_EDGE_FREQUENCY * 1E09, + availableFreqMap.put( + GridConstant.START_EDGE_FREQUENCY * 1E09, GridConstant.START_EDGE_FREQUENCY * 1E09 - + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06); + + GridConstant.GRANULARITY * GridConstant.EFFECTIVE_BITS * 1E06); } else { LOG.debug("EnteringLOOPcreateOTSiMC & MC with usedFreqMap non empty {} for Node {}, tp {}", usedFreqMap.toString(), nodeId, tpMap.toString()); @@ -1469,20 +1503,20 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { break; } LOG.debug("calling add Photonic NEP spec for Roadm"); - onepBd = tapiFactory.addPhotSpecToRoadmOnep(nodeId, usedFreqMap, availableFreqMap, onepBd, - nepPhotonicSublayer); + onepBd = tapiFactory.addPhotSpecToRoadmOnep( + nodeId, usedFreqMap, availableFreqMap, onepBd, nepPhotonicSublayer); } AdminStates admin = entry.getValue().getAdministrativeState(); State oper = entry.getValue().getOperationalState(); Name nepName = new NameBuilder() .setValueName(nepPhotonicSublayer + "NodeEdgePoint") - .setValue(String.join("+", nodeId, nepPhotonicSublayer, - entry.getKey())) + .setValue(String.join("+", nodeId, nepPhotonicSublayer, entry.getKey())) .build(); OwnedNodeEdgePoint onep = onepBd - .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, - nepPhotonicSublayer, entry.getKey())) - .getBytes(Charset.forName("UTF-8"))).toString())) + .setUuid(new Uuid(UUID.nameUUIDFromBytes( + (String.join("+", nodeId, nepPhotonicSublayer, entry.getKey())) + .getBytes(Charset.forName("UTF-8"))) + .toString())) .setLayerProtocolName(LayerProtocolName.PHOTONICMEDIA) .setName(Map.of(nepName.key(), nepName)) .setSupportedCepLayerProtocolQualifierInstances(sclpqiList) @@ -1580,8 +1614,8 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { } } - private org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1 - getNetworkTerminationPoint11FromDatastore(String nodeId, String tpId) { + private org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526 + .TerminationPoint1 getNetworkTerminationPoint11FromDatastore(String nodeId, String tpId) { InstanceIdentifier tpIID = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) @@ -1596,19 +1630,18 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService { .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))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1 - .class) + .augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1.class) .build(); try { Optional tpOptional = networkTransactionService.read(LogicalDatastoreType.CONFIGURATION, tpIID).get(); if (tpOptional.isEmpty()) { - LOG.error("readMdSal: Error reading tp {} , empty list",tpIID); + LOG.error("readMdSal: Error reading tp {} , empty list", tpIID); return null; } LOG.debug("SUCCESS getting LCP TP11 for NodeId {} TpId {} while creating NEP in TapiNetworkModelServiceImpl" - + " The Tp in Datastore is as follows {}", - nodeId, tpId, tpOptional.toString()); + + " The Tp in Datastore is as follows {}", nodeId, tpId, tpOptional); return tpOptional.orElseThrow(); } catch (ExecutionException | InterruptedException e) { LOG.warn("Exception while getting termination {} for node id {} point from {} topology",