Merge "Refactor TAPI utils TapiLinkImpl"
authorGuillaume Lambert <guillaume.lambert@orange.com>
Thu, 2 May 2024 15:32:28 +0000 (15:32 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 2 May 2024 15:32:28 +0000 (15:32 +0000)
tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertTapiTopoToAbstracted.java

index e9bc55a286a5819edc08546520556f818bdfd843..368d7ed6b3f0bd2ff8e99d2b374029868936589c 100644 (file)
@@ -26,13 +26,10 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.glob
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.global._class.NameKey;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.tapi.context.ServiceInterfacePoint;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev221121.tapi.context.ServiceInterfacePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.InterRuleGroup;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.InterRuleGroupKey;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.NodeRuleGroup;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.NodeRuleGroupKey;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.OwnedNodeEdgePoint;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.OwnedNodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.RiskParameterPac;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.RiskParameterPacBuilder;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.risk.parameter.pac.RiskCharacteristic;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.risk.parameter.pac.RiskCharacteristicBuilder;
@@ -52,8 +49,7 @@ import org.slf4j.LoggerFactory;
 public class ConvertTapiTopoToAbstracted {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConvertTapiTopoToAbstracted.class);
-    private Map<NodeKey, org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node>
-        tapiNodes;
+    private Map<NodeKey, Node> tapiNodes;
     private Map<LinkKey, Link> tapiLinks;
     private Map<ServiceInterfacePointKey, ServiceInterfacePoint> tapiSips;
     private Uuid refTopoUuid;
@@ -67,20 +63,16 @@ public class ConvertTapiTopoToAbstracted {
 
     public void convertRoadmInfrastructure() {
         LOG.info("abstraction of the ROADM infrastructure towards a photonic node");
-        Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.RDM_INFRA
-            .getBytes(Charset.forName("UTF-8"))).toString());
-        Name nodeName =  new NameBuilder().setValueName("otsi node name").setValue(TapiStringConstants.RDM_INFRA)
-            .build();
-        Name nameNodeType = new NameBuilder().setValueName("Node Type")
-            .setValue(OpenroadmNodeType.ROADM.getName()).build();
-        Set<LayerProtocolName> nodeLayerProtocols = Set.of(LayerProtocolName.PHOTONICMEDIA);
+        Uuid nodeUuid = new Uuid(
+            UUID.nameUUIDFromBytes(TapiStringConstants.RDM_INFRA.getBytes(Charset.forName("UTF-8"))).toString());
+        Name nodeName =
+            new NameBuilder().setValueName("otsi node name").setValue(TapiStringConstants.RDM_INFRA).build();
+        Name nameNodeType =
+            new NameBuilder().setValueName("Node Type").setValue(OpenroadmNodeType.ROADM.getName()).build();
         Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepMap = pruneTapiRoadmNeps();
         var tapiFactory = new ConvertORToTapiTopology(this.refTopoUuid);
-        Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupMap
-            = tapiFactory.createAllNodeRuleGroupForRdmNode("Abstracted", nodeUuid, null, onepMap.values());
-        Map<InterRuleGroupKey, InterRuleGroup> interRuleGroupMap
-            = tapiFactory.createInterRuleGroupForRdmNode("Abstracted", nodeUuid, null,
-                nodeRuleGroupMap.entrySet().stream().map(e -> e.getKey()).collect(Collectors.toList()));
+        Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupMap =
+            tapiFactory.createAllNodeRuleGroupForRdmNode("Abstracted", nodeUuid, null, onepMap.values());
         // Empty random creation of mandatory fields for avoiding errors....
         CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
             .setCostAlgorithm("Restricted Shortest Path - RSP")
@@ -98,23 +90,25 @@ public class ConvertTapiTopoToAbstracted {
             .setRiskCharacteristicName("risk characteristic")
             .setRiskIdentifierList(Set.of("risk identifier1", "risk identifier2"))
             .build();
-        RiskParameterPac riskParamPac = new RiskParameterPacBuilder()
-            .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
-            .build();
         // build RDM infra node abstraction
         Node rdmNode = new NodeBuilder()
             .setUuid(nodeUuid)
             .setName(Map.of(nodeName.key(), nodeName, nameNodeType.key(), nameNodeType))
-            .setLayerProtocolName(nodeLayerProtocols)
+            .setLayerProtocolName(Set.of(LayerProtocolName.PHOTONICMEDIA))
             .setAdministrativeState(AdministrativeState.UNLOCKED)
             .setOperationalState(OperationalState.ENABLED)
             .setLifecycleState(LifecycleState.INSTALLED)
             .setOwnedNodeEdgePoint(onepMap)
             .setNodeRuleGroup(nodeRuleGroupMap)
-            .setInterRuleGroup(interRuleGroupMap)
+            .setInterRuleGroup(
+                tapiFactory.createInterRuleGroupForRdmNode(
+                    "Abstracted", nodeUuid, null,
+                    nodeRuleGroupMap.entrySet().stream().map(e -> e.getKey()).collect(Collectors.toList())))
             .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
             .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
-            .setRiskParameterPac(riskParamPac)
+            .setRiskParameterPac(new RiskParameterPacBuilder()
+                .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
+                .build())
             .build();
         purgeTapiNodes();
         tapiNodes.put(rdmNode.key(), rdmNode);
@@ -122,27 +116,20 @@ public class ConvertTapiTopoToAbstracted {
     }
 
     private Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> pruneTapiRoadmNeps() {
-        List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node> tapiPhotonicNodes
-            = this.tapiNodes.values().stream()
+        List<Node> tapiPhotonicNodes = this.tapiNodes.values().stream()
                 .filter(n -> n.getLayerProtocolName().contains(LayerProtocolName.PHOTONICMEDIA)
                     && !n.getLayerProtocolName().contains(LayerProtocolName.DIGITALOTN)
                     && !n.getLayerProtocolName().contains(LayerProtocolName.DSR)
                     && !n.getLayerProtocolName().contains(LayerProtocolName.ODU))
                 .collect(Collectors.toList());
         Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepMap = new HashMap<>();
-        for (org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node node
-            : tapiPhotonicNodes) {
+        for (Node node : tapiPhotonicNodes) {
             for (Map.Entry<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> entry : node.getOwnedNodeEdgePoint().entrySet()) {
-                if (entry.getValue().getName().values().stream()
-                            .filter(name -> name.getValueName().equals("PHOTONIC_MEDIA_OTSNodeEdgePoint")).count() > 0
-                        && !(entry.getValue().getName().values().stream()
-                            .filter(name -> name.getValue().contains("DEG")).count() > 0)) {
-                    onepMap.put(entry.getKey(), entry.getValue());
-                }
-                if (entry.getValue().getName().values().stream()
-                        .filter(name -> name.getValueName().equals("OTSI_MCNodeEdgePoint")).count() > 0
-                    && !(entry.getValue().getName().values().stream()
-                        .filter(name -> name.getValue().contains("DEG")).count() > 0)) {
+                var valStream = entry.getValue().getName().values().stream();
+                if ((valStream.filter(name -> name.getValueName().equals("PHOTONIC_MEDIA_OTSNodeEdgePoint")).count() > 0
+                            && valStream.filter(name -> name.getValue().contains("DEG")).count() == 0)
+                        || (valStream.filter(name -> name.getValueName().equals("OTSI_MCNodeEdgePoint")).count() > 0
+                            && valStream.filter(name -> name.getValue().contains("DEG")).count() == 0)) {
                     onepMap.put(entry.getKey(), entry.getValue());
                 }
             }
@@ -164,18 +151,15 @@ public class ConvertTapiTopoToAbstracted {
     }
 
 
-    public void setTapiNodes(Map<NodeKey,
-            org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node> nodeMap) {
+    public void setTapiNodes(Map<NodeKey, Node> nodeMap) {
         this.tapiNodes.putAll(nodeMap);
     }
 
-    public Map<NodeKey, org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node>
-            getTapiNodes() {
+    public Map<NodeKey, Node> getTapiNodes() {
         return tapiNodes;
     }
 
-    public void setTapiLinks(Map<LinkKey,
-            org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Link> linkMap) {
+    public void setTapiLinks(Map<LinkKey, Link> linkMap) {
         this.tapiLinks.putAll(linkMap);
     }