From 4ecbef3fb5623ae33f4d543c19a7c8b5a696d5f1 Mon Sep 17 00:00:00 2001 From: Amit Galitzky Date: Mon, 20 Nov 2023 20:37:21 +0000 Subject: [PATCH] added test and switched to if/else Signed-off-by: Amit Galitzky --- .../CreateWorkflowTransportAction.java | 30 +++++++++---------- .../CreateWorkflowTransportActionTests.java | 15 ++++++++++ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java index 2d3915ed6..a77e7dd79 100644 --- a/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java @@ -197,23 +197,23 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener internalListener) { if (!flowFrameworkIndicesHandler.doesIndexExist(CommonValue.GLOBAL_CONTEXT_INDEX)) { internalListener.onResponse(true); - return; - } - QueryBuilder query = QueryBuilders.matchAllQuery(); - SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(query).size(0).timeout(requestTimeOut); + } else { + QueryBuilder query = QueryBuilders.matchAllQuery(); + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(query).size(0).timeout(requestTimeOut); - SearchRequest searchRequest = new SearchRequest(CommonValue.GLOBAL_CONTEXT_INDEX).source(searchSourceBuilder); + SearchRequest searchRequest = new SearchRequest(CommonValue.GLOBAL_CONTEXT_INDEX).source(searchSourceBuilder); - client.search(searchRequest, ActionListener.wrap(searchResponse -> { - if (searchResponse.getHits().getTotalHits().value >= maxWorkflow) { - internalListener.onResponse(false); - } else { - internalListener.onResponse(true); - } - }, exception -> { - logger.error("Unable to fetch the workflows {}", exception); - internalListener.onFailure(new FlowFrameworkException("Unable to fetch the workflows", RestStatus.BAD_REQUEST)); - })); + client.search(searchRequest, ActionListener.wrap(searchResponse -> { + if (searchResponse.getHits().getTotalHits().value >= maxWorkflow) { + internalListener.onResponse(false); + } else { + internalListener.onResponse(true); + } + }, exception -> { + logger.error("Unable to fetch the workflows {}", exception); + internalListener.onFailure(new FlowFrameworkException("Unable to fetch the workflows", RestStatus.BAD_REQUEST)); + })); + } } private void validateWorkflows(Template template) throws Exception { diff --git a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java index 5492ad822..22d831f2b 100644 --- a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; import org.mockito.ArgumentCaptor; @@ -198,6 +199,20 @@ public void testMaxWorkflow() { assertEquals(("Maximum workflows limit reached 1000"), exceptionCaptor.getValue().getMessage()); } + public void testMaxWorkflowWithNoIndex() { + @SuppressWarnings("unchecked") + ActionListener listener = new ActionListener() { + @Override + public void onResponse(Boolean booleanResponse) { + assertTrue(booleanResponse); + } + + @Override + public void onFailure(Exception e) {} + }; + createWorkflowTransportAction.checkMaxWorkflows(new TimeValue(10, TimeUnit.SECONDS), 10, listener); + } + public void testFailedToCreateNewWorkflow() { @SuppressWarnings("unchecked") ActionListener listener = mock(ActionListener.class);