+ //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.rev190531.temp.service.list.Services>
+ service =
+ this.serviceDataStoreOperations.getTempService(commonId);
+ if (!service.isPresent()) {
+ 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);
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.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);
+ 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());