*/
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;
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;
private ServiceInput input;
private Boolean serviceReconfigure;
private Boolean tempService;
+ private Boolean serviceFeasiblity;
public PceListenerImpl(RendererServiceOperations rendererServiceOperations,
PathComputationService pathComputationService, NotificationPublishService notificationPublishService,
setServiceReconfigure(false);
setInput(null);
setTempService(false);
+ setServiceFeasiblity(false);
}
@Override
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) {
.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;
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 =
this.tempService = tempService;
}
+ public void setServiceFeasiblity(Boolean serviceFeasiblity) {
+ this.serviceFeasiblity = serviceFeasiblity;
+ }
+
}