diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bfc2c10b..109c61d18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,23 @@ -CHANGELOG - +# CHANGELOG +All notable changes to this project are documented in this file. Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) -2.12.0 Initial Release -## [Unreleased] -### Added -- Github workflow for changelog verification ([#440](https://github.com/opensearch-project/flow-framework/pull/440)) - -### Changed - -### Deprecated - -### Removed - -### Fixed - -### Security - - -[Unreleased]: https://github.com/opensearch-project/flow-framework/compare/2.x...HEAD +## [Unreleased 3.0](https://github.com/opensearch-project/flow-framework/compare/2.x...HEAD) +### Features +### Enhancements +### Bug Fixes +### Infrastructure +### Documentation +### Maintenance +### Refactoring + +## [Unreleased 2.x](https://github.com/opensearch-project/flow-framework/compare/2.12...2.x) +### Features +### Enhancements +### Bug Fixes +### Infrastructure +### Documentation +### Maintenance +### Refactoring +- Remove stack traces and exception causes from logs ([#524](https://github.com/opensearch-project/flow-framework/pull/524)) diff --git a/src/main/java/org/opensearch/flowframework/indices/FlowFrameworkIndicesHandler.java b/src/main/java/org/opensearch/flowframework/indices/FlowFrameworkIndicesHandler.java index 76c543883..0b5908eee 100644 --- a/src/main/java/org/opensearch/flowframework/indices/FlowFrameworkIndicesHandler.java +++ b/src/main/java/org/opensearch/flowframework/indices/FlowFrameworkIndicesHandler.java @@ -180,19 +180,20 @@ public void initFlowFrameworkIndexIfAbsent(FlowFrameworkIndex index, ActionListe @SuppressWarnings("deprecation") ActionListener actionListener = ActionListener.wrap(r -> { if (r.isAcknowledged()) { - logger.info("create index:{}", indexName); + logger.info("create index: {}", indexName); internalListener.onResponse(true); } else { internalListener.onResponse(false); } }, e -> { - logger.error("Failed to create index {}", indexName, e); - internalListener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to create index " + indexName; + logger.error(errorMessage); + internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); }); CreateIndexRequest request = new CreateIndexRequest(indexName).mapping(mapping).settings(indexSettings); client.admin().indices().create(request, actionListener); } else { - logger.debug("index:{} is already created", indexName); + logger.debug("index: {} is already created", indexName); if (indexMappingUpdated.containsKey(indexName) && !indexMappingUpdated.get(indexName).get()) { shouldUpdateIndex(indexName, index.getVersion(), ActionListener.wrap(r -> { if (r) { @@ -221,12 +222,9 @@ public void initFlowFrameworkIndexIfAbsent(FlowFrameworkIndex index, ActionListe } }, exception -> { String errorMessage = "Failed to update index setting for: " + indexName; - logger.error(errorMessage, exception); + logger.error(errorMessage); internalListener.onFailure( - new FlowFrameworkException( - errorMessage + " : " + exception.getMessage(), - ExceptionsHelper.status(exception) - ) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); })); } else { @@ -236,12 +234,9 @@ public void initFlowFrameworkIndexIfAbsent(FlowFrameworkIndex index, ActionListe } }, exception -> { String errorMessage = "Failed to update index " + indexName; - logger.error(errorMessage, exception); + logger.error(errorMessage); internalListener.onFailure( - new FlowFrameworkException( - errorMessage + " : " + exception.getMessage(), - ExceptionsHelper.status(exception) - ) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); @@ -251,11 +246,9 @@ public void initFlowFrameworkIndexIfAbsent(FlowFrameworkIndex index, ActionListe internalListener.onResponse(true); } }, e -> { - String errorMessage = "Failed to update index mapping"; - logger.error(errorMessage, e); - internalListener.onFailure( - new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e)) - ); + String errorMessage = "Failed to update index mapping for " + indexName; + logger.error(errorMessage); + internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); })); } else { // No need to update index if it's already updated. @@ -264,8 +257,8 @@ public void initFlowFrameworkIndexIfAbsent(FlowFrameworkIndex index, ActionListe } } catch (Exception e) { String errorMessage = "Failed to init index " + indexName; - logger.error(errorMessage, e); - listener.onFailure(new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e))); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -329,10 +322,10 @@ public void putTemplateToGlobalContext(Template template, ActionListener { - logger.error("Failed to create global_context index", e); + logger.error("Failed to create global_context index"); listener.onFailure(e); })); } @@ -349,7 +342,7 @@ public void initializeConfigIndex(ActionListener listener) { } encryptorUtils.initializeMasterKey(listener); }, createIndexException -> { - logger.error("Failed to create config index", createIndexException); + logger.error("Failed to create config index"); listener.onFailure(createIndexException); })); } @@ -384,14 +377,14 @@ public void putInitialStateToWorkflowState(String workflowId, User user, ActionL client.index(request, ActionListener.runBefore(listener, context::restore)); } catch (Exception e) { String errorMessage = "Failed to put state index document"; - logger.error(errorMessage, e); - listener.onFailure(new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e))); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }, e -> { String errorMessage = "Failed to create workflow_state index"; - logger.error(errorMessage, e); - listener.onFailure(new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e))); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); })); } @@ -403,11 +396,9 @@ public void putInitialStateToWorkflowState(String workflowId, User user, ActionL */ public void updateTemplateInGlobalContext(String documentId, Template template, ActionListener listener) { if (!doesIndexExist(GLOBAL_CONTEXT_INDEX)) { - String exceptionMessage = "Failed to update template for workflow_id : " - + documentId - + ", global_context index does not exist."; - logger.error(exceptionMessage); - listener.onFailure(new FlowFrameworkException(exceptionMessage, RestStatus.BAD_REQUEST)); + String errorMessage = "Failed to update template for workflow_id : " + documentId + ", global_context index does not exist."; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); return; } doesTemplateExist(documentId, templateExists -> { @@ -425,10 +416,8 @@ public void updateTemplateInGlobalContext(String documentId, Template template, client.index(request, ActionListener.runBefore(listener, context::restore)); } catch (Exception e) { String errorMessage = "Failed to update global_context entry : " + documentId; - logger.error(errorMessage, e); - listener.onFailure( - new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e)) - ); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } else { String errorMessage = "The template has already been provisioned so it can't be updated: " + documentId; @@ -457,12 +446,14 @@ public void doesTemplateExist(String documentId, Consumer booleanRe try (ThreadContext.StoredContext context = client.threadPool().getThreadContext().stashContext()) { client.get(getRequest, ActionListener.wrap(response -> { booleanResultConsumer.accept(response.isExists()); }, exception -> { context.restore(); - logger.error("Failed to get template " + documentId, exception); - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + String errorMessage = "Failed to get template " + documentId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } catch (Exception e) { - logger.error("Failed to retrieve template from global context.", e); - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to retrieve template from global context: " + documentId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -490,17 +481,18 @@ public void isWorkflowNotStarted(String documentId, Consumer boolea WorkflowState workflowState = WorkflowState.parse(parser); booleanResultConsumer.accept(workflowState.getProvisioningProgress().equals(ProvisioningProgress.NOT_STARTED.name())); } catch (Exception e) { - String message = "Failed to parse workflow state " + documentId; - logger.error(message, e); - listener.onFailure(new FlowFrameworkException(message, RestStatus.INTERNAL_SERVER_ERROR)); + String errorMessage = "Failed to parse workflow state " + documentId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.INTERNAL_SERVER_ERROR)); } }, exception -> { - logger.error("Failed to get workflow state " + documentId, exception); + logger.error("Failed to get workflow state for {} ", documentId); booleanResultConsumer.accept(false); })); } catch (Exception e) { - logger.error("Failed to retrieve workflow state to check provisioning status", e); - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to retrieve workflow state to check provisioning status"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -516,9 +508,9 @@ public void updateFlowFrameworkSystemIndexDoc( ActionListener listener ) { if (!doesIndexExist(WORKFLOW_STATE_INDEX)) { - String exceptionMessage = "Failed to update document for given workflow due to missing " + WORKFLOW_STATE_INDEX + " index"; - logger.error(exceptionMessage); - listener.onFailure(new FlowFrameworkException(exceptionMessage, RestStatus.BAD_REQUEST)); + String errorMessage = "Failed to update document for given workflow due to missing " + WORKFLOW_STATE_INDEX + " index"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); } else { try (ThreadContext.StoredContext context = client.threadPool().getThreadContext().stashContext()) { UpdateRequest updateRequest = new UpdateRequest(WORKFLOW_STATE_INDEX, documentId); @@ -530,8 +522,8 @@ public void updateFlowFrameworkSystemIndexDoc( client.update(updateRequest, ActionListener.runBefore(listener, context::restore)); } catch (Exception e) { String errorMessage = "Failed to update " + WORKFLOW_STATE_INDEX + " entry : " + documentId; - logger.error(errorMessage, e); - listener.onFailure(new FlowFrameworkException(errorMessage + " : " + e.getMessage(), ExceptionsHelper.status(e))); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } } @@ -550,9 +542,9 @@ public void updateFlowFrameworkSystemIndexDocWithScript( ActionListener listener ) { if (!doesIndexExist(indexName)) { - String exceptionMessage = "Failed to update document for given workflow due to missing " + indexName + " index"; - logger.error(exceptionMessage); - listener.onFailure(new Exception(exceptionMessage)); + String errorMessage = "Failed to update document for given workflow due to missing " + indexName + " index"; + logger.error(errorMessage); + listener.onFailure(new Exception(errorMessage)); } else { try (ThreadContext.StoredContext context = client.threadPool().getThreadContext().stashContext()) { UpdateRequest updateRequest = new UpdateRequest(indexName, documentId); @@ -563,10 +555,9 @@ public void updateFlowFrameworkSystemIndexDocWithScript( // TODO: Implement our own concurrency control to improve on retry mechanism client.update(updateRequest, ActionListener.runBefore(listener, context::restore)); } catch (Exception e) { - logger.error("Failed to update {} entry : {}. {}", indexName, documentId, e.getMessage()); - listener.onFailure( - new FlowFrameworkException("Failed to update " + indexName + "entry: " + documentId, ExceptionsHelper.status(e)) - ); + String errorMessage = "Failed to update " + indexName + " entry : " + documentId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } } diff --git a/src/main/java/org/opensearch/flowframework/model/Template.java b/src/main/java/org/opensearch/flowframework/model/Template.java index 0b6e885f0..8ef914d65 100644 --- a/src/main/java/org/opensearch/flowframework/model/Template.java +++ b/src/main/java/org/opensearch/flowframework/model/Template.java @@ -367,7 +367,7 @@ public String toJson() { XContentBuilder builder = JsonXContent.contentBuilder(); return this.toXContent(builder, EMPTY_PARAMS).toString(); } catch (IOException e) { - return "{\"error\": \"couldn't create JSON: " + e.getMessage() + "\"}"; + return "{\"error\": \"couldn't create JSON from XContent\"}"; } } @@ -381,7 +381,7 @@ public String toYaml() { XContentBuilder builder = YamlXContent.contentBuilder(); return this.toXContent(builder, EMPTY_PARAMS).toString(); } catch (IOException e) { - return "error: couldn't create YAML: " + e.getMessage(); + return "error: couldn't create YAML from XContent"; } } diff --git a/src/main/java/org/opensearch/flowframework/model/WorkflowStepValidator.java b/src/main/java/org/opensearch/flowframework/model/WorkflowStepValidator.java index 6f1b4242a..ba44072e9 100644 --- a/src/main/java/org/opensearch/flowframework/model/WorkflowStepValidator.java +++ b/src/main/java/org/opensearch/flowframework/model/WorkflowStepValidator.java @@ -97,11 +97,9 @@ public static WorkflowStepValidator parse(XContentParser parser) throws IOExcept try { timeout = TimeValue.parseTimeValue(parser.text(), TIMEOUT); } catch (IllegalArgumentException e) { - logger.error("Failed to parse TIMEOUT value for field [{}]", fieldName, e); - throw new FlowFrameworkException( - "Failed to parse workflow-step.json file for field [" + fieldName + "]", - RestStatus.INTERNAL_SERVER_ERROR - ); + String errorMessage = "Failed to parse workflow-step.json file for field [" + fieldName + "]"; + logger.error(errorMessage); + throw new FlowFrameworkException(errorMessage, RestStatus.INTERNAL_SERVER_ERROR); } break; default: diff --git a/src/main/java/org/opensearch/flowframework/model/WorkflowValidator.java b/src/main/java/org/opensearch/flowframework/model/WorkflowValidator.java index 262eed800..60ae40907 100644 --- a/src/main/java/org/opensearch/flowframework/model/WorkflowValidator.java +++ b/src/main/java/org/opensearch/flowframework/model/WorkflowValidator.java @@ -76,7 +76,7 @@ public String toJson() { XContentBuilder builder = JsonXContent.contentBuilder(); return this.toXContent(builder, EMPTY_PARAMS).toString(); } catch (IOException e) { - return "{\"error\": \"couldn't create JSON: " + e.getMessage() + "\"}"; + return "{\"error\": \"couldn't create JSON from XContent\"}"; } } diff --git a/src/main/java/org/opensearch/flowframework/rest/RestCreateWorkflowAction.java b/src/main/java/org/opensearch/flowframework/rest/RestCreateWorkflowAction.java index 490f4f3ff..f868e4705 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestCreateWorkflowAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestCreateWorkflowAction.java @@ -98,16 +98,24 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to create workflow.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); } catch (IOException e) { - logger.error("Failed to send back provision workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back create workflow exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (Exception e) { - FlowFrameworkException ex = new FlowFrameworkException(e.getMessage(), RestStatus.BAD_REQUEST); + } catch (FlowFrameworkException e) { + return channel -> channel.sendResponse( + new BytesRestResponse(e.getRestStatus(), e.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) + ); + } catch (IOException e) { + FlowFrameworkException ex = new FlowFrameworkException( + "IOException: template content invalid for specified Content-Type.", + RestStatus.BAD_REQUEST + ); return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) ); diff --git a/src/main/java/org/opensearch/flowframework/rest/RestDeleteWorkflowAction.java b/src/main/java/org/opensearch/flowframework/rest/RestDeleteWorkflowAction.java index d4fcb824b..ee9c7a19a 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestDeleteWorkflowAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestDeleteWorkflowAction.java @@ -86,16 +86,15 @@ protected BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to delete workflow.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); - } catch (IOException e) { - logger.error("Failed to send back delete workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back delete workflow exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (FlowFrameworkException ex) { return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) diff --git a/src/main/java/org/opensearch/flowframework/rest/RestDeprovisionWorkflowAction.java b/src/main/java/org/opensearch/flowframework/rest/RestDeprovisionWorkflowAction.java index b3dc5e713..97e989694 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestDeprovisionWorkflowAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestDeprovisionWorkflowAction.java @@ -82,15 +82,15 @@ protected BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to deprovision workflow.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); } catch (IOException e) { - logger.error("Failed to send back provision workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back deprovision workflow exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (FlowFrameworkException ex) { return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) diff --git a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowAction.java b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowAction.java index d1097fb68..41d8de152 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowAction.java @@ -87,16 +87,15 @@ protected BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to get workflow.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); - } catch (IOException e) { - logger.error("Failed to send back get workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back get workflow exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (FlowFrameworkException ex) { return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) diff --git a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStateAction.java b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStateAction.java index ded82f92c..6d6f18d09 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStateAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStateAction.java @@ -84,16 +84,15 @@ protected BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to get workflow state.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); - } catch (IOException e) { - logger.error("Failed to send back provision workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back get workflow state exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (FlowFrameworkException ex) { return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) diff --git a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStepAction.java b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStepAction.java index 28a9ffac4..26be732c4 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStepAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestGetWorkflowStepAction.java @@ -82,16 +82,15 @@ public ActionRequestValidationException validate() { try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to get workflow step.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); - } catch (IOException e) { - logger.error("Failed to send back get workflow step exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back get workflow step exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); - } catch (FlowFrameworkException ex) { return channel -> channel.sendResponse( new BytesRestResponse(ex.getRestStatus(), ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS)) diff --git a/src/main/java/org/opensearch/flowframework/rest/RestProvisionWorkflowAction.java b/src/main/java/org/opensearch/flowframework/rest/RestProvisionWorkflowAction.java index 124b6bf49..edffc6119 100644 --- a/src/main/java/org/opensearch/flowframework/rest/RestProvisionWorkflowAction.java +++ b/src/main/java/org/opensearch/flowframework/rest/RestProvisionWorkflowAction.java @@ -93,12 +93,13 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli try { FlowFrameworkException ex = exception instanceof FlowFrameworkException ? (FlowFrameworkException) exception - : new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); + : new FlowFrameworkException("Failed to provision workflow.", ExceptionsHelper.status(exception)); XContentBuilder exceptionBuilder = ex.toXContent(channel.newErrorBuilder(), ToXContent.EMPTY_PARAMS); channel.sendResponse(new BytesRestResponse(ex.getRestStatus(), exceptionBuilder)); } catch (IOException e) { - logger.error("Failed to send back provision workflow exception", e); - channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), e.getMessage())); + String errorMessage = "IOException: Failed to send back provision workflow exception"; + logger.error(errorMessage); + channel.sendResponse(new BytesRestResponse(ExceptionsHelper.status(e), errorMessage)); } })); } catch (FlowFrameworkException ex) { diff --git a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java index e2f766917..eb64eb630 100644 --- a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java @@ -107,9 +107,10 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener { listener.onResponse(new WorkflowResponse(provisionResponse.getWorkflowId())); }, exception -> { + String errorMessage = "Provisioning failed."; + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { listener.onFailure( new FlowFrameworkException( - exception.getMessage(), - RestStatus.BAD_REQUEST + errorMessage, + ExceptionsHelper.status(exception) ) ); } - logger.error("Failed to send back provision workflow exception", exception); }) ); } else { listener.onResponse(new WorkflowResponse(globalContextResponse.getId())); } }, exception -> { - logger.error("Failed to save workflow state : {}", exception.getMessage()); + String errorMessage = "Failed to save workflow state"; + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { - listener.onFailure( - new FlowFrameworkException(exception.getMessage(), RestStatus.BAD_REQUEST) - ); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); } }) ); }, exception -> { - logger.error("Failed to save use case template : {}", exception.getMessage()); + String errorMessage = "Failed to save use case template"; + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { listener.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); } - }) ); } }, exception -> { - logger.error("Failed to initialize config index : {}", exception.getMessage()); + String errorMessage = "Failed to initialize config index"; + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); } - })); } - }, e -> { - logger.error("Failed to updated use case template {} : {}", request.getWorkflowId(), e.getMessage()); - if (e instanceof FlowFrameworkException) { - listener.onFailure(e); + }, exception -> { + String errorMessage = "Failed to update use case template " + request.getWorkflowId(); + logger.error(errorMessage); + if (exception instanceof FlowFrameworkException) { + listener.onFailure(exception); } else { - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); } }) ); @@ -231,22 +233,23 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener { - logger.error("Failed to update workflow in template index: ", exception); + String errorMessage = "Failed to update workflow in template index"; + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); } }) ); }, exception -> { - logger.error("Failed to updated use case template {} : {}", request.getWorkflowId(), exception.getMessage()); + String errorMessage = "Failed to update use case template " + request.getWorkflowId(); + logger.error(errorMessage); if (exception instanceof FlowFrameworkException) { listener.onFailure(exception); } else { - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); } - }) ); } @@ -270,12 +273,14 @@ void checkMaxWorkflows(TimeValue requestTimeOut, Integer maxWorkflow, ActionList client.search(searchRequest, ActionListener.wrap(searchResponse -> { internalListener.onResponse(searchResponse.getHits().getTotalHits().value < maxWorkflow); }, exception -> { - logger.error("Unable to fetch the workflows", exception); - internalListener.onFailure(new FlowFrameworkException("Unable to fetch the workflows", RestStatus.BAD_REQUEST)); + String errorMessage = "Unable to fetch the workflows"; + logger.error(errorMessage); + internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } catch (Exception e) { - logger.error("Unable to fetch the workflows", e); - internalListener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Unable to fetch the workflows"; + logger.error(errorMessage); + internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } } diff --git a/src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java index 821ec39c8..68a2b15f4 100644 --- a/src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java @@ -105,14 +105,14 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener executeDeprovisionSequence(workflowId, response.getWorkflowState().resourcesCreated(), listener)); }, exception -> { - String message = "Failed to get workflow state for workflow " + workflowId; - logger.error(message, exception); - listener.onFailure(new FlowFrameworkException(message, ExceptionsHelper.status(exception))); + String errorMessage = "Failed to get workflow state for workflow " + workflowId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } catch (Exception e) { - String message = "Failed to retrieve template from global context."; - logger.error(message, e); - listener.onFailure(new FlowFrameworkException(message, ExceptionsHelper.status(e))); + String errorMessage = "Failed to retrieve template from global context."; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -177,12 +177,7 @@ private void executeDeprovisionSequence( // Remove from list so we don't try again iter.remove(); } else { - logger.info( - "Failed {} for {}: {}", - deprovisionNode.id(), - resourceNameAndId, - t.getCause() == null ? t.getMessage() : t.getCause().getMessage() - ); + logger.info("Failed {} for {}", deprovisionNode.id(), resourceNameAndId); } } } @@ -237,7 +232,7 @@ private void updateWorkflowState( ), ActionListener.wrap(updateResponse -> { logger.info("updated workflow {} state to NOT_STARTED", workflowId); - }, exception -> { logger.error("Failed to update workflow state : {}", exception.getMessage()); }) + }, exception -> { logger.error("Failed to update workflow state"); }) ); // return workflow ID listener.onResponse(new WorkflowResponse(workflowId)); @@ -253,7 +248,7 @@ private void updateWorkflowState( ), ActionListener.wrap(updateResponse -> { logger.info("updated workflow {} state to COMPLETED", workflowId); - }, exception -> { logger.error("Failed to update workflow state : {}", exception.getMessage()); }) + }, exception -> { logger.error("Failed to update workflow {} state", workflowId); }) ); // give user list of remaining resources listener.onFailure( diff --git a/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java index 63079aad4..aa4af9905 100644 --- a/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java @@ -77,10 +77,9 @@ protected void doExecute(Task task, GetWorkflowStateRequest request, ActionListe WorkflowState workflowState = WorkflowState.parse(parser); listener.onResponse(new GetWorkflowStateResponse(workflowState, request.getAll())); } catch (Exception e) { - logger.error("Failed to parse workflowState: " + r.getId(), e); - listener.onFailure( - new FlowFrameworkException("Failed to parse workflowState: " + r.getId(), RestStatus.BAD_REQUEST) - ); + String errorMessage = "Failed to parse workflowState: " + r.getId(); + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); } } else { listener.onFailure(new FlowFrameworkException("Fail to find workflow", RestStatus.NOT_FOUND)); @@ -89,13 +88,15 @@ protected void doExecute(Task task, GetWorkflowStateRequest request, ActionListe if (e instanceof IndexNotFoundException) { listener.onFailure(new FlowFrameworkException("Fail to find workflow", RestStatus.NOT_FOUND)); } else { - logger.error("Failed to get workflow status of: " + workflowId, e); - listener.onFailure(new FlowFrameworkException("Failed to get workflow status of: " + workflowId, RestStatus.NOT_FOUND)); + String errorMessage = "Failed to get workflow status of: " + workflowId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.NOT_FOUND)); } }), context::restore)); } catch (Exception e) { - logger.error("Failed to get workflow: " + workflowId, e); - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to get workflow: " + workflowId; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } } diff --git a/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java index 0232c28f6..126ad6cb5 100644 --- a/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java @@ -43,8 +43,9 @@ protected void doExecute(Task task, ActionRequest request, ActionListener { - logger.error("Failed to retrieve template from global context.", exception); - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + String errorMessage = "Failed to retrieve template from global context"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } catch (Exception e) { - logger.error("Failed to retrieve template from global context.", e); - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to retrieve template from global context"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } - } else { listener.onFailure(new FlowFrameworkException("There are no templates in the global_context", RestStatus.NOT_FOUND)); } diff --git a/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java index efa4b8e6b..d2fb995c0 100644 --- a/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java @@ -145,7 +145,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener { String errorMessage = "Failed to update wowrfow state: " + workflowId; - logger.error(errorMessage, exception); + logger.error(errorMessage); listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); }) ); @@ -155,19 +155,20 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener { if (exception instanceof FlowFrameworkException) { - logger.error("Workflow validation failed for workflow : " + workflowId); + logger.error("Workflow validation failed for workflow {}", workflowId); listener.onFailure(exception); } else { - logger.error("Failed to retrieve template from global context.", exception); - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + String errorMessage = "Failed to retrieve template from global context"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); } })); } catch (Exception e) { - logger.error("Failed to retrieve template from global context.", e); - listener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to retrieve template from global context"; + logger.error(errorMessage); + listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -181,7 +182,7 @@ private void executeWorkflowAsync(String workflowId, List workflowS try { threadPool.executor(PROVISION_WORKFLOW_THREAD_POOL).execute(() -> { executeWorkflow(workflowSequence, workflowId); }); } catch (Exception exception) { - listener.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + listener.onFailure(new FlowFrameworkException("Failed to execute workflow " + workflowId, ExceptionsHelper.status(exception))); } } @@ -228,10 +229,10 @@ private void executeWorkflow(List workflowSequence, String workflow ), ActionListener.wrap(updateResponse -> { logger.info("updated workflow {} state to {}", workflowId, State.COMPLETED); - }, exception -> { logger.error("Failed to update workflow state : {}", exception.getMessage(), exception); }) + }, exception -> { logger.error("Failed to update workflow state"); }) ); } catch (Exception ex) { - logger.error("Provisioning failed for workflow {} during step {}.", workflowId, currentStepId, ex); + logger.error("Provisioning failed for workflow {} during step {}.", workflowId, currentStepId); String errorMessage = (ex.getCause() == null ? ex.getClass().getName() : ex.getCause().getClass().getName()) + " during step " + currentStepId; @@ -245,7 +246,7 @@ private void executeWorkflow(List workflowSequence, String workflow ), ActionListener.wrap(updateResponse -> { logger.info("updated workflow {} state to {}", workflowId, State.FAILED); - }, exceptionState -> { logger.error("Failed to update workflow state : {}", exceptionState.getMessage(), ex); }) + }, exceptionState -> { logger.error("Failed to update workflow state"); }) ); } } diff --git a/src/main/java/org/opensearch/flowframework/util/EncryptorUtils.java b/src/main/java/org/opensearch/flowframework/util/EncryptorUtils.java index 717a422de..f937caebc 100644 --- a/src/main/java/org/opensearch/flowframework/util/EncryptorUtils.java +++ b/src/main/java/org/opensearch/flowframework/util/EncryptorUtils.java @@ -282,7 +282,7 @@ public void initializeMasterKey(ActionListener listener) { this.masterKey = generatedKey; listener.onResponse(true); }, indexException -> { - logger.error("Failed to index config", indexException); + logger.error("Failed to index config"); listener.onFailure(indexException); })); @@ -293,12 +293,12 @@ public void initializeMasterKey(ActionListener listener) { listener.onResponse(true); } }, getRequestException -> { - logger.error("Failed to search for config from config index", getRequestException); + logger.error("Failed to search for config from config index"); listener.onFailure(getRequestException); })); } catch (Exception e) { - logger.error("Failed to retrieve config from config index", e); + logger.error("Failed to retrieve config from config index"); listener.onFailure(e); } } @@ -320,9 +320,13 @@ void initializeMasterKeyIfAbsent() { if (response.isExists()) { this.masterKey = (String) response.getSourceAsMap().get(MASTER_KEY); } else { - throw new FlowFrameworkException("Config has not been initialized", RestStatus.NOT_FOUND); + throw new FlowFrameworkException("Master key has not been initialized in config index", RestStatus.NOT_FOUND); } - }, exception -> { throw new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)); })); + }, + exception -> { + throw new FlowFrameworkException("Failed to get master key from config index", ExceptionsHelper.status(exception)); + } + )); } } } diff --git a/src/main/java/org/opensearch/flowframework/workflow/AbstractRegisterLocalModelStep.java b/src/main/java/org/opensearch/flowframework/workflow/AbstractRegisterLocalModelStep.java index 5074f3efa..76a24bc01 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/AbstractRegisterLocalModelStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/AbstractRegisterLocalModelStep.java @@ -191,12 +191,10 @@ public PlainActionFuture execute( ) ); }, deployUpdateException -> { - logger.error("Failed to update simulated deploy step resource", deployUpdateException); + String errorMessage = "Failed to update simulated deploy step resource"; + logger.error(errorMessage); registerLocalModelFuture.onFailure( - new FlowFrameworkException( - deployUpdateException.getMessage(), - ExceptionsHelper.status(deployUpdateException) - ) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(deployUpdateException)) ); }) ); @@ -212,8 +210,9 @@ public PlainActionFuture execute( }, exception -> { registerLocalModelFuture.onFailure(exception); }) ); }, exception -> { - logger.error("Failed to register local model"); - registerLocalModelFuture.onFailure(new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception))); + String errorMessage = "Failed to register local model"; + logger.error(errorMessage); + registerLocalModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } catch (FlowFrameworkException e) { registerLocalModelFuture.onFailure(e); diff --git a/src/main/java/org/opensearch/flowframework/workflow/AbstractRetryableWorkflowStep.java b/src/main/java/org/opensearch/flowframework/workflow/AbstractRetryableWorkflowStep.java index 90734bf02..af105621e 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/AbstractRetryableWorkflowStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/AbstractRetryableWorkflowStep.java @@ -92,15 +92,17 @@ protected void retryableGetMlTask( logger.info("successfully updated resources created in state index: {}", updateResponse.getIndex()); mlTaskListener.onResponse(response); }, exception -> { - logger.error("Failed to update new created resource", exception); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); mlTaskListener.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - mlTaskListener.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + mlTaskListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } break; case FAILED: @@ -118,7 +120,7 @@ protected void retryableGetMlTask( // Task started or running, do nothing } }, exception -> { - String errorMessage = workflowStep + " failed with error : " + exception.getMessage(); + String errorMessage = workflowStep + " failed"; logger.error(errorMessage); mlTaskListener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST)); })); diff --git a/src/main/java/org/opensearch/flowframework/workflow/CreateConnectorStep.java b/src/main/java/org/opensearch/flowframework/workflow/CreateConnectorStep.java index 228b4161f..117f50cbd 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/CreateConnectorStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/CreateConnectorStep.java @@ -101,23 +101,24 @@ public void onResponse(MLCreateConnectorResponse mlCreateConnectorResponse) { ) ); }, exception -> { - logger.error("Failed to update new created resource", exception); - createConnectorFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) - ); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); + createConnectorFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - createConnectorFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + createConnectorFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @Override public void onFailure(Exception e) { - logger.error("Failed to create connector"); - createConnectorFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to create connector"; + logger.error(errorMessage); + createConnectorFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; @@ -154,9 +155,9 @@ public void onFailure(Exception e) { credentials = getStringToStringMap(inputs.get(CREDENTIAL_FIELD), CREDENTIAL_FIELD); actions = getConnectorActionList(inputs.get(ACTIONS_FIELD)); } catch (IllegalArgumentException iae) { - throw new FlowFrameworkException(iae.getMessage(), RestStatus.BAD_REQUEST); + throw new FlowFrameworkException("IllegalArgumentException in connector configuration", RestStatus.BAD_REQUEST); } catch (PrivilegedActionException pae) { - throw new FlowFrameworkException(pae.getMessage(), RestStatus.UNAUTHORIZED); + throw new FlowFrameworkException("PrivilegedActionException in connector configuration", RestStatus.UNAUTHORIZED); } MLCreateConnectorInput mlInput = MLCreateConnectorInput.builder() diff --git a/src/main/java/org/opensearch/flowframework/workflow/CreateIndexStep.java b/src/main/java/org/opensearch/flowframework/workflow/CreateIndexStep.java index eee1f94ec..4678591d8 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/CreateIndexStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/CreateIndexStep.java @@ -88,22 +88,23 @@ public void onResponse(CreateIndexResponse createIndexResponse) { ) ); }, exception -> { - logger.error("Failed to update new created resource", exception); - createIndexFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) - ); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); + createIndexFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - createIndexFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + createIndexFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @Override public void onFailure(Exception e) { - logger.error("Failed to create an index", e); - createIndexFuture.onFailure(e); + String errorMessage = "Failed to create an index"; + logger.error(errorMessage); + createIndexFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; @@ -127,8 +128,9 @@ public void onFailure(Exception e) { } } } catch (Exception e) { - logger.error("Failed to find the correct resource for the workflow step", e); - createIndexFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to find the correct resource for the workflow step"; + logger.error(errorMessage); + createIndexFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } // TODO: diff --git a/src/main/java/org/opensearch/flowframework/workflow/CreateIngestPipelineStep.java b/src/main/java/org/opensearch/flowframework/workflow/CreateIngestPipelineStep.java index d0bbed40b..7732baeaa 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/CreateIngestPipelineStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/CreateIngestPipelineStep.java @@ -126,8 +126,9 @@ public PlainActionFuture execute( buildIngestPipelineRequestContent(description, modelId, type, inputFieldName, outputFieldName) ); } catch (IOException e) { - logger.error("Failed to create ingest pipeline configuration: " + e.getMessage()); - createIngestPipelineFuture.onFailure(e); + String errorMessage = "Failed to create ingest pipeline configuration"; + logger.error(errorMessage); + createIngestPipelineFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } break; } @@ -163,21 +164,24 @@ public PlainActionFuture execute( ) ); }, exception -> { - logger.error("Failed to update new created resource", exception); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); createIngestPipelineFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - createIngestPipelineFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + createIngestPipelineFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }, exception -> { - logger.error("Failed to create ingest pipeline : " + exception.getMessage()); - createIngestPipelineFuture.onFailure(exception); + String errorMessage = "Failed to create ingest pipeline"; + logger.error(errorMessage); + createIngestPipelineFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception))); })); } diff --git a/src/main/java/org/opensearch/flowframework/workflow/DeleteAgentStep.java b/src/main/java/org/opensearch/flowframework/workflow/DeleteAgentStep.java index 04c1cca92..6f8814887 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/DeleteAgentStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/DeleteAgentStep.java @@ -68,8 +68,9 @@ public void onResponse(DeleteResponse deleteResponse) { @Override public void onFailure(Exception e) { - logger.error("Failed to delete agent"); - deleteAgentFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to delete agent"; + logger.error(errorMessage); + deleteAgentFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/DeleteConnectorStep.java b/src/main/java/org/opensearch/flowframework/workflow/DeleteConnectorStep.java index 6c3376369..7d59cced1 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/DeleteConnectorStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/DeleteConnectorStep.java @@ -68,8 +68,9 @@ public void onResponse(DeleteResponse deleteResponse) { @Override public void onFailure(Exception e) { - logger.error("Failed to delete connector"); - deleteConnectorFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to delete connector"; + logger.error(errorMessage); + deleteConnectorFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/DeleteModelStep.java b/src/main/java/org/opensearch/flowframework/workflow/DeleteModelStep.java index be8e66138..fb7d698c8 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/DeleteModelStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/DeleteModelStep.java @@ -68,8 +68,9 @@ public void onResponse(DeleteResponse deleteResponse) { @Override public void onFailure(Exception e) { - logger.error("Failed to delete model"); - deleteModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to delete model"; + logger.error(errorMessage); + deleteModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/DeployModelStep.java b/src/main/java/org/opensearch/flowframework/workflow/DeployModelStep.java index 5759f2ba2..59d0951c7 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/DeployModelStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/DeployModelStep.java @@ -94,14 +94,19 @@ public void onResponse(MLDeployModelResponse mlDeployModelResponse) { currentNodeId ) ); - }, e -> { deployModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); }) + }, + e -> { + deployModelFuture.onFailure(new FlowFrameworkException("Failed to deploy model", ExceptionsHelper.status(e))); + } + ) ); } @Override public void onFailure(Exception e) { - logger.error("Failed to deploy model"); - deployModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to deploy model"; + logger.error(errorMessage); + deployModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/RegisterAgentStep.java b/src/main/java/org/opensearch/flowframework/workflow/RegisterAgentStep.java index 8c36575a4..d9c166950 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/RegisterAgentStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/RegisterAgentStep.java @@ -110,23 +110,26 @@ public void onResponse(MLRegisterAgentResponse mlRegisterAgentResponse) { ) ); }, exception -> { - logger.error("Failed to update new created resource", exception); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); registerAgentModelFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - registerAgentModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + registerAgentModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @Override public void onFailure(Exception e) { - logger.error("Failed to register the agent"); - registerAgentModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to register the agent"; + logger.error(errorMessage); + registerAgentModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/RegisterModelGroupStep.java b/src/main/java/org/opensearch/flowframework/workflow/RegisterModelGroupStep.java index 9acda1b6c..9c007353d 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/RegisterModelGroupStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/RegisterModelGroupStep.java @@ -93,23 +93,26 @@ public void onResponse(MLRegisterModelGroupResponse mlRegisterModelGroupResponse ) ); }, exception -> { - logger.error("Failed to update new created resource", exception); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); registerModelGroupFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - registerModelGroupFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + registerModelGroupFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @Override public void onFailure(Exception e) { - logger.error("Failed to register model group"); - registerModelGroupFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to register model group"; + logger.error(errorMessage); + registerModelGroupFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/main/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStep.java b/src/main/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStep.java index 8cd184a18..b81498cf0 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStep.java @@ -125,12 +125,10 @@ public void onResponse(MLRegisterModelResponse mlRegisterModelResponse) { ActionListener.wrap(deployUpdateResponse -> { completeRegisterFuture(deployUpdateResponse, resourceName, mlRegisterModelResponse); }, deployUpdateException -> { - logger.error("Failed to update simulated deploy step resource", deployUpdateException); + String errorMessage = "Failed to update simulated deploy step resource"; + logger.error(errorMessage); registerRemoteModelFuture.onFailure( - new FlowFrameworkException( - deployUpdateException.getMessage(), - ExceptionsHelper.status(deployUpdateException) - ) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(deployUpdateException)) ); }) ); @@ -138,16 +136,18 @@ public void onResponse(MLRegisterModelResponse mlRegisterModelResponse) { completeRegisterFuture(response, resourceName, mlRegisterModelResponse); } }, exception -> { - logger.error("Failed to update new created resource", exception); + String errorMessage = "Failed to update new created resource"; + logger.error(errorMessage); registerRemoteModelFuture.onFailure( - new FlowFrameworkException(exception.getMessage(), ExceptionsHelper.status(exception)) + new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)) ); }) ); } catch (Exception e) { - logger.error("Failed to parse and update new created resource", e); - registerRemoteModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to parse and update new created resource"; + logger.error(errorMessage); + registerRemoteModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } } @@ -167,8 +167,9 @@ void completeRegisterFuture(UpdateResponse response, String resourceName, MLRegi @Override public void onFailure(Exception e) { - logger.error("Failed to register remote model"); - registerRemoteModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to register remote model"; + logger.error(errorMessage); + registerRemoteModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }); diff --git a/src/main/java/org/opensearch/flowframework/workflow/UndeployModelStep.java b/src/main/java/org/opensearch/flowframework/workflow/UndeployModelStep.java index a90ff1aa8..9e7dcdb52 100644 --- a/src/main/java/org/opensearch/flowframework/workflow/UndeployModelStep.java +++ b/src/main/java/org/opensearch/flowframework/workflow/UndeployModelStep.java @@ -81,8 +81,9 @@ public void onResponse(MLUndeployModelsResponse mlUndeployModelsResponse) { @Override public void onFailure(Exception e) { - logger.error("Failed to unldeploy model"); - undeployModelFuture.onFailure(new FlowFrameworkException(e.getMessage(), ExceptionsHelper.status(e))); + String errorMessage = "Failed to undeploy model"; + logger.error(errorMessage); + undeployModelFuture.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))); } }; diff --git a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java index e8c8ba4f3..e80f1487a 100644 --- a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java @@ -258,14 +258,14 @@ public void testFailedToCreateNewWorkflow() { doAnswer(invocation -> { ActionListener responseListener = invocation.getArgument(1); - responseListener.onFailure(new Exception("Failed to create global_context index")); + responseListener.onFailure(new Exception("failed")); return null; }).when(flowFrameworkIndicesHandler).putTemplateToGlobalContext(any(Template.class), any()); createWorkflowTransportAction.doExecute(mock(Task.class), workflowRequest, listener); ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener, times(1)).onFailure(exceptionCaptor.capture()); - assertEquals("Failed to create global_context index", exceptionCaptor.getValue().getMessage()); + assertEquals("Failed to save use case template", exceptionCaptor.getValue().getMessage()); } public void testCreateNewWorkflow() { @@ -317,14 +317,14 @@ public void testFailedToUpdateWorkflow() { doAnswer(invocation -> { ActionListener responseListener = invocation.getArgument(2); - responseListener.onFailure(new Exception("Failed to update use case template")); + responseListener.onFailure(new Exception("failed")); return null; }).when(flowFrameworkIndicesHandler).updateTemplateInGlobalContext(any(), any(Template.class), any()); createWorkflowTransportAction.doExecute(mock(Task.class), updateWorkflow, listener); ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener, times(1)).onFailure(exceptionCaptor.capture()); - assertEquals("Failed to update use case template", exceptionCaptor.getValue().getMessage()); + assertEquals("Failed to update use case template 1", exceptionCaptor.getValue().getMessage()); } public void testUpdateWorkflow() { @@ -453,7 +453,7 @@ public void testCreateWorkflow_withValidation_withProvision_FailedProvisioning() createWorkflowTransportAction.doExecute(mock(Task.class), workflowRequest, listener); ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener, times(1)).onFailure(exceptionCaptor.capture()); - assertEquals("failed", exceptionCaptor.getValue().getMessage()); + assertEquals("Provisioning failed.", exceptionCaptor.getValue().getMessage()); } private Template generateValidTemplate() { diff --git a/src/test/java/org/opensearch/flowframework/transport/GetWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/GetWorkflowTransportActionTests.java index 7b34c24f1..e4fa29ba0 100644 --- a/src/test/java/org/opensearch/flowframework/transport/GetWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/GetWorkflowTransportActionTests.java @@ -151,7 +151,7 @@ public void testGetWorkflowFailure() { // Stub client.get to force on failure doAnswer(invocation -> { ActionListener responseListener = invocation.getArgument(1); - responseListener.onFailure(new Exception("Failed to retrieve template from global context.")); + responseListener.onFailure(new Exception("failed")); return null; }).when(client).get(any(GetRequest.class), any()); @@ -159,6 +159,6 @@ public void testGetWorkflowFailure() { ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener, times(1)).onFailure(exceptionCaptor.capture()); - assertEquals("Failed to retrieve template from global context.", exceptionCaptor.getValue().getMessage()); + assertEquals("Failed to retrieve template from global context", exceptionCaptor.getValue().getMessage()); } } diff --git a/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java index 95d8ab477..55fc20f69 100644 --- a/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java @@ -197,7 +197,7 @@ public void testFailedToRetrieveTemplateFromGlobalContext() { WorkflowRequest request = new WorkflowRequest("1", null); doAnswer(invocation -> { ActionListener responseListener = invocation.getArgument(1); - responseListener.onFailure(new Exception("Failed to retrieve template from global context.")); + responseListener.onFailure(new Exception("failed")); return null; }).when(client).get(any(GetRequest.class), any()); @@ -205,7 +205,7 @@ public void testFailedToRetrieveTemplateFromGlobalContext() { ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); verify(listener, times(1)).onFailure(exceptionCaptor.capture()); - assertEquals("Failed to retrieve template from global context.", exceptionCaptor.getValue().getMessage()); + assertEquals("Failed to retrieve template from global context", exceptionCaptor.getValue().getMessage()); } } diff --git a/src/test/java/org/opensearch/flowframework/util/EncryptorUtilsTests.java b/src/test/java/org/opensearch/flowframework/util/EncryptorUtilsTests.java index 219a75b6b..a952b4253 100644 --- a/src/test/java/org/opensearch/flowframework/util/EncryptorUtilsTests.java +++ b/src/test/java/org/opensearch/flowframework/util/EncryptorUtilsTests.java @@ -156,7 +156,7 @@ public void testInitializeMasterKeyFailure() { }).when(client).get(any(GetRequest.class), any()); FlowFrameworkException ex = expectThrows(FlowFrameworkException.class, () -> encryptorUtils.initializeMasterKeyIfAbsent()); - assertEquals("Config has not been initialized", ex.getMessage()); + assertEquals("Failed to get master key from config index", ex.getMessage()); } public void testEncryptDecryptTemplateCredential() { diff --git a/src/test/java/org/opensearch/flowframework/workflow/DeployModelStepTests.java b/src/test/java/org/opensearch/flowframework/workflow/DeployModelStepTests.java index ca955accc..4702f5a43 100644 --- a/src/test/java/org/opensearch/flowframework/workflow/DeployModelStepTests.java +++ b/src/test/java/org/opensearch/flowframework/workflow/DeployModelStepTests.java @@ -205,7 +205,6 @@ public void testDeployModelTaskFailure() throws IOException, InterruptedExceptio String status = MLTaskState.RUNNING.name(); MLTaskType mlTaskType = MLTaskType.DEPLOY_MODEL; - String testErrorMessage = "error"; @SuppressWarnings("unchecked") ArgumentCaptor> actionListenerCaptor = ArgumentCaptor.forClass(ActionListener.class); @@ -232,7 +231,7 @@ public void testDeployModelTaskFailure() throws IOException, InterruptedExceptio null, null, null, - testErrorMessage, + "error", null, false ); @@ -249,6 +248,6 @@ public void testDeployModelTaskFailure() throws IOException, InterruptedExceptio ExecutionException ex = expectThrows(ExecutionException.class, () -> future.get().getClass()); assertTrue(ex.getCause() instanceof FlowFrameworkException); - assertEquals("Deploy model failed with error : " + testErrorMessage, ex.getCause().getMessage()); + assertEquals("Failed to deploy model", ex.getCause().getMessage()); } } diff --git a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalCustomModelStepTests.java b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalCustomModelStepTests.java index e891d97ba..c7f768e90 100644 --- a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalCustomModelStepTests.java +++ b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalCustomModelStepTests.java @@ -202,7 +202,7 @@ public void testRegisterLocalCustomModelFailure() { ExecutionException ex = expectThrows(ExecutionException.class, () -> future.get().getClass()); assertTrue(ex.getCause() instanceof FlowFrameworkException); - assertEquals("test", ex.getCause().getMessage()); + assertEquals("Failed to register local model", ex.getCause().getMessage()); } public void testRegisterLocalCustomModelTaskFailure() { diff --git a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalPretrainedModelStepTests.java b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalPretrainedModelStepTests.java index 8eb9d7798..aa2a224ea 100644 --- a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalPretrainedModelStepTests.java +++ b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalPretrainedModelStepTests.java @@ -196,7 +196,7 @@ public void testRegisterLocalPretrainedModelFailure() { ExecutionException ex = expectThrows(ExecutionException.class, () -> future.get().getClass()); assertTrue(ex.getCause() instanceof FlowFrameworkException); - assertEquals("test", ex.getCause().getMessage()); + assertEquals("Failed to register local model", ex.getCause().getMessage()); } public void testRegisterLocalPretrainedModelTaskFailure() { diff --git a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalSparseEncodingModelStepTests.java b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalSparseEncodingModelStepTests.java index 6ca63b9de..65c81dda8 100644 --- a/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalSparseEncodingModelStepTests.java +++ b/src/test/java/org/opensearch/flowframework/workflow/RegisterLocalSparseEncodingModelStepTests.java @@ -199,7 +199,7 @@ public void testRegisterLocalSparseEncodingModelFailure() { ExecutionException ex = expectThrows(ExecutionException.class, () -> future.get().getClass()); assertTrue(ex.getCause() instanceof FlowFrameworkException); - assertEquals("test", ex.getCause().getMessage()); + assertEquals("Failed to register local model", ex.getCause().getMessage()); } public void testRegisterLocalSparseEncodingModelTaskFailure() { diff --git a/src/test/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStepTests.java b/src/test/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStepTests.java index 50766efe5..3623521ed 100644 --- a/src/test/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStepTests.java +++ b/src/test/java/org/opensearch/flowframework/workflow/RegisterRemoteModelStepTests.java @@ -168,7 +168,7 @@ public void testRegisterRemoteModelFailure() { assertTrue(future.isDone()); ExecutionException ex = expectThrows(ExecutionException.class, () -> future.get().getClass()); assertTrue(ex.getCause() instanceof FlowFrameworkException); - assertEquals("test", ex.getCause().getMessage()); + assertEquals("Failed to register remote model", ex.getCause().getMessage()); }