X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=servicehandler%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fservicehandler%2Flisteners%2FPceListenerImpl.java;h=787ade548e979cebc207385bf1521d8dc90bfb7e;hb=e376a7f4aca935a952013993d712b7667f847e70;hp=0d5b266d1ff89e4f77886d60b1a418704d843eaf;hpb=c3212dea41910175d12de2732d36d0b6943beb2d;p=transportpce.git diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/PceListenerImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/PceListenerImpl.java index 0d5b266d1..787ade548 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/PceListenerImpl.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/PceListenerImpl.java @@ -7,7 +7,7 @@ */ package org.opendaylight.transportpce.servicehandler.listeners; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.transportpce.common.OperationResult; import org.opendaylight.transportpce.pce.service.PathComputationService; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; @@ -15,16 +15,16 @@ import org.opendaylight.transportpce.servicehandler.ModelMappingUtils; import org.opendaylight.transportpce.servicehandler.ServiceInput; import org.opendaylight.transportpce.servicehandler.service.PCEServiceWrapper; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.PathComputationRequestOutput; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.PathComputationRequestOutputBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.ServicePathRpcResult; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.TransportpcePceListener; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.service.path.rpc.result.PathDescription; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.service.path.rpc.result.PathDescriptionBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.PathComputationRequestOutput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.PathComputationRequestOutputBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.ServicePathRpcResult; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.TransportpcePceListener; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescription; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescriptionBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestInput; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +39,7 @@ public class PceListenerImpl implements TransportpcePceListener { private ServiceInput input; private Boolean serviceReconfigure; private Boolean tempService; + private Boolean serviceFeasiblity; public PceListenerImpl(RendererServiceOperations rendererServiceOperations, PathComputationService pathComputationService, NotificationPublishService notificationPublishService, @@ -49,6 +50,7 @@ public class PceListenerImpl implements TransportpcePceListener { setServiceReconfigure(false); setInput(null); setTempService(false); + setServiceFeasiblity(false); } @Override @@ -57,7 +59,8 @@ public class PceListenerImpl implements TransportpcePceListener { servicePathRpcResult = notification; PathDescription pathDescription = null; switch (servicePathRpcResult.getNotificationType().getIntValue()) { - case 1: /** path-computation-request. */ + /* path-computation-request. */ + case 1: LOG.info("PCE '{}' Notification received : {}",servicePathRpcResult.getNotificationType().getName(), notification); if (servicePathRpcResult.getStatus() == RpcStatusEx.Successful) { @@ -67,40 +70,44 @@ public class PceListenerImpl implements TransportpcePceListener { .setAToZDirection(servicePathRpcResult.getPathDescription().getAToZDirection()) .setZToADirection(servicePathRpcResult.getPathDescription().getZToADirection()).build(); LOG.info("PathDescription gets : {}", pathDescription); - if (input == null) { - LOG.error("Input is null !"); - return; - } - OperationResult operationResult = null; - if (tempService) { - operationResult = this.serviceDataStoreOperations - .createTempService(input.getTempServiceCreateInput()); - if (!operationResult.isSuccess()) { - LOG.error("Temp Service not created in datastore !"); + if (!serviceFeasiblity) { + if (input == null) { + LOG.error("Input is null !"); + return; } - } else { - operationResult = this.serviceDataStoreOperations - .createService(input.getServiceCreateInput()); - if (!operationResult.isSuccess()) { - LOG.error("Service not created in datastore !"); + OperationResult operationResult = null; + if (tempService) { + operationResult = this.serviceDataStoreOperations + .createTempService(input.getTempServiceCreateInput()); + if (!operationResult.isSuccess()) { + LOG.error("Temp Service not created in datastore !"); + } + } else { + operationResult = this.serviceDataStoreOperations + .createService(input.getServiceCreateInput()); + if (!operationResult.isSuccess()) { + LOG.error("Service not created in datastore !"); + } } + ResponseParameters responseParameters = new ResponseParametersBuilder() + .setPathDescription(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c + ._interface.service.types.rev191009.response.parameters.sp.response + .parameters.PathDescriptionBuilder(pathDescription).build()) + .build(); + PathComputationRequestOutput pceResponse = new PathComputationRequestOutputBuilder() + .setResponseParameters(responseParameters).build(); + OperationResult operationServicePathSaveResult = + this.serviceDataStoreOperations.createServicePath(input, pceResponse); + if (!operationServicePathSaveResult.isSuccess()) { + LOG.error("Service Path not created in datastore !"); + } + ServiceImplementationRequestInput serviceImplementationRequest = + ModelMappingUtils.createServiceImplementationRequest(input, pathDescription); + LOG.info("Sending serviceImplementation request : {}", serviceImplementationRequest); + this.rendererServiceOperations.serviceImplementation(serviceImplementationRequest); + } else { + LOG.warn("service-feasibility-check RPC "); } - ResponseParameters responseParameters = new ResponseParametersBuilder() - .setPathDescription(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c - ._interface.service.types.rev171016.response.parameters.sp.response - .parameters.PathDescriptionBuilder(pathDescription).build()) - .build(); - PathComputationRequestOutput pceResponse = new PathComputationRequestOutputBuilder() - .setResponseParameters(responseParameters).build(); - OperationResult operationServicePathSaveResult = - this.serviceDataStoreOperations.createServicePath(input, pceResponse); - if (!operationServicePathSaveResult.isSuccess()) { - LOG.error("Service Path not created in datastore !"); - } - ServiceImplementationRequestInput serviceImplementationRequest = - ModelMappingUtils.createServiceImplementationRequest(input, pathDescription); - LOG.info("Sending serviceImplementation request : {}", serviceImplementationRequest); - this.rendererServiceOperations.serviceImplementation(serviceImplementationRequest); } else { LOG.error("'PathDescription' parameter is null "); return; @@ -110,7 +117,8 @@ public class PceListenerImpl implements TransportpcePceListener { return; } break; - case 2: /** cancel-resource-reserve. */ + /* cancel-resource-reserve. */ + case 2: if (servicePathRpcResult.getStatus() == RpcStatusEx.Successful) { LOG.info("PCE cancel resource done OK !"); OperationResult deleteServicePathOperationResult = @@ -189,4 +197,8 @@ public class PceListenerImpl implements TransportpcePceListener { this.tempService = tempService; } + public void setServiceFeasiblity(Boolean serviceFeasiblity) { + this.serviceFeasiblity = serviceFeasiblity; + } + }