X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Ftapi%2Ftopology%2FTopologyUtils.java;h=9eca76d6990f102d839379d905b0fea1e0ce58e3;hb=652c9098f8d97e6f5a723a7c55929f9351bffb5b;hp=640fc9f5cd992f007967727a1cba0c5d99f9c40b;hpb=c16c716c06381a8bc52859550b02f9e084fea79a;p=transportpce.git 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 640fc9f5c..9eca76d69 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; + private String topologicalMode; public static final String NOOPMODEDECLARED = "No operational mode declared in Topo for Tp {}, assumes by default "; public TopologyUtils(NetworkTransactionService networkTransactionService, DataBroker dataBroker, @@ -85,6 +86,8 @@ public final class TopologyUtils { this.dataBroker = dataBroker; this.tapiSips = new HashMap<>(); this.tapiLink = tapiLink; + // TODO: Initially set topological mode to Full. Shall be set through the setter at controller initialization + this.topologicalMode = "Full"; } public Network readTopology(InstanceIdentifier networkIID) throws TapiTopologyException { @@ -138,10 +141,11 @@ public final class TopologyUtils { public Topology createFullOtnTopology() throws TapiTopologyException { // read openroadm-topology Network openroadmTopo = readTopology(InstanceIdentifiers.OVERLAY_NETWORK_II); - Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER - .getBytes(Charset.forName("UTF-8"))).toString()); + String topoType = this.topologicalMode.equals("Full") ? TapiStringConstants.T0_FULL_MULTILAYER + : TapiStringConstants.T0_TAPI_MULTILAYER; + Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(topoType.getBytes(Charset.forName("UTF-8"))).toString()); Name name = new NameBuilder() - .setValue(TapiStringConstants.T0_FULL_MULTILAYER) + .setValue(topoType) .setValueName("TAPI Topology Name") .build(); if (openroadmTopo != null) { @@ -212,28 +216,38 @@ public final class TopologyUtils { .equals(OpenroadmNodeType.ROADM)) .count() > 0) { // map roadm nodes - for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node roadm:openroadmNet.nonnullNode().values().stream() - .filter(nt -> nt - .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1.class) - .getNodeType() - .equals(OpenroadmNodeType.ROADM)) - .collect(Collectors.toList())) { - tapiFullFactory.convertRoadmNode(roadm, openroadmTopo); + if (this.topologicalMode.equals("Full")) { + for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks + .network.Node roadm:openroadmNet.nonnullNode().values().stream() + .filter(nt -> nt + .augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1.class) + .getNodeType() + .equals(OpenroadmNodeType.ROADM)) + .collect(Collectors.toList())) { + tapiFullFactory.convertRoadmNode(roadm, openroadmTopo, "Full"); + this.tapiSips.putAll(tapiFullFactory.getTapiSips()); + tapiNodeList.putAll(tapiFullFactory.getTapiNodes()); + tapiLinkList.putAll(tapiFullFactory.getTapiLinks()); + // map roadm to roadm link + List rdmTordmLinkList = linkList.stream() + .filter(lk -> lk.augmentation(Link1.class).getLinkType() + .equals(OpenroadmLinkType.ROADMTOROADM)) + .collect(Collectors.toList()); + tapiFullFactory.convertRdmToRdmLinks(rdmTordmLinkList); + tapiLinkList.putAll(tapiFullFactory.getTapiLinks()); + } + } else { + tapiFullFactory.convertRoadmNode(null, openroadmTopo, "Abstracted"); this.tapiSips.putAll(tapiFullFactory.getTapiSips()); tapiNodeList.putAll(tapiFullFactory.getTapiNodes()); tapiLinkList.putAll(tapiFullFactory.getTapiLinks()); } + } else { LOG.warn("No roadm nodes exist in the network"); } - // map roadm to roadm link - List rdmTordmLinkList = linkList.stream() - .filter(lk -> lk.augmentation(Link1.class).getLinkType().equals(OpenroadmLinkType.ROADMTOROADM)) - .collect(Collectors.toList()); - tapiFullFactory.convertRdmToRdmLinks(rdmTordmLinkList); - tapiLinkList.putAll(tapiFullFactory.getTapiLinks()); + // map xpdr_input to roadm and xpdr_output to roadm links. xponderInLinkList.addAll(xponderOutLinkList); tapiFullFactory.convertXpdrToRdmLinks(xponderInLinkList); @@ -241,27 +255,19 @@ public final class TopologyUtils { // Retrieve created sips map in TapiFactory when mapping all the nodes this.tapiSips.putAll(tapiFullFactory.getTapiSips()); - var topo = new TopologyBuilder() - .setName(Map.of(name.key(), name)) - .setUuid(topoUuid) - .setNode(tapiNodeList) - .setLayerProtocolName(Set.of(LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.ODU, - LayerProtocolName.DSR)) - .setLink(tapiLinkList).build(); - LOG.error("TOPOUTIL, Initial FullTopology Builder.build = {}", topo.toString()); return new TopologyBuilder() .setName(Map.of(name.key(), name)) .setUuid(topoUuid) .setNode(tapiNodeList) .setLayerProtocolName(Set.of(LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.ODU, - LayerProtocolName.DSR)) + LayerProtocolName.DSR, LayerProtocolName.DIGITALOTN)) .setLink(tapiLinkList).build(); } return new TopologyBuilder() .setName(Map.of(name.key(), name)) .setUuid(topoUuid) .setLayerProtocolName(Set.of(LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.ODU, - LayerProtocolName.DSR)) + LayerProtocolName.DSR, LayerProtocolName.DIGITALOTN)) .build(); } @@ -378,4 +384,12 @@ public final class TopologyUtils { return tapiSips; } + public void setTopologicalMode(String topoMode) { + this.topologicalMode = topoMode; + } + + public String getTopologicalMode() { + return topologicalMode; + } + }