X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Ftapi%2Ftopology%2FTapiTopologyImpl.java;h=57990165125d57822f4696a28c00b2c9f68bba3a;hb=56d1795b647693ec1d620d6aca2c4003e3b302ca;hp=3e2ed2aec7daad484ee090d12feafe9729d50a7b;hpb=cf3a29d3e9f11331a9cab1a4dc59b0e0d96ac9c0;p=transportpce.git diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java index 3e2ed2aec..579901651 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; @@ -28,16 +29,18 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.InstanceIdentifiers; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.tapi.TapiStringConstants; import org.opendaylight.transportpce.tapi.utils.TapiContext; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.transportpce.tapi.utils.TapiLink; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.MappingKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.NodesKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType; 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.network.Node; @@ -105,7 +108,7 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.to import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; @@ -117,11 +120,14 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService private final DataBroker dataBroker; private final TapiContext tapiContext; private final TopologyUtils topologyUtils; + private final TapiLink tapiLink; - public TapiTopologyImpl(DataBroker dataBroker, TapiContext tapiContext, TopologyUtils topologyUtils) { + public TapiTopologyImpl(DataBroker dataBroker, TapiContext tapiContext, TopologyUtils topologyUtils, + TapiLink tapiLink) { this.dataBroker = dataBroker; this.tapiContext = tapiContext; this.topologyUtils = topologyUtils; + this.tapiLink = tapiLink; } @Override @@ -135,8 +141,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService .getTapiNode(topoUuid, nodeUuid); if (node == null) { LOG.error("Invalid TAPI node name"); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "Invalid Tapi Node name").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "Invalid Tapi Node name") + .buildFuture(); } return RpcResultBuilder.success(new GetNodeDetailsOutputBuilder() .setNode(new org.opendaylight.yang.gen.v1.urn @@ -147,9 +154,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService @Override public ListenableFuture> getTopologyDetails(GetTopologyDetailsInput input) { // TODO -> Add check for Full T0 Multilayer - if (!TopologyUtils.T0_MULTILAYER.equals(input.getTopologyIdOrName()) - && !TopologyUtils.TPDR_100G.equals(input.getTopologyIdOrName())) { - if (TopologyUtils.T0_FULL_MULTILAYER.equals(input.getTopologyIdOrName())) { + if (!TapiStringConstants.T0_MULTILAYER.equals(input.getTopologyIdOrName()) + && !TapiStringConstants.TPDR_100G.equals(input.getTopologyIdOrName())) { + if (TapiStringConstants.T0_FULL_MULTILAYER.equals(input.getTopologyIdOrName())) { Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(input.getTopologyIdOrName() .getBytes(Charset.forName("UTF-8"))).toString()); Context context = this.tapiContext.getTapiContext(); @@ -159,7 +166,8 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService if (!(topologyMap != null && topologyMap.containsKey(new TopologyKey(topoUuid)))) { LOG.error("Topology {} not found in datastore", input.getTopologyIdOrName()); return RpcResultBuilder.failed() - .withError(RpcError.ErrorType.RPC, "Invalid Topology name").buildFuture(); + .withError(ErrorType.RPC, "Invalid Topology name") + .buildFuture(); } org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.Topology topology = topologyMap.get(new TopologyKey(topoUuid)); @@ -170,12 +178,13 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService } LOG.error("Invalid TAPI topology name"); return RpcResultBuilder.failed() - .withError(RpcError.ErrorType.RPC, "Invalid Topology name").buildFuture(); + .withError(ErrorType.RPC, "Invalid Topology name") + .buildFuture(); } try { LOG.info("Building TAPI Topology abstraction for {}", input.getTopologyIdOrName()); Topology topology = createAbstractedOtnTopology(); - if (TopologyUtils.TPDR_100G.equals(input.getTopologyIdOrName())) { + if (TapiStringConstants.TPDR_100G.equals(input.getTopologyIdOrName())) { topology = createAbstracted100GTpdrTopology(topology); } return RpcResultBuilder.success(new GetTopologyDetailsOutputBuilder().setTopology(topology).build()) @@ -183,7 +192,8 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService } catch (TapiTopologyException e) { LOG.error("error building TAPI topology"); return RpcResultBuilder.failed() - .withError(RpcError.ErrorType.RPC, "Error building topology").buildFuture(); + .withError(ErrorType.RPC, "Error building topology") + .buildFuture(); } } @@ -198,9 +208,10 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService .filter(nep -> nep.getName().containsKey(new NameKey("100G-tpdr"))).collect(Collectors.toList()); nep100GTpdrList.addAll(nepList); } - Name topoName = new NameBuilder().setValue(TopologyUtils.TPDR_100G).setValueName("TAPI Topology Name").build(); - Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.TPDR_100G.getBytes(Charset.forName("UTF-8"))) - .toString()); + Name topoName = new NameBuilder().setValue(TapiStringConstants.TPDR_100G) + .setValueName("TAPI Topology Name").build(); + Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes( + TapiStringConstants.TPDR_100G.getBytes(Charset.forName("UTF-8"))).toString()); org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node = createTapiNode(nep100GTpdrList, topoUuid); return new TopologyBuilder() @@ -269,9 +280,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService tapiNodeList = new HashMap<>(); Map tapiLinkList = new HashMap<>(); - Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_MULTILAYER.getBytes(Charset.forName("UTF-8"))) - .toString()); - ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topoUuid); + Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_MULTILAYER + .getBytes(Charset.forName("UTF-8"))).toString()); + ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topoUuid, this.tapiLink); Iterator>> it = networkPortMap.entrySet().iterator(); while (it.hasNext()) { String nodeId = it.next().getKey(); @@ -280,8 +291,8 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService tapiLinkList.putAll(tapiFactory.getTapiLinks()); } if (openroadmTopo.nonnullNode().values().stream().filter(nt -> - nt.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class) - .getNodeType().equals(OpenroadmNodeType.SRG)).count() > 0) { + nt.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1.class) + .getNodeType().equals(OpenroadmNodeType.SRG)).count() > 0) { tapiFactory.convertRoadmInfrastructure(); tapiNodeList.putAll(tapiFactory.getTapiNodes()); tapiLinkList.putAll(tapiFactory.getTapiLinks()); @@ -295,7 +306,10 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService tapiFactory.convertLinks(otnLinkMap); tapiLinkList.putAll(tapiFactory.getTapiLinks()); } - Name name = new NameBuilder().setValue(TopologyUtils.T0_MULTILAYER).setValueName("TAPI Topology Name").build(); + Name name = new NameBuilder() + .setValue(TapiStringConstants.T0_MULTILAYER) + .setValueName("TAPI Topology Name") + .build(); return new TopologyBuilder() .setName(Map.of(name.key(), name)) .setUuid(topoUuid) @@ -317,8 +331,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService OwnedNodeEdgePoint nep = this.tapiContext.getTapiNEP(topoUuid, nodeUuid, nepUuid); if (nep == null) { LOG.error("Invalid TAPI nep name"); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "Invalid NEP name").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "Invalid NEP name") + .buildFuture(); } return RpcResultBuilder.success(new GetNodeEdgePointDetailsOutputBuilder() .setNodeEdgePoint(new NodeEdgePointBuilder(nep).build()).build()).buildFuture(); @@ -334,8 +349,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService .getTapiLink(topoUuid, linkUuid); if (link == null) { LOG.error("Invalid TAPI link name"); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "Invalid Link name").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "Invalid Link name") + .buildFuture(); } return RpcResultBuilder.success(new GetLinkDetailsOutputBuilder().setLink(new LinkBuilder(link).build()) .build()).buildFuture(); @@ -350,8 +366,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService topologyMap = this.tapiContext.getTopologyContext(); if (topologyMap.isEmpty()) { LOG.error("No topologies exist in tapi context"); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, - "No topologies exist in tapi context").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, "No topologies exist in tapi context") + .buildFuture(); } Map @@ -378,7 +395,7 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService return new NodeBuilder() .setUuid(nodeUuid) .setName(Map.of(name.key(), name)) - .setLayerProtocolName(List.of(LayerProtocolName.ETH)) + .setLayerProtocolName(Set.of(LayerProtocolName.ETH)) .setAdministrativeState(AdministrativeState.UNLOCKED) .setOperationalState(OperationalState.ENABLED) .setLifecycleState(LifecycleState.INSTALLED) @@ -392,14 +409,14 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService String networkLcp; if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERCLIENT)) { networkLcp = tp.augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.TerminationPoint1.class) - .getAssociatedConnectionMapPort(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1.class) + .getAssociatedConnectionMapTp().iterator().next().getValue(); } else { networkLcp = tp.getTpId().getValue(); } @NonNull KeyedInstanceIdentifier pmIID = InstanceIdentifier.create( - org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.Network.class) + org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.Network.class) .child(Nodes.class, new NodesKey(nodeIdPortMap)).child(Mapping.class, new MappingKey(networkLcp)); @NonNull FluentFuture> mappingOpt = dataBroker.newReadOnlyTransaction().read( @@ -490,12 +507,14 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService Map sips = this.tapiContext.getTapiContext().getServiceInterfacePoint(); if (sips == null || sips.isEmpty()) { - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "No sips in datastore").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "No sips in datastore") + .buildFuture(); } if (!sips.containsKey(new ServiceInterfacePointKey(sipUuid))) { - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "Sip doesnt exist in datastore").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "Sip doesnt exist in datastore") + .buildFuture(); } org.opendaylight.yang.gen.v1.urn .onf.otcc.yang.tapi.common.rev181210.get.service._interface.point.details.output.Sip outSip = @@ -513,8 +532,9 @@ public class TapiTopologyImpl implements TapiTopologyService, TapiCommonService Map sips = this.tapiContext.getTapiContext().getServiceInterfacePoint(); if (sips == null || sips.isEmpty()) { - return RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, - "No sips in datastore").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, "No sips in datastore") + .buildFuture(); } Map outSipMap = new HashMap<>(); for (ServiceInterfacePoint sip : sips.values()) {