Skip to content

Commit dbd6cf3

Browse files
authored
refactor: Add constants to CreateConnectorStep and update enum usage #535 (#1299)
* refactor: Add constants to CreateConnectorStep and update enum usage - Add REQUIRED_INPUTS, OPTIONAL_INPUTS, and PROVIDED_OUTPUTS constants to CreateConnectorStep - Update WorkflowSteps.CREATE_CONNECTOR enum to use constants from CreateConnectorStep class - Refactor WorkflowStepValidatorTests to use constants instead of magic strings - Remove code duplication between CreateConnectorStep and WorkflowSteps enum This follows the same pattern as DeleteIndexStep and addresses issue #535. Signed-off-by: Nurym <nurym0807@gmail.com> * Fix formatting, add Javadoc, and remove star imports Signed-off-by: kokibas <nurym0807@gmail.com> --------- Signed-off-by: Nurym <nurym0807@gmail.com> Signed-off-by: kokibas <nurym0807@gmail.com>
1 parent fd1719a commit dbd6cf3

File tree

3 files changed

+27
-31
lines changed

3 files changed

+27
-31
lines changed

src/main/java/org/opensearch/flowframework/workflow/CreateConnectorStep.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import static org.opensearch.flowframework.common.CommonValue.PARAMETERS_FIELD;
4242
import static org.opensearch.flowframework.common.CommonValue.PROTOCOL_FIELD;
4343
import static org.opensearch.flowframework.common.CommonValue.VERSION_FIELD;
44+
import static org.opensearch.flowframework.common.WorkflowResources.CONNECTOR_ID;
4445
import static org.opensearch.flowframework.exception.WorkflowStepException.getSafeException;
4546
import static org.opensearch.flowframework.util.ParseUtils.getStringToStringMap;
4647

@@ -56,6 +57,20 @@ public class CreateConnectorStep implements WorkflowStep {
5657

5758
/** The name of this step, used as a key in the template and the {@link WorkflowStepFactory} */
5859
public static final String NAME = "create_connector";
60+
/** Required input keys */
61+
public static final Set<String> REQUIRED_INPUTS = Set.of(
62+
NAME_FIELD,
63+
DESCRIPTION_FIELD,
64+
VERSION_FIELD,
65+
PROTOCOL_FIELD,
66+
PARAMETERS_FIELD,
67+
CREDENTIAL_FIELD,
68+
ACTIONS_FIELD
69+
);
70+
/** Optional input keys */
71+
public static final Set<String> OPTIONAL_INPUTS = Collections.emptySet();
72+
/** Provided output keys */
73+
public static final Set<String> PROVIDED_OUTPUTS = Set.of(CONNECTOR_ID);
5974

6075
/**
6176
* Instantiate this class
@@ -103,21 +118,10 @@ public void onFailure(Exception ex) {
103118
}
104119
};
105120

106-
Set<String> requiredKeys = Set.of(
107-
NAME_FIELD,
108-
DESCRIPTION_FIELD,
109-
VERSION_FIELD,
110-
PROTOCOL_FIELD,
111-
PARAMETERS_FIELD,
112-
CREDENTIAL_FIELD,
113-
ACTIONS_FIELD
114-
);
115-
Set<String> optionalKeys = Collections.emptySet();
116-
117121
try {
118122
Map<String, Object> inputs = ParseUtils.getInputsFromPreviousSteps(
119-
requiredKeys,
120-
optionalKeys,
123+
REQUIRED_INPUTS,
124+
OPTIONAL_INPUTS,
121125
currentNodeInputs,
122126
outputs,
123127
previousNodeInputs,

src/main/java/org/opensearch/flowframework/workflow/WorkflowStepFactory.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.opensearch.threadpool.ThreadPool;
2424
import org.opensearch.transport.client.Client;
2525

26+
import java.util.ArrayList;
2627
import java.util.Collection;
2728
import java.util.Collections;
2829
import java.util.HashMap;
@@ -33,10 +34,7 @@
3334
import java.util.stream.Collectors;
3435
import java.util.stream.Stream;
3536

36-
import static org.opensearch.flowframework.common.CommonValue.ACTIONS_FIELD;
3737
import static org.opensearch.flowframework.common.CommonValue.CONFIGURATIONS;
38-
import static org.opensearch.flowframework.common.CommonValue.CREDENTIAL_FIELD;
39-
import static org.opensearch.flowframework.common.CommonValue.DESCRIPTION_FIELD;
4038
import static org.opensearch.flowframework.common.CommonValue.DESTINATION_INDEX;
4139
import static org.opensearch.flowframework.common.CommonValue.EMBEDDING_DIMENSION;
4240
import static org.opensearch.flowframework.common.CommonValue.FRAMEWORK_TYPE;
@@ -47,9 +45,7 @@
4745
import static org.opensearch.flowframework.common.CommonValue.MODEL_TYPE;
4846
import static org.opensearch.flowframework.common.CommonValue.NAME_FIELD;
4947
import static org.opensearch.flowframework.common.CommonValue.OPENSEARCH_ML;
50-
import static org.opensearch.flowframework.common.CommonValue.PARAMETERS_FIELD;
5148
import static org.opensearch.flowframework.common.CommonValue.PIPELINE_ID;
52-
import static org.opensearch.flowframework.common.CommonValue.PROTOCOL_FIELD;
5349
import static org.opensearch.flowframework.common.CommonValue.REGISTER_MODEL_STATUS;
5450
import static org.opensearch.flowframework.common.CommonValue.SOURCE_INDEX;
5551
import static org.opensearch.flowframework.common.CommonValue.SUCCESS;
@@ -151,8 +147,8 @@ public enum WorkflowSteps {
151147
/** Create Connector Step */
152148
CREATE_CONNECTOR(
153149
CreateConnectorStep.NAME,
154-
List.of(NAME_FIELD, DESCRIPTION_FIELD, VERSION_FIELD, PROTOCOL_FIELD, PARAMETERS_FIELD, CREDENTIAL_FIELD, ACTIONS_FIELD),
155-
List.of(CONNECTOR_ID),
150+
new ArrayList<>(CreateConnectorStep.REQUIRED_INPUTS),
151+
new ArrayList<>(CreateConnectorStep.PROVIDED_OUTPUTS),
156152
List.of(OPENSEARCH_ML),
157153
TimeValue.timeValueSeconds(60)
158154
),

src/test/java/org/opensearch/flowframework/model/WorkflowStepValidatorTests.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@
88
*/
99
package org.opensearch.flowframework.model;
1010

11+
import org.opensearch.flowframework.workflow.CreateConnectorStep;
1112
import org.opensearch.flowframework.workflow.WorkflowStepFactory;
1213
import org.opensearch.test.OpenSearchTestCase;
1314

1415
import java.io.IOException;
15-
import java.util.HashMap;
16-
import java.util.Map;
1716

1817
public class WorkflowStepValidatorTests extends OpenSearchTestCase {
1918

@@ -24,17 +23,14 @@ public void setUp() throws Exception {
2423

2524
public void testParseWorkflowStepValidator() throws IOException {
2625

27-
Map<String, WorkflowStepValidator> workflowStepValidators = new HashMap<>();
28-
workflowStepValidators.put(
29-
WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.getWorkflowStepName(),
30-
WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.getWorkflowStepValidator()
31-
);
26+
var step = WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR;
3227

33-
assertEquals(7, WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.inputs().size());
34-
assertEquals(1, WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.outputs().size());
28+
assertEquals(CreateConnectorStep.NAME, step.getWorkflowStepName());
3529

36-
assertEquals("name", WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.inputs().get(0));
37-
assertEquals("connector_id", WorkflowStepFactory.WorkflowSteps.CREATE_CONNECTOR.outputs().get(0));
30+
assertEquals(CreateConnectorStep.REQUIRED_INPUTS.size(), step.inputs().size());
31+
assertTrue(step.inputs().containsAll(CreateConnectorStep.REQUIRED_INPUTS));
32+
assertEquals(CreateConnectorStep.PROVIDED_OUTPUTS.size(), step.outputs().size());
33+
assertTrue(step.outputs().containsAll(CreateConnectorStep.PROVIDED_OUTPUTS));
3834
}
3935

4036
}

0 commit comments

Comments
 (0)