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;
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.rev220922.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.MappingKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.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;
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;
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
.getTapiNode(topoUuid, nodeUuid);
if (node == null) {
LOG.error("Invalid TAPI node name");
- return RpcResultBuilder.<GetNodeDetailsOutput>failed().withError(RpcError.ErrorType.RPC,
- "Invalid Tapi Node name").buildFuture();
+ return RpcResultBuilder.<GetNodeDetailsOutput>failed()
+ .withError(ErrorType.RPC, "Invalid Tapi Node name")
+ .buildFuture();
}
return RpcResultBuilder.success(new GetNodeDetailsOutputBuilder()
.setNode(new org.opendaylight.yang.gen.v1.urn
@Override
public ListenableFuture<RpcResult<GetTopologyDetailsOutput>> 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();
if (!(topologyMap != null && topologyMap.containsKey(new TopologyKey(topoUuid)))) {
LOG.error("Topology {} not found in datastore", input.getTopologyIdOrName());
return RpcResultBuilder.<GetTopologyDetailsOutput>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));
}
LOG.error("Invalid TAPI topology name");
return RpcResultBuilder.<GetTopologyDetailsOutput>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())
} catch (TapiTopologyException e) {
LOG.error("error building TAPI topology");
return RpcResultBuilder.<GetTopologyDetailsOutput>failed()
- .withError(RpcError.ErrorType.RPC, "Error building topology").buildFuture();
+ .withError(ErrorType.RPC, "Error building topology")
+ .buildFuture();
}
}
.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()
tapiNodeList = new HashMap<>();
Map<LinkKey, org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link>
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<Entry<String, List<String>>> it = networkPortMap.entrySet().iterator();
while (it.hasNext()) {
String nodeId = it.next().getKey();
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());
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)
OwnedNodeEdgePoint nep = this.tapiContext.getTapiNEP(topoUuid, nodeUuid, nepUuid);
if (nep == null) {
LOG.error("Invalid TAPI nep name");
- return RpcResultBuilder.<GetNodeEdgePointDetailsOutput>failed().withError(RpcError.ErrorType.RPC,
- "Invalid NEP name").buildFuture();
+ return RpcResultBuilder.<GetNodeEdgePointDetailsOutput>failed()
+ .withError(ErrorType.RPC, "Invalid NEP name")
+ .buildFuture();
}
return RpcResultBuilder.success(new GetNodeEdgePointDetailsOutputBuilder()
.setNodeEdgePoint(new NodeEdgePointBuilder(nep).build()).build()).buildFuture();
.getTapiLink(topoUuid, linkUuid);
if (link == null) {
LOG.error("Invalid TAPI link name");
- return RpcResultBuilder.<GetLinkDetailsOutput>failed().withError(RpcError.ErrorType.RPC,
- "Invalid Link name").buildFuture();
+ return RpcResultBuilder.<GetLinkDetailsOutput>failed()
+ .withError(ErrorType.RPC, "Invalid Link name")
+ .buildFuture();
}
return RpcResultBuilder.success(new GetLinkDetailsOutputBuilder().setLink(new LinkBuilder(link).build())
.build()).buildFuture();
topologyMap = this.tapiContext.getTopologyContext();
if (topologyMap.isEmpty()) {
LOG.error("No topologies exist in tapi context");
- return RpcResultBuilder.<GetTopologyListOutput>failed().withError(RpcError.ErrorType.APPLICATION,
- "No topologies exist in tapi context").buildFuture();
+ return RpcResultBuilder.<GetTopologyListOutput>failed()
+ .withError(ErrorType.APPLICATION, "No topologies exist in tapi context")
+ .buildFuture();
}
Map<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.get.topology.list.output.TopologyKey,
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.get.topology.list.output.Topology>
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)
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<Mapping, MappingKey> 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.rev220922.Network.class)
.child(Nodes.class, new NodesKey(nodeIdPortMap)).child(Mapping.class, new MappingKey(networkLcp));
@NonNull
FluentFuture<Optional<Mapping>> mappingOpt = dataBroker.newReadOnlyTransaction().read(
Map<ServiceInterfacePointKey, ServiceInterfacePoint> sips =
this.tapiContext.getTapiContext().getServiceInterfacePoint();
if (sips == null || sips.isEmpty()) {
- return RpcResultBuilder.<GetServiceInterfacePointDetailsOutput>failed().withError(RpcError.ErrorType.RPC,
- "No sips in datastore").buildFuture();
+ return RpcResultBuilder.<GetServiceInterfacePointDetailsOutput>failed()
+ .withError(ErrorType.RPC, "No sips in datastore")
+ .buildFuture();
}
if (!sips.containsKey(new ServiceInterfacePointKey(sipUuid))) {
- return RpcResultBuilder.<GetServiceInterfacePointDetailsOutput>failed().withError(RpcError.ErrorType.RPC,
- "Sip doesnt exist in datastore").buildFuture();
+ return RpcResultBuilder.<GetServiceInterfacePointDetailsOutput>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 =
Map<ServiceInterfacePointKey, ServiceInterfacePoint> sips =
this.tapiContext.getTapiContext().getServiceInterfacePoint();
if (sips == null || sips.isEmpty()) {
- return RpcResultBuilder.<GetServiceInterfacePointListOutput>failed().withError(RpcError.ErrorType.RPC,
- "No sips in datastore").buildFuture();
+ return RpcResultBuilder.<GetServiceInterfacePointListOutput>failed()
+ .withError(ErrorType.RPC, "No sips in datastore")
+ .buildFuture();
}
Map<SipKey, Sip> outSipMap = new HashMap<>();
for (ServiceInterfacePoint sip : sips.values()) {