Bump upstream dependencies to Ca
[transportpce.git] / servicehandler / src / main / java / org / opendaylight / transportpce / servicehandler / impl / ServicehandlerImpl.java
index 40dd9bde7a2add7bc8b3e18153b292d8aaf35c4a..2c0ea7d0a8fe9460925cb76bae04e9fc89b8ec41 100644 (file)
  */
 package org.opendaylight.transportpce.servicehandler.impl;
 
-import com.google.common.util.concurrent.ListenableFuture;
-import java.time.OffsetDateTime;
-import java.time.ZoneOffset;
-import java.time.format.DateTimeFormatter;
-import java.util.Map;
-import java.util.Optional;
+import com.google.common.collect.ImmutableClassToInstanceMap;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
-import org.opendaylight.transportpce.common.OperationResult;
-import org.opendaylight.transportpce.common.ResponseCodes;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.transportpce.pce.service.PathComputationService;
 import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations;
-import org.opendaylight.transportpce.servicehandler.DowngradeConstraints;
-import org.opendaylight.transportpce.servicehandler.ModelMappingUtils;
-import org.opendaylight.transportpce.servicehandler.ServiceInput;
+import org.opendaylight.transportpce.servicehandler.catalog.CatalogDataStoreOperations;
 import org.opendaylight.transportpce.servicehandler.listeners.NetworkListener;
 import org.opendaylight.transportpce.servicehandler.listeners.PceListener;
 import org.opendaylight.transportpce.servicehandler.listeners.RendererListener;
 import org.opendaylight.transportpce.servicehandler.service.PCEServiceWrapper;
 import org.opendaylight.transportpce.servicehandler.service.RendererServiceWrapper;
 import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations;
-import org.opendaylight.transportpce.servicehandler.validation.ServiceCreateValidation;
-import org.opendaylight.transportpce.servicehandler.validation.checks.ComplianceCheckResult;
-import org.opendaylight.transportpce.servicehandler.validation.checks.ServicehandlerComplianceCheck;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRerouteRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.reroute.request.input.EndpointsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.RpcActions;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ServiceNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraints;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraints;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddOpenroadmOperationalModesToCatalogInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddOpenroadmOperationalModesToCatalogOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddSpecificOperationalModesToCatalogInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddSpecificOperationalModesToCatalogOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.EquipmentNotificationInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.EquipmentNotificationOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.NetworkReOptimizationInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.NetworkReOptimizationOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OpticalTunnelCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OpticalTunnelCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OpticalTunnelRequestCancelInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OpticalTunnelRequestCancelOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OrgOpenroadmServiceService;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateBulkInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateBulkOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateComplexResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateComplexResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteComplexResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteComplexResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckBulkInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckBulkOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureBulkInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureBulkOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteConfirmInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteConfirmOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteConfirmResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteConfirmResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReversionInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReversionOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReversionResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReversionResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRollInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRollOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRollResultNotificationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRollResultNotificationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceSrlgGetInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceSrlgGetOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateBulkInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateBulkOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.delete.input.ServiceDeleteReqInfo.TailRetention;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.delete.input.ServiceDeleteReqInfoBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.Services;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZ;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.resource.TerminationPoint;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationProcessService;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationProcessServiceBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.process.service.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.process.service.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalog;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalog;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreate;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDelete;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheck;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigure;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReroute;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestoration;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreate;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDelete;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.Rpc;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -128,43 +43,74 @@ import org.slf4j.LoggerFactory;
  * Top level service interface providing main OpenROADM controller services.
  */
 @Component
-public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+public class ServicehandlerImpl {
     private static final Logger LOG = LoggerFactory.getLogger(ServicehandlerImpl.class);
-    private static final String PUBLISHER = "ServiceHandler";
-    private static final String TEMP_SERVICE_CREATE_MSG = "tempServiceCreate: {}";
-    private static final String TEMP_SERVICE_DELETE_MSG = "tempServiceDelete: {}";
-    private static final String SERVICE_RESTORATION_MSG = "serviceRestoration: {}";
-    private static final String SERVICE_RECONFIGURE_MSG = "serviceReconfigure: {}";
-    private static final String SERVICE_FEASIBILITY_CHECK_MSG = "serviceFeasibilityCheck: {}";
-    private static final String SERVICE_DELETE_MSG = "serviceDelete: {}";
-    private static final String SERVICE_CREATE_MSG = "serviceCreate: {}";
 
     private ServiceDataStoreOperations serviceDataStoreOperations;
-    private PCEServiceWrapper pceServiceWrapper;
-    private RendererServiceWrapper rendererServiceWrapper;
     private PceListener pceListenerImpl;
     private RendererListener rendererListenerImpl;
     private NetworkListener networkModelListenerImpl;
+    private CatalogDataStoreOperations catalogDataStoreOperations;
     private NotificationPublishService notificationPublishService;
+    private PCEServiceWrapper pceServiceWrapper;
+    private RendererServiceWrapper rendererServiceWrapper;
+    private Registration reg;
 
     @Activate
-    public ServicehandlerImpl(@Reference PathComputationService pathComputationService,
-            @Reference RendererServiceOperations rendererServiceOperations,
-            @Reference NotificationPublishService notificationPublishService,
+    public ServicehandlerImpl(@Reference RpcProviderService rpcProviderService,
+            @Reference ServiceDataStoreOperations serviceDataStoreOperations,
             @Reference PceListener pceListenerImpl,
             @Reference RendererListener rendererListenerImpl,
             @Reference NetworkListener networkModelListenerImpl,
-            @Reference ServiceDataStoreOperations serviceDataStoreOperations) {
+            @Reference CatalogDataStoreOperations catalogDataStoreOperations,
+            @Reference PathComputationService pathComputationService,
+            @Reference RendererServiceOperations rendererServiceOperations,
+            @Reference NotificationPublishService notificationPublishService) {
         this.serviceDataStoreOperations = serviceDataStoreOperations;
-        this.notificationPublishService =  notificationPublishService;
-        this.pceServiceWrapper = new PCEServiceWrapper(pathComputationService, notificationPublishService);
-        this.rendererServiceWrapper = new RendererServiceWrapper(rendererServiceOperations, notificationPublishService);
         this.pceListenerImpl = pceListenerImpl;
         this.rendererListenerImpl = rendererListenerImpl;
         this.networkModelListenerImpl = networkModelListenerImpl;
+        this.catalogDataStoreOperations = catalogDataStoreOperations;
+        this.notificationPublishService =  notificationPublishService;
+        this.pceServiceWrapper = new PCEServiceWrapper(pathComputationService, notificationPublishService);
+        this.rendererServiceWrapper = new RendererServiceWrapper(rendererServiceOperations, notificationPublishService);
+        this.reg = rpcProviderService.registerRpcImplementations(registerRPCs());
         LOG.info("ServicehandlerImpl Initiated");
     }
 
+    @Deactivate
+    public void close() {
+        this.reg.close();
+        LOG.info("ServicehandlerImpl Closed");
+    }
+
+    public Registration getRegisteredRpc() {
+        return reg;
+    }
+
+    private ImmutableClassToInstanceMap<Rpc<?, ?>> registerRPCs() {
+        return ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
+            .put(ServiceCreate.class, new ServiceCreateImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, networkModelListenerImpl, pceServiceWrapper, notificationPublishService))
+            .put(ServiceDelete.class, new ServiceDeleteImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, networkModelListenerImpl, rendererServiceWrapper, notificationPublishService))
+            .put(ServiceFeasibilityCheck.class, new ServiceFeasibilityCheckImpl(serviceDataStoreOperations,
+                    pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, pceServiceWrapper))
+            .put(ServiceReconfigure.class, new ServiceReconfigureImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, networkModelListenerImpl, rendererServiceWrapper))
+            .put(ServiceRestoration.class, new ServiceRestorationImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, networkModelListenerImpl, rendererServiceWrapper))
+            .put(ServiceReroute.class, new ServiceRerouteImpl(serviceDataStoreOperations, pceServiceWrapper))
+            .put(TempServiceCreate.class, new TempServiceCreateImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, networkModelListenerImpl, pceServiceWrapper))
+            .put(TempServiceDelete.class, new TempServiceDeleteImpl(serviceDataStoreOperations, pceListenerImpl,
+                    rendererListenerImpl, rendererServiceWrapper))
+            .put(AddOpenroadmOperationalModesToCatalog.class,
+                    new AddOpenroadmOperationalModesToCatalogImpl(catalogDataStoreOperations))
+            .put(AddSpecificOperationalModesToCatalog.class,
+                    new AddSpecificOperationalModesToCatalogImpl(catalogDataStoreOperations))
+            .build();
+    }
 
     // This is class is public so that these messages can be accessed from Junit (avoid duplications).
     public static final class LogMessages {
@@ -176,6 +122,8 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
         public static final String SERVICE_NON_COMPLIANT;
         public static final String RENDERER_DELETE_FAILED;
         public static final String ABORT_VALID_FAILED;
+        public static final String ABORT_OR_TO_CATALOG_FAILED;
+        public static final String ABORT_SPECIFIC_TO_CATALOG_FAILED;
 
         // Static blocks are generated once and spare memory.
         static {
@@ -186,6 +134,8 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
             SERVICE_NON_COMPLIANT = "non-compliant service";
             RENDERER_DELETE_FAILED = "Renderer service delete failed";
             ABORT_VALID_FAILED = "Aborting: validation of service create request failed";
+            ABORT_OR_TO_CATALOG_FAILED = "Aborting: validation of add OR to catalog request failed";
+            ABORT_SPECIFIC_TO_CATALOG_FAILED = "Aborting: validation of add Specific to catalog request failed";
         }
 
         public static String serviceInDS(String serviceName) {
@@ -207,606 +157,5 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
         private LogMessages() {
         }
     }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceCreateOutput>> serviceCreate(ServiceCreateInput input) {
-        LOG.info("RPC serviceCreate received");
-        // Validation
-        OperationResult validationResult = ServiceCreateValidation.validateServiceCreateRequest(
-                new ServiceInput(input), RpcActions.ServiceCreate);
-        if (!validationResult.isSuccess()) {
-            LOG.warn(SERVICE_CREATE_MSG, LogMessages.ABORT_VALID_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    validationResult.getResultMessage(), ResponseCodes.RESPONSE_FAILED);
-        }
-        //Check any presence of services with the same name
-        String serviceName = input.getServiceName();
-        if (this.serviceDataStoreOperations.getService(serviceName).isPresent()) {
-            LOG.warn(SERVICE_CREATE_MSG, LogMessages.serviceInDS(serviceName));
-            return ModelMappingUtils.createCreateServiceReply(input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.serviceInDS(serviceName), ResponseCodes.RESPONSE_FAILED);
-        }
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(false);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        LOG.debug(SERVICE_CREATE_MSG, LogMessages.PCE_CALLING);
-        PathComputationRequestOutput output = this.pceServiceWrapper.performPCE(input, true);
-        if (output == null) {
-            LOG.warn(SERVICE_CREATE_MSG, LogMessages.ABORT_PCE_FAILED);
-            sendNbiNotification(new PublishNotificationProcessServiceBuilder()
-                    .setServiceName(serviceName)
-                    .setServiceAEnd(new ServiceAEndBuilder(input.getServiceAEnd()).build())
-                    .setServiceZEnd(new ServiceZEndBuilder(input.getServiceZEnd()).build())
-                    .setCommonId(input.getCommonId())
-                    .setConnectionType(input.getConnectionType())
-                    .setResponseFailed(LogMessages.ABORT_PCE_FAILED)
-                    .setMessage("ServiceCreate request failed ...")
-                    .setOperationalState(State.Degraded)
-                    .setPublisherName(PUBLISHER)
-                    .build());
-            return ModelMappingUtils.createCreateServiceReply(input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-        LOG.info("RPC serviceCreate in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createCreateServiceReply(
-                input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceDeleteOutput>> serviceDelete(ServiceDeleteInput input) {
-        String serviceName = input.getServiceDeleteReqInfo().getServiceName();
-        LOG.info("RPC serviceDelete request received for {}", serviceName);
-
-        /*
-         * Upon receipt of service-deleteService RPC, service header and sdnc-request
-         * header compliance are verified.
-         */
-        ComplianceCheckResult serviceHandlerCheckResult =
-            ServicehandlerComplianceCheck.check(
-                input.getServiceDeleteReqInfo().getServiceName(),
-                input.getSdncRequestHeader(), null, RpcActions.ServiceDelete, false, true);
-        if (!serviceHandlerCheckResult.hasPassed()) {
-            LOG.warn(SERVICE_DELETE_MSG, LogMessages.ABORT_SERVICE_NON_COMPLIANT);
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.SERVICE_NON_COMPLIANT, ResponseCodes.RESPONSE_FAILED);
-        }
-
-        //Check presence of service to be deleted
-        Optional<Services> serviceOpt = this.serviceDataStoreOperations.getService(serviceName);
-        Services service;
-        if (serviceOpt.isEmpty()) {
-            LOG.warn(SERVICE_DELETE_MSG, LogMessages.serviceNotInDS(serviceName));
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.serviceNotInDS(serviceName), ResponseCodes.RESPONSE_FAILED);
-        }
-        service = serviceOpt.get();
-        LOG.debug("serviceDelete: Service '{}' found in datastore", serviceName);
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(false);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput
-                serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(new ServiceInput(input));
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteOutput output =
-            this.rendererServiceWrapper.performRenderer(
-                serviceDeleteInput, ServiceNotificationTypes.ServiceDeleteResult, service);
-
-        if (output == null) {
-            LOG.error(SERVICE_DELETE_MSG, LogMessages.RENDERER_DELETE_FAILED);
-            sendNbiNotification(new PublishNotificationProcessServiceBuilder()
-                    .setServiceName(service.getServiceName())
-                    .setServiceAEnd(new ServiceAEndBuilder(service.getServiceAEnd()).build())
-                    .setServiceZEnd(new ServiceZEndBuilder(service.getServiceZEnd()).build())
-                    .setCommonId(service.getCommonId())
-                    .setConnectionType(service.getConnectionType())
-                    .setMessage("ServiceDelete request failed ...")
-                    .setOperationalState(State.InService)
-                    .setResponseFailed(LogMessages.RENDERER_DELETE_FAILED)
-                    .setPublisherName(PUBLISHER)
-                    .build());
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.RENDERER_DELETE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-
-        LOG.debug("RPC serviceDelete in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createDeleteServiceReply(
-                input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceFeasibilityCheckOutput>> serviceFeasibilityCheck(
-            ServiceFeasibilityCheckInput input) {
-        LOG.info("RPC serviceFeasibilityCheck received");
-        // Validation
-        ServiceInput serviceInput = new ServiceInput(input);
-        OperationResult validationResult = ServiceCreateValidation.validateServiceCreateRequest(serviceInput,
-                RpcActions.ServiceFeasibilityCheck);
-        if (! validationResult.isSuccess()) {
-            LOG.warn(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.ABORT_VALID_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    validationResult.getResultMessage(), ResponseCodes.RESPONSE_FAILED);
-        }
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(false);
-        this.pceListenerImpl.setServiceFeasiblity(true);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        LOG.debug(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.PCE_CALLING);
-        PathComputationRequestOutput output = this.pceServiceWrapper.performPCE(input, true);
-        if (output == null) {
-            LOG.warn(SERVICE_FEASIBILITY_CHECK_MSG, LogMessages.ABORT_PCE_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-        LOG.info("RPC serviceFeasibilityCheck in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createCreateServiceReply(
-                input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceReconfigureOutput>> serviceReconfigure(ServiceReconfigureInput input) {
-        String serviceName = input.getServiceName();
-        LOG.info("RPC serviceReconfigure received for {}", serviceName);
-        Optional<Services> servicesObject = this.serviceDataStoreOperations.getService(serviceName);
-        if (servicesObject.isEmpty()) {
-            LOG.warn(SERVICE_RECONFIGURE_MSG, LogMessages.serviceNotInDS(serviceName));
-            return ModelMappingUtils.createCreateServiceReply(
-                input,
-                LogMessages.serviceNotInDS(serviceName));
-        }
-        LOG.debug("Service '{}' found in datastore", serviceName);
-        OperationResult validationResult = ServiceCreateValidation
-                .validateServiceCreateRequest(new ServiceInput(input), RpcActions.ServiceReconfigure);
-        if (!validationResult.isSuccess()) {
-            LOG.warn(SERVICE_RECONFIGURE_MSG, LogMessages.ABORT_VALID_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input,
-                    validationResult.getResultMessage());
-        }
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(true);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
-                .ServiceDeleteInput serviceDeleteInput =
-                        ModelMappingUtils.createServiceDeleteInput(new ServiceInput(input));
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
-                .ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(serviceDeleteInput,
-                        ServiceNotificationTypes.ServiceDeleteResult, null);
-        if (output == null) {
-            LOG.error(SERVICE_RECONFIGURE_MSG, LogMessages.RENDERER_DELETE_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input,
-                    LogMessages.RENDERER_DELETE_FAILED);
-                    //TODO check if RpcStatus.Successful is really expected here
-        }
-        LOG.info("RPC serviceReconfigure in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createCreateServiceReply(
-                input,
-                common.getResponseMessage());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRestorationOutput>> serviceRestoration(ServiceRestorationInput input) {
-        String serviceName = input.getServiceName();
-        LOG.info("RPC serviceRestoration received for {}", serviceName);
-        Optional<Services> servicesObject = this.serviceDataStoreOperations.getService(serviceName);
-
-        if (!servicesObject.isPresent()) {
-            LOG.warn(SERVICE_RESTORATION_MSG, LogMessages.serviceNotInDS(serviceName));
-            return ModelMappingUtils.createRestoreServiceReply(
-                    LogMessages.serviceNotInDS(serviceName));
-        }
-
-        Services service = servicesObject.get();
-        State state = service.getOperationalState();
-
-        if (state == State.InService) {
-            LOG.error(SERVICE_RESTORATION_MSG, LogMessages.serviceInService(serviceName));
-            return ModelMappingUtils.createRestoreServiceReply(
-                    LogMessages.serviceInService(serviceName));
-        }
-
-        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
-        OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
-        DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
-        SdncRequestHeaderBuilder sdncBuilder = new SdncRequestHeaderBuilder()
-                .setNotificationUrl(service.getSdncRequestHeader().getNotificationUrl())
-                .setRequestId(service.getSdncRequestHeader().getRequestId())
-                .setRequestSystemId(service.getSdncRequestHeader().getRequestSystemId())
-                .setRpcAction(RpcActions.ServiceDelete);
-        ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder()
-                .setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder()
-                    .setServiceName(serviceName)
-                    .setDueDate(datetime)
-                    .setTailRetention(TailRetention.No).build())
-                .setSdncRequestHeader(sdncBuilder.build());
-        ServiceInput serviceInput = new ServiceInput(deleteInputBldr.build());
-        serviceInput.setServiceAEnd(service.getServiceAEnd());
-        serviceInput.setServiceZEnd(service.getServiceZEnd());
-        serviceInput.setConnectionType(service.getConnectionType());
-        HardConstraints hardConstraints = service.getHardConstraints();
-        if (hardConstraints == null) {
-            LOG.warn("service '{}' HardConstraints is not set !", serviceName);
-        } else {
-            SoftConstraints softConstraints = service.getSoftConstraints();
-            if (softConstraints == null) {
-                LOG.warn("service '{}' SoftConstraints is not set !", serviceName);
-                serviceInput.setSoftConstraints(DowngradeConstraints.convertToSoftConstraints(hardConstraints));
-            } else {
-                LOG.info("converting hard constraints to soft constraints ...");
-                serviceInput.setSoftConstraints(
-                        DowngradeConstraints.updateSoftConstraints(hardConstraints, softConstraints));
-            }
-            serviceInput.setHardConstraints(DowngradeConstraints.downgradeHardConstraints(hardConstraints));
-        }
-        this.pceListenerImpl.setInput(serviceInput);
-        this.pceListenerImpl.setServiceReconfigure(true);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(serviceInput);
-        this.rendererListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
-            .ServiceDeleteInput serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(
-                    new ServiceInput(deleteInputBldr.build()));
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
-            .ServiceDeleteOutput output = this.rendererServiceWrapper.performRenderer(serviceDeleteInput,
-                ServiceNotificationTypes.ServiceDeleteResult, null);
-        if (output == null) {
-            LOG.error(SERVICE_RESTORATION_MSG, LogMessages.RENDERER_DELETE_FAILED);
-            return ModelMappingUtils.createRestoreServiceReply(LogMessages.RENDERER_DELETE_FAILED);
-        }
-        LOG.info("RPC serviceRestore in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createRestoreServiceReply(common.getResponseMessage());
-
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<EquipmentNotificationOutput>>
-            equipmentNotification(EquipmentNotificationInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRerouteConfirmOutput>>
-            serviceRerouteConfirm(ServiceRerouteConfirmInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRerouteOutput>> serviceReroute(ServiceRerouteInput input) {
-        String serviceName = input.getServiceName();
-        LOG.info("RPC serviceReroute received for {}", serviceName);
-        Optional<Services> servicesObject = this.serviceDataStoreOperations.getService(serviceName);
-        if (servicesObject.isEmpty()) {
-            LOG.warn("serviceReroute: {}", LogMessages.serviceNotInDS(serviceName));
-            return ModelMappingUtils.createRerouteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.serviceNotInDS(serviceName),
-                    ResponseCodes.RESPONSE_FAILED);
-        }
-        Services service = servicesObject.get();
-        Optional<ServicePaths> servicePathsObject = this.serviceDataStoreOperations.getServicePath(serviceName);
-        if (servicePathsObject.isEmpty()) {
-            LOG.warn("serviceReroute: {}", LogMessages.servicePathNotInDS(serviceName));
-            return ModelMappingUtils.createRerouteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.servicePathNotInDS(serviceName),
-                    ResponseCodes.RESPONSE_FAILED);
-        }
-        ServicePaths servicePaths = servicePathsObject.get();
-        // serviceInput for later use maybe...
-        ServiceInput serviceInput = new ServiceInput(input);
-        serviceInput.setServiceAEnd(service.getServiceAEnd());
-        serviceInput.setServiceZEnd(service.getServiceZEnd());
-        serviceInput.setConnectionType(service.getConnectionType());
-        serviceInput.setCommonId(service.getCommonId());
-        serviceInput.setHardConstraints(service.getHardConstraints());
-        serviceInput.setSoftConstraints(service.getSoftConstraints());
-        serviceInput.setCustomer(service.getCustomer());
-        serviceInput.setCustomerContact(service.getCustomerContact());
-
-        // Get the network xpdr termination points
-        Map<AToZKey, AToZ> mapaToz = servicePaths.getPathDescription().getAToZDirection().getAToZ();
-        String aendtp = ((TerminationPoint) mapaToz.get(new AToZKey(String.valueOf(mapaToz.size() - 3)))
-                .getResource()
-                .getResource())
-                .getTpId();
-        String zendtp = ((TerminationPoint) mapaToz.get(new AToZKey("2"))
-                .getResource()
-                .getResource())
-                .getTpId();
-
-        PathComputationRerouteRequestOutput output = this.pceServiceWrapper.performPCEReroute(
-                service.getHardConstraints(), service.getSoftConstraints(), input.getSdncRequestHeader(),
-                service.getServiceAEnd(), service.getServiceZEnd(),
-                new EndpointsBuilder().setAEndTp(aendtp).setZEndTp(zendtp).build());
-
-        if (output == null) {
-            LOG.error("serviceReroute: {}", LogMessages.PCE_FAILED);
-            return ModelMappingUtils.createRerouteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-        LOG.info("RPC ServiceReroute is done");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createRerouteServiceReply(input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceReversionOutput>> serviceReversion(ServiceReversionInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRollOutput>> serviceRoll(ServiceRollInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<NetworkReOptimizationOutput>>
-            networkReOptimization(NetworkReOptimizationInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<TempServiceDeleteOutput>> tempServiceDelete(TempServiceDeleteInput input) {
-        String commonId = input.getCommonId();
-        LOG.info("RPC temp serviceDelete request received for {}", commonId);
-
-        /*
-         * Upon receipt of service-deleteService RPC, service header and sdnc-request
-         * header compliance are verified.
-         */
-        LOG.debug("checking Service Compliance ...");
-        ComplianceCheckResult serviceHandlerCheckResult = ServicehandlerComplianceCheck.check(
-                commonId, null, null, RpcActions.ServiceDelete, false, false
-            );
-        if (!serviceHandlerCheckResult.hasPassed()) {
-            LOG.warn(TEMP_SERVICE_DELETE_MSG, LogMessages.ABORT_SERVICE_NON_COMPLIANT);
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.SERVICE_NON_COMPLIANT, ResponseCodes.RESPONSE_FAILED);
-        }
-
-        //Check presence of service to be deleted
-        LOG.debug("service common-id '{}' is compliant", commonId);
-        Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list.Services>
-                service =
-            this.serviceDataStoreOperations.getTempService(commonId);
-        if (service.isEmpty()) {
-            LOG.error(TEMP_SERVICE_DELETE_MSG, LogMessages.serviceNotInDS(commonId));
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.serviceNotInDS(commonId), ResponseCodes.RESPONSE_FAILED);
-        }
-
-        LOG.info("Service '{}' present in datastore !", commonId);
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(false);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.rendererListenerImpl.setTempService(true);
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteOutput output =
-                this.rendererServiceWrapper.performRenderer(input, ServiceNotificationTypes.ServiceDeleteResult);
-        if (output == null) {
-            LOG.error(TEMP_SERVICE_DELETE_MSG, LogMessages.RENDERER_DELETE_FAILED);
-            return ModelMappingUtils.createDeleteServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.RENDERER_DELETE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-        LOG.info("RPC tempServiceDelete in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createDeleteServiceReply(
-                input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<TempServiceCreateOutput>> tempServiceCreate(TempServiceCreateInput input) {
-        LOG.info("RPC tempServiceCreate received");
-        // Validation
-        OperationResult validationResult = ServiceCreateValidation.validateServiceCreateRequest(
-                new ServiceInput(input), RpcActions.TempServiceCreate);
-        if (! validationResult.isSuccess()) {
-            LOG.warn(TEMP_SERVICE_CREATE_MSG, LogMessages.ABORT_VALID_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    validationResult.getResultMessage(), ResponseCodes.RESPONSE_FAILED);
-        }
-
-        // Starting service create operation
-        LOG.debug(TEMP_SERVICE_CREATE_MSG, LogMessages.PCE_CALLING);
-        this.pceListenerImpl.setInput(new ServiceInput(input));
-        this.pceListenerImpl.setServiceReconfigure(false);
-        this.pceListenerImpl.setserviceDataStoreOperations(this.serviceDataStoreOperations);
-        this.pceListenerImpl.setTempService(true);
-        this.rendererListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        this.rendererListenerImpl.setServiceInput(new ServiceInput(input));
-        this.rendererListenerImpl.setTempService(true);
-        this.networkModelListenerImpl.setserviceDataStoreOperations(serviceDataStoreOperations);
-        PathComputationRequestOutput output = this.pceServiceWrapper.performPCE(input, true);
-        if (output == null) {
-            LOG.warn(TEMP_SERVICE_CREATE_MSG, LogMessages.ABORT_PCE_FAILED);
-            return ModelMappingUtils.createCreateServiceReply(
-                    input, ResponseCodes.FINAL_ACK_YES,
-                    LogMessages.PCE_FAILED, ResponseCodes.RESPONSE_FAILED);
-        }
-        LOG.info("RPC tempServiceCreate in progress...");
-        ConfigurationResponseCommon common = output.getConfigurationResponseCommon();
-        return ModelMappingUtils.createCreateServiceReply(
-                input, common.getAckFinalIndicator(),
-                common.getResponseMessage(), common.getResponseCode());
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<
-        ServiceDeleteComplexResultNotificationRequestOutput>> serviceDeleteComplexResultNotificationRequest(
-            ServiceDeleteComplexResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<
-        ServiceCreateResultNotificationRequestOutput>> serviceCreateResultNotificationRequest(
-            ServiceCreateResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<
-        ServiceDeleteResultNotificationRequestOutput>> serviceDeleteResultNotificationRequest(
-            ServiceDeleteResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<
-        ServiceCreateComplexResultNotificationRequestOutput>> serviceCreateComplexResultNotificationRequest(
-            ServiceCreateComplexResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceFeasibilityCheckBulkOutput>> serviceFeasibilityCheckBulk(
-        ServiceFeasibilityCheckBulkInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /**
-     * Send notification to NBI notification in order to publish message.
-     * @param service PublishNotificationService
-     */
-    private void sendNbiNotification(PublishNotificationProcessService service) {
-        try {
-            notificationPublishService.putNotification(service);
-        } catch (InterruptedException e) {
-            LOG.warn("Cannot send notification to nbi", e);
-            Thread.currentThread().interrupt();
-        }
-    }
-
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceCreateBulkOutput>> serviceCreateBulk(ServiceCreateBulkInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<TempServiceCreateBulkOutput>> tempServiceCreateBulk(
-        TempServiceCreateBulkInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRollResultNotificationRequestOutput>> serviceRollResultNotificationRequest(
-        ServiceRollResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceReconfigureBulkOutput>> serviceReconfigureBulk(
-        ServiceReconfigureBulkInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceReconfigureResultNotificationRequestOutput>>
-            serviceReconfigureResultNotificationRequest(ServiceReconfigureResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRestorationResultNotificationRequestOutput>>
-            serviceRestorationResultNotificationRequest(ServiceRestorationResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceReversionResultNotificationRequestOutput>>
-            serviceReversionResultNotificationRequest(ServiceReversionResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceRerouteConfirmResultNotificationRequestOutput>>
-            serviceRerouteConfirmResultNotificationRequest(ServiceRerouteConfirmResultNotificationRequestInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<OpticalTunnelCreateOutput>> opticalTunnelCreate(OpticalTunnelCreateInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<OpticalTunnelRequestCancelOutput>> opticalTunnelRequestCancel(
-            OpticalTunnelRequestCancelInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<AddOpenroadmOperationalModesToCatalogOutput>>
-            addOpenroadmOperationalModesToCatalog(AddOpenroadmOperationalModesToCatalogInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<AddSpecificOperationalModesToCatalogOutput>> addSpecificOperationalModesToCatalog(
-            AddSpecificOperationalModesToCatalogInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<ServiceSrlgGetOutput>> serviceSrlgGet(ServiceSrlgGetInput input) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 }
+