diff --git a/src/main/java/org/opensearch/flowframework/indices/GlobalContextHandler.java b/src/main/java/org/opensearch/flowframework/indices/GlobalContextHandler.java index 53037d7ce..a47342055 100644 --- a/src/main/java/org/opensearch/flowframework/indices/GlobalContextHandler.java +++ b/src/main/java/org/opensearch/flowframework/indices/GlobalContextHandler.java @@ -81,7 +81,7 @@ public void putTemplateToGlobalContext(Template template, ActionListener context.restore())); } catch (Exception e) { @@ -113,7 +113,7 @@ public void updateTemplateInGlobalContext(String documentId, Template template, XContentBuilder builder = XContentFactory.jsonBuilder(); ThreadContext.StoredContext context = client.threadPool().getThreadContext().stashContext() ) { - request.source(template.toDocumentSource(builder, ToXContent.EMPTY_PARAMS)) + request.source(template.toXContent(builder, ToXContent.EMPTY_PARAMS)) .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); client.index(request, ActionListener.runBefore(listener, () -> context.restore())); } catch (Exception e) { diff --git a/src/main/java/org/opensearch/flowframework/model/Template.java b/src/main/java/org/opensearch/flowframework/model/Template.java index 7d08ef240..a1da67a4d 100644 --- a/src/main/java/org/opensearch/flowframework/model/Template.java +++ b/src/main/java/org/opensearch/flowframework/model/Template.java @@ -25,7 +25,6 @@ import java.util.Map.Entry; import static org.opensearch.core.xcontent.XContentParserUtils.ensureExpectedToken; -import static org.opensearch.flowframework.common.TemplateUtil.jsonToParser; import static org.opensearch.flowframework.common.TemplateUtil.parseStringToStringMap; /** @@ -47,8 +46,6 @@ public class Template implements ToXContentObject { public static final String TEMPLATE_FIELD = "template"; /** The template field name for template compatibility with OpenSearch versions */ public static final String COMPATIBILITY_FIELD = "compatibility"; - /** The template field name for template user inputs */ - public static final String USER_INPUTS_FIELD = "user_inputs"; /** The template field name for template workflows */ public static final String WORKFLOWS_FIELD = "workflows"; /** The template field name for template user outputs */ @@ -62,7 +59,6 @@ public class Template implements ToXContentObject { private final List operations; // probably an ENUM actually private final Version templateVersion; private final List compatibilityVersion; - private final Map userInputs; private final Map workflows; private final Map userOutputs; private final Map resourcesCreated; @@ -76,7 +72,6 @@ public class Template implements ToXContentObject { * @param operations Expected operations of this template. Should match defined workflows. * @param templateVersion The version of this template * @param compatibilityVersion OpenSearch version compatibility of this template - * @param userInputs Optional user inputs to apply globally * @param workflows Workflow graph definitions corresponding to the defined operations. * @param userOutputs A map of essential API responses for backend to use and lookup. * @param resourcesCreated A map of all the resources created. @@ -88,7 +83,6 @@ public Template( List operations, Version templateVersion, List compatibilityVersion, - Map userInputs, Map workflows, Map userOutputs, Map resourcesCreated @@ -99,7 +93,6 @@ public Template( this.operations = List.copyOf(operations); this.templateVersion = templateVersion; this.compatibilityVersion = List.copyOf(compatibilityVersion); - this.userInputs = Map.copyOf(userInputs); this.workflows = Map.copyOf(workflows); this.userOutputs = Map.copyOf(userOutputs); this.resourcesCreated = Map.copyOf(resourcesCreated); @@ -132,14 +125,6 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws xContentBuilder.endObject(); } - if (!this.userInputs.isEmpty()) { - xContentBuilder.startObject(USER_INPUTS_FIELD); - for (Entry e : userInputs.entrySet()) { - xContentBuilder.field(e.getKey(), e.getValue()); - } - xContentBuilder.endObject(); - } - xContentBuilder.startObject(WORKFLOWS_FIELD); for (Entry e : workflows.entrySet()) { xContentBuilder.field(e.getKey(), e.getValue(), params); @@ -161,228 +146,6 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws return xContentBuilder.endObject(); } - /** - * Converts a template object into a Global Context document - * @param builder the XContentBuilder - * @param params the params - * @return the XContentBuilder - * @throws IOException if the document source fails to be generated - */ - public XContentBuilder toDocumentSource(XContentBuilder builder, Params params) throws IOException { - XContentBuilder xContentBuilder = builder.startObject(); - xContentBuilder.field(NAME_FIELD, this.name); - xContentBuilder.field(DESCRIPTION_FIELD, this.description); - xContentBuilder.field(USE_CASE_FIELD, this.useCase); - xContentBuilder.startArray(OPERATIONS_FIELD); - for (String op : this.operations) { - xContentBuilder.value(op); - } - xContentBuilder.endArray(); - - if (this.templateVersion != null || !this.compatibilityVersion.isEmpty()) { - xContentBuilder.startObject(VERSION_FIELD); - if (this.templateVersion != null) { - xContentBuilder.field(TEMPLATE_FIELD, this.templateVersion); - } - if (!this.compatibilityVersion.isEmpty()) { - xContentBuilder.startArray(COMPATIBILITY_FIELD); - for (Version v : this.compatibilityVersion) { - xContentBuilder.value(v); - } - xContentBuilder.endArray(); - } - xContentBuilder.endObject(); - } - - if (!this.userInputs.isEmpty()) { - xContentBuilder.startObject(USER_INPUTS_FIELD); - for (Entry e : userInputs.entrySet()) { - xContentBuilder.field(e.getKey(), e.getValue()); - } - xContentBuilder.endObject(); - } - - try (XContentBuilder workflowBuilder = JsonXContent.contentBuilder()) { - workflowBuilder.startObject(); - for (Entry e : workflows.entrySet()) { - workflowBuilder.field(e.getKey(), e.getValue()); - } - workflowBuilder.endObject(); - xContentBuilder.field(WORKFLOWS_FIELD, workflowBuilder.toString()); - } - - try (XContentBuilder userOutputsBuilder = JsonXContent.contentBuilder()) { - userOutputsBuilder.startObject(); - for (Entry e : userOutputs.entrySet()) { - userOutputsBuilder.field(e.getKey(), e.getValue()); - } - userOutputsBuilder.endObject(); - xContentBuilder.field(USER_OUTPUTS_FIELD, userOutputsBuilder.toString()); - } - - try (XContentBuilder resourcesCreatedBuilder = JsonXContent.contentBuilder()) { - resourcesCreatedBuilder.startObject(); - for (Entry e : resourcesCreated.entrySet()) { - resourcesCreatedBuilder.field(e.getKey(), e.getValue()); - } - resourcesCreatedBuilder.endObject(); - xContentBuilder.field(RESOURCES_CREATED_FIELD, resourcesCreatedBuilder.toString()); - } - - xContentBuilder.endObject(); - - return xContentBuilder; - - } - - /** - * Parse global context document source into a Template instance - * - * @param documentSource the document source string - * @return an instance of the template - * @throws IOException if content can't be parsed correctly - */ - public static Template parseFromDocumentSource(String documentSource) throws IOException { - XContentParser parser = jsonToParser(documentSource); - - String name = null; - String description = ""; - String useCase = ""; - List operations = new ArrayList<>(); - Version templateVersion = null; - List compatibilityVersion = new ArrayList<>(); - Map userInputs = new HashMap<>(); - Map workflows = new HashMap<>(); - Map userOutputs = new HashMap<>(); - Map resourcesCreated = new HashMap<>(); - - ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_OBJECT) { - String fieldName = parser.currentName(); - parser.nextToken(); - switch (fieldName) { - case NAME_FIELD: - name = parser.text(); - break; - case DESCRIPTION_FIELD: - description = parser.text(); - break; - case USE_CASE_FIELD: - useCase = parser.text(); - break; - case OPERATIONS_FIELD: - ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_ARRAY) { - operations.add(parser.text()); - } - break; - case VERSION_FIELD: - ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_OBJECT) { - String versionFieldName = parser.currentName(); - parser.nextToken(); - switch (versionFieldName) { - case TEMPLATE_FIELD: - templateVersion = Version.fromString(parser.text()); - break; - case COMPATIBILITY_FIELD: - ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_ARRAY) { - compatibilityVersion.add(Version.fromString(parser.text())); - } - break; - default: - throw new IOException("Unable to parse field [" + fieldName + "] in a version object."); - } - } - break; - case USER_INPUTS_FIELD: - ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_OBJECT) { - String inputFieldName = parser.currentName(); - switch (parser.nextToken()) { - case VALUE_STRING: - userInputs.put(inputFieldName, parser.text()); - break; - case START_OBJECT: - userInputs.put(inputFieldName, parseStringToStringMap(parser)); - break; - default: - throw new IOException("Unable to parse field [" + inputFieldName + "] in a user inputs object."); - } - } - break; - case WORKFLOWS_FIELD: - String workflowsJson = parser.text(); - XContentParser workflowsParser = jsonToParser(workflowsJson); - while (workflowsParser.nextToken() != XContentParser.Token.END_OBJECT) { - String workflowFieldName = workflowsParser.currentName(); - workflowsParser.nextToken(); - workflows.put(workflowFieldName, Workflow.parse(workflowsParser)); - } - break; - case USER_OUTPUTS_FIELD: - - String userOutputsJson = parser.text(); - XContentParser userOuputsParser = jsonToParser(userOutputsJson); - while (userOuputsParser.nextToken() != XContentParser.Token.END_OBJECT) { - String userOutputsFieldName = userOuputsParser.currentName(); - switch (userOuputsParser.nextToken()) { - case VALUE_STRING: - userOutputs.put(userOutputsFieldName, userOuputsParser.text()); - break; - case START_OBJECT: - userOutputs.put(userOutputsFieldName, parseStringToStringMap(userOuputsParser)); - break; - default: - throw new IOException("Unable to parse field [" + userOutputsFieldName + "] in a user_outputs object."); - } - } - break; - - case RESOURCES_CREATED_FIELD: - - String resourcesCreatedJson = parser.text(); - XContentParser resourcesCreatedParser = jsonToParser(resourcesCreatedJson); - while (resourcesCreatedParser.nextToken() != XContentParser.Token.END_OBJECT) { - String resourcesCreatedField = resourcesCreatedParser.currentName(); - switch (resourcesCreatedParser.nextToken()) { - case VALUE_STRING: - resourcesCreated.put(resourcesCreatedField, resourcesCreatedParser.text()); - break; - case START_OBJECT: - resourcesCreated.put(resourcesCreatedField, parseStringToStringMap(resourcesCreatedParser)); - break; - default: - throw new IOException( - "Unable to parse field [" + resourcesCreatedField + "] in a resources_created object." - ); - } - } - break; - - default: - throw new IOException("Unable to parse field [" + fieldName + "] in a template object."); - } - } - if (name == null) { - throw new IOException("An template object requires a name."); - } - - return new Template( - name, - description, - useCase, - operations, - templateVersion, - compatibilityVersion, - userInputs, - workflows, - userOutputs, - resourcesCreated - ); - } - /** * Parse raw json content into a Template instance. * @@ -397,7 +160,6 @@ public static Template parse(XContentParser parser) throws IOException { List operations = new ArrayList<>(); Version templateVersion = null; List compatibilityVersion = new ArrayList<>(); - Map userInputs = new HashMap<>(); Map workflows = new HashMap<>(); Map userOutputs = new HashMap<>(); Map resourcesCreated = new HashMap<>(); @@ -442,22 +204,6 @@ public static Template parse(XContentParser parser) throws IOException { } } break; - case USER_INPUTS_FIELD: - ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser); - while (parser.nextToken() != XContentParser.Token.END_OBJECT) { - String inputFieldName = parser.currentName(); - switch (parser.nextToken()) { - case VALUE_STRING: - userInputs.put(inputFieldName, parser.text()); - break; - case START_OBJECT: - userInputs.put(inputFieldName, parseStringToStringMap(parser)); - break; - default: - throw new IOException("Unable to parse field [" + inputFieldName + "] in a user inputs object."); - } - } - break; case WORKFLOWS_FIELD: ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser); while (parser.nextToken() != XContentParser.Token.END_OBJECT) { @@ -517,7 +263,6 @@ public static Template parse(XContentParser parser) throws IOException { operations, templateVersion, compatibilityVersion, - userInputs, workflows, userOutputs, resourcesCreated @@ -617,14 +362,6 @@ public List compatibilityVersion() { return compatibilityVersion; } - /** - * A map of user inputs - * @return the userInputs - */ - public Map userInputs() { - return userInputs; - } - /** * Workflows encoded in this template, generally corresponding to the operations returned by {@link #operations()}. * @return the workflows @@ -663,8 +400,6 @@ public String toString() { + templateVersion + ", compatibilityVersion=" + compatibilityVersion - + ", userInputs=" - + userInputs + ", workflows=" + workflows + ", userOutputs=" diff --git a/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java b/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java index e03a1b4d8..45cac92bf 100644 --- a/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java +++ b/src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java @@ -95,7 +95,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener { + when(template.toXContent(any(XContentBuilder.class), eq(ToXContent.EMPTY_PARAMS))).thenAnswer(invocation -> { XContentBuilder builder = invocation.getArgument(0); return builder; }); @@ -112,7 +112,7 @@ public void testStoreResponseToGlobalContext() { public void testUpdateTemplateInGlobalContext() throws IOException { Template template = mock(Template.class); - when(template.toDocumentSource(any(XContentBuilder.class), eq(ToXContent.EMPTY_PARAMS))).thenAnswer(invocation -> { + when(template.toXContent(any(XContentBuilder.class), eq(ToXContent.EMPTY_PARAMS))).thenAnswer(invocation -> { XContentBuilder builder = invocation.getArgument(0); return builder; }); diff --git a/src/test/java/org/opensearch/flowframework/model/TemplateTests.java b/src/test/java/org/opensearch/flowframework/model/TemplateTests.java index a7f4fc551..78548c46a 100644 --- a/src/test/java/org/opensearch/flowframework/model/TemplateTests.java +++ b/src/test/java/org/opensearch/flowframework/model/TemplateTests.java @@ -8,6 +8,8 @@ */ package org.opensearch.flowframework.model; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.Version; import org.opensearch.test.OpenSearchTestCase; @@ -17,14 +19,13 @@ public class TemplateTests extends OpenSearchTestCase { - private String expectedPrefix = - "{\"name\":\"test\",\"description\":\"a test template\",\"use_case\":\"test use case\",\"operations\":[\"operation\"]," - + "\"version\":{\"template\":\"1.2.3\",\"compatibility\":[\"4.5.6\",\"7.8.9\"]},\"user_inputs\":{"; - private String expectedKV1 = "\"userKey\":\"userValue\""; - private String expectedKV2 = "\"userMapKey\":{\"nestedKey\":\"nestedValue\"}"; - private String expectedSuffix = "},\"workflows\":{\"workflow\":{\"user_params\":{\"key\":\"value\"}," - + "\"nodes\":[{\"id\":\"A\",\"type\":\"a-type\",\"inputs\":{\"foo\":\"bar\"}}," - + "{\"id\":\"B\",\"type\":\"b-type\",\"inputs\":{\"baz\":\"qux\"}}],\"edges\":[{\"source\":\"A\",\"dest\":\"B\"}]}}}"; + private final Logger logger = LogManager.getLogger(TemplateTests.class); + + private String expectedTemplate = + "{\"name\":\"test\",\"description\":\"a test template\",\"use_case\":\"test use case\",\"operations\":[\"operation\"],\"version\":{\"template\":\"1.2.3\",\"compatibility\":[\"4.5.6\",\"7.8.9\"]}," + + "\"workflows\":{\"workflow\":{\"user_params\":{\"key\":\"value\"},\"nodes\":[{\"id\":\"A\",\"type\":\"a-type\",\"inputs\":{\"foo\":\"bar\"}},{\"id\":\"B\",\"type\":\"b-type\",\"inputs\":{\"baz\":\"qux\"}}],\"edges\":[{\"source\":\"A\",\"dest\":\"B\"}]}}," + + "\"user_outputs\":{\"responsesMapKey\":{\"nestedKey\":\"nestedValue\"},\"responsesKey\":\"testValue\"}," + + "\"resources_created\":{\"resourcesMapKey\":{\"nestedKey\":\"nestedValue\"},\"resourcesKey\":\"resourceValue\"}}"; @Override public void setUp() throws Exception { @@ -49,7 +50,6 @@ public void testTemplate() throws IOException { List.of("operation"), templateVersion, compatibilityVersion, - Map.ofEntries(Map.entry("userKey", "userValue"), Map.entry("userMapKey", Map.of("nestedKey", "nestedValue"))), Map.of("workflow", workflow), Map.ofEntries(Map.entry("responsesKey", "testValue"), Map.entry("responsesMapKey", Map.of("nestedKey", "nestedValue"))), Map.ofEntries(Map.entry("resourcesKey", "resourceValue"), Map.entry("resourcesMapKey", Map.of("nestedKey", "nestedValue"))) @@ -61,18 +61,11 @@ public void testTemplate() throws IOException { assertEquals(List.of("operation"), template.operations()); assertEquals(templateVersion, template.templateVersion()); assertEquals(compatibilityVersion, template.compatibilityVersion()); - Map inputsMap = template.userInputs(); - assertEquals("userValue", inputsMap.get("userKey")); - assertEquals(Map.of("nestedKey", "nestedValue"), inputsMap.get("userMapKey")); Workflow wf = template.workflows().get("workflow"); assertNotNull(wf); assertEquals("Workflow [userParams={key=value}, nodes=[A, B], edges=[A->B]]", wf.toString()); String json = TemplateTestJsonUtil.parseToJson(template); - assertTrue(json.startsWith(expectedPrefix)); - assertTrue(json.contains(expectedKV1)); - assertTrue(json.contains(expectedKV2)); - // assertTrue(json.endsWith(expectedSuffix)); Template templateX = Template.parse(json); assertEquals("test", templateX.name()); @@ -81,38 +74,26 @@ public void testTemplate() throws IOException { assertEquals(List.of("operation"), templateX.operations()); assertEquals(templateVersion, templateX.templateVersion()); assertEquals(compatibilityVersion, templateX.compatibilityVersion()); - Map inputsMapX = template.userInputs(); - assertEquals("userValue", inputsMapX.get("userKey")); - assertEquals(Map.of("nestedKey", "nestedValue"), inputsMapX.get("userMapKey")); Workflow wfX = templateX.workflows().get("workflow"); assertNotNull(wfX); assertEquals("Workflow [userParams={key=value}, nodes=[A, B], edges=[A->B]]", wfX.toString()); } public void testExceptions() throws IOException { - String json = expectedPrefix + expectedKV1 + "," + expectedKV2 + expectedSuffix; IOException e; - String badTemplateField = json.replace("use_case", "badField"); + String badTemplateField = expectedTemplate.replace("use_case", "badField"); e = assertThrows(IOException.class, () -> Template.parse(badTemplateField)); assertEquals("Unable to parse field [badField] in a template object.", e.getMessage()); - String badVersionField = json.replace("compatibility", "badField"); + String badVersionField = expectedTemplate.replace("compatibility", "badField"); e = assertThrows(IOException.class, () -> Template.parse(badVersionField)); assertEquals("Unable to parse field [version] in a version object.", e.getMessage()); - - String badUserInputType = json.replace("{\"nestedKey\":\"nestedValue\"}},", "[]"); - e = assertThrows(IOException.class, () -> Template.parse(badUserInputType)); - assertEquals("Unable to parse field [userMapKey] in a user inputs object.", e.getMessage()); } public void testStrings() throws IOException { - Template t = Template.parse(expectedPrefix + expectedKV1 + "," + expectedKV2 + expectedSuffix); - assertTrue(t.toJson().contains(expectedPrefix)); - assertTrue(t.toJson().contains(expectedKV1)); - assertTrue(t.toJson().contains(expectedKV2)); - // assertTrue(t.toJson().contains(expectedSuffix)); - + Template t = Template.parse(expectedTemplate); + assertTrue(t.toJson().contains("a test template")); assertTrue(t.toYaml().contains("a test template")); assertTrue(t.toString().contains("a test template")); } diff --git a/src/test/java/org/opensearch/flowframework/rest/RestCreateWorkflowActionTests.java b/src/test/java/org/opensearch/flowframework/rest/RestCreateWorkflowActionTests.java index fd07a91eb..11e6c61fa 100644 --- a/src/test/java/org/opensearch/flowframework/rest/RestCreateWorkflowActionTests.java +++ b/src/test/java/org/opensearch/flowframework/rest/RestCreateWorkflowActionTests.java @@ -58,7 +58,6 @@ public void setUp() throws Exception { operations, templateVersion, compatibilityVersions, - Map.ofEntries(Map.entry("userKey", "userValue"), Map.entry("userMapKey", Map.of("nestedKey", "nestedValue"))), Map.of("workflow", workflow), Map.of("outputKey", "outputValue"), Map.of("resourceKey", "resourceValue") diff --git a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java index 83c322fea..1f7df11d9 100644 --- a/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/CreateWorkflowTransportActionTests.java @@ -67,7 +67,6 @@ public void setUp() throws Exception { operations, templateVersion, compatibilityVersions, - Map.ofEntries(Map.entry("userKey", "userValue"), Map.entry("userMapKey", Map.of("nestedKey", "nestedValue"))), Map.of("workflow", workflow), Map.of("outputKey", "outputValue"), Map.of("resourceKey", "resourceValue") diff --git a/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java b/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java index f8b2d8490..7c0ae9ef9 100644 --- a/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportActionTests.java @@ -18,7 +18,6 @@ import org.opensearch.common.xcontent.XContentFactory; import org.opensearch.core.action.ActionListener; import org.opensearch.core.common.bytes.BytesReference; -import org.opensearch.core.xcontent.ToXContent; import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.flowframework.model.Template; import org.opensearch.flowframework.model.Workflow; @@ -84,7 +83,6 @@ public void setUp() throws Exception { operations, templateVersion, compatibilityVersions, - Map.ofEntries(Map.entry("userKey", "userValue"), Map.entry("userMapKey", Map.of("nestedKey", "nestedValue"))), Map.of("provision", workflow), Map.of("outputKey", "outputValue"), Map.of("resourceKey", "resourceValue") @@ -108,7 +106,7 @@ public void testProvisionWorkflow() { ActionListener responseListener = invocation.getArgument(1); XContentBuilder builder = XContentFactory.jsonBuilder(); - this.template.toDocumentSource(builder, ToXContent.EMPTY_PARAMS); + this.template.toXContent(builder, null); BytesReference templateBytesRef = BytesReference.bytes(builder); GetResult getResult = new GetResult(GLOBAL_CONTEXT_INDEX, workflowId, 1, 1, 1, true, templateBytesRef, null, null); responseListener.onResponse(new GetResponse(getResult)); diff --git a/src/test/java/org/opensearch/flowframework/transport/WorkflowRequestResponseTests.java b/src/test/java/org/opensearch/flowframework/transport/WorkflowRequestResponseTests.java index cc5c19a09..063490c41 100644 --- a/src/test/java/org/opensearch/flowframework/transport/WorkflowRequestResponseTests.java +++ b/src/test/java/org/opensearch/flowframework/transport/WorkflowRequestResponseTests.java @@ -50,7 +50,6 @@ public void setUp() throws Exception { operations, templateVersion, compatibilityVersions, - Map.ofEntries(Map.entry("userKey", "userValue"), Map.entry("userMapKey", Map.of("nestedKey", "nestedValue"))), Map.of("workflow", workflow), Map.of("outputKey", "outputValue"), Map.of("resourceKey", "resourceValue")