- @Override
- public final ListenableFuture<RpcResult<InitRoadmRoadmTapiLinkOutput>> initRoadmRoadmTapiLink(
- InitRoadmRoadmTapiLinkInput input) {
- // TODO --> need to check if the nodes and neps exist in the topology
- String sourceNode = input.getRdmANode();
- String sourceTp = input.getDegATp();
- String destNode = input.getRdmZNode();
- String destTp = input.getDegZTp();
- Link link = this.tapiLink.createTapiLink(sourceNode, sourceTp, destNode, destTp,
- TapiStringConstants.OMS_RDM_RDM_LINK, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
- TapiStringConstants.PHTNC_MEDIA_OTS, TapiStringConstants.PHTNC_MEDIA_OTS,
- this.tapiLink.getAdminState(sourceNode, sourceTp, destNode, destTp),
- this.tapiLink.getOperState(sourceNode, sourceTp, destNode, destTp),
- Set.of(LayerProtocolName.PHOTONICMEDIA), Set.of(LayerProtocolName.PHOTONICMEDIA.getName()), tapiTopoUuid);
- InitRoadmRoadmTapiLinkOutputBuilder output = new InitRoadmRoadmTapiLinkOutputBuilder();
- if (link == null) {
- LOG.error("Error creating link object");
- return RpcResultBuilder.<InitRoadmRoadmTapiLinkOutput>failed()
- .withError(ErrorType.RPC, "Failed to create link in topology")
- .buildFuture();
- }
- if (putLinkInTopology(link)) {
- output = new InitRoadmRoadmTapiLinkOutputBuilder()
- .setResult("Link created in tapi topology. Link-uuid = " + link.getUuid());
- }
- return RpcResultBuilder.success(output.build()).buildFuture();
- }
-
- @Override
- public final ListenableFuture<RpcResult<InitXpdrRdmTapiLinkOutput>> initXpdrRdmTapiLink(
- InitXpdrRdmTapiLinkInput input) {
- // TODO --> need to check if the nodes and neps exist in the topology
- String destNode = input.getRdmNode();
- String destTp = input.getAddDropTp();
- String sourceNode = input.getXpdrNode();
- String sourceTp = input.getNetworkTp();
- Link link = this.tapiLink.createTapiLink(sourceNode, sourceTp, destNode, destTp,
- TapiStringConstants.OMS_XPDR_RDM_LINK, TapiStringConstants.OTSI, TapiStringConstants.PHTNC_MEDIA,
- TapiStringConstants.PHTNC_MEDIA_OTS, TapiStringConstants.PHTNC_MEDIA_OTS,
- this.tapiLink.getAdminState(sourceNode, sourceTp, destNode, destTp),
- this.tapiLink.getOperState(sourceNode, sourceTp, destNode, destTp),
- Set.of(LayerProtocolName.PHOTONICMEDIA), Set.of(LayerProtocolName.PHOTONICMEDIA.getName()), tapiTopoUuid);
- InitXpdrRdmTapiLinkOutputBuilder output = new InitXpdrRdmTapiLinkOutputBuilder();
- if (link == null) {
- LOG.error("Error creating link object");
- return RpcResultBuilder.<InitXpdrRdmTapiLinkOutput>failed()
- .withError(ErrorType.RPC, "Failed to create link in topology")
- .buildFuture();
- }
- if (putLinkInTopology(link)) {
- output = new InitXpdrRdmTapiLinkOutputBuilder()
- .setResult("Link created in tapi topology. Link-uuid = " + link.getUuid());
- }
- return RpcResultBuilder.success(output.build()).buildFuture();
- }
-
- @Override
- public final ListenableFuture<RpcResult<DeleteTapiLinkOutput>> deleteTapiLink(DeleteTapiLinkInput input) {
- // TODO: check if this IID is correct
- // TODO --> need to check if the link exists in the topology
- try {
- InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class).child(Topology.class,
- new TopologyKey(tapiTopoUuid)).child(Link.class, new LinkKey(input.getUuid())).build();
- this.networkTransactionService.delete(LogicalDatastoreType.OPERATIONAL, linkIID);
- this.networkTransactionService.commit().get();
- LOG.info("TAPI link deleted successfully.");
- return RpcResultBuilder.success(new DeleteTapiLinkOutputBuilder()
- .setResult("Link successfully deleted from tapi topology").build()).buildFuture();
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Failed to delete TAPI link", e);
- return RpcResultBuilder.<DeleteTapiLinkOutput>failed()
- .withError(ErrorType.RPC, "Failed to delete link from topology")
- .buildFuture();
- }
- }