upgrade models to OpenROADM service 5.1.0
[transportpce.git] / servicehandler / src / main / java / org / opendaylight / transportpce / servicehandler / listeners / PceListenerImpl.java
index 0d5b266d1ff89e4f77886d60b1a418704d843eaf..787ade548e979cebc207385bf1521d8dc90bfb7e 100644 (file)
@@ -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;
+    }
+
 }