Skip to content

Commit 4410196

Browse files
committed
fix: [CI-5298]: fixed the plugin step identifier issue
1 parent 1a8971e commit 4410196

3 files changed

Lines changed: 34 additions & 12 deletions

File tree

332-ci-manager/service/src/main/java/io/harness/ci/execution/integrationstage/K8InitializeStepUtils.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -900,49 +900,54 @@ public Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> getStepConne
900900

901901
Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> map = new HashMap<>();
902902
for (ExecutionWrapperConfig executionWrapperConfig : executionWrappers) {
903-
populateStepConnectorRefsUtil(executionWrapperConfig, ambiance, map);
903+
populateStepConnectorRefsUtil(executionWrapperConfig, ambiance, map, null);
904904
}
905905
return map;
906906
}
907907

908908
public void populateStepConnectorRefsUtil(ExecutionWrapperConfig executionWrapperConfig, Ambiance ambiance,
909-
Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> map) {
909+
Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> map, String stepGroupIdOfParent) {
910910
if (executionWrapperConfig.getStep() != null && !executionWrapperConfig.getStep().isNull()) {
911911
StepElementConfig stepElementConfig = getStepElementConfig(executionWrapperConfig);
912-
map.putAll(getStepConnectorConversionInfo(stepElementConfig, ambiance));
912+
map.putAll(getStepConnectorConversionInfo(stepElementConfig, ambiance, stepGroupIdOfParent));
913913
} else if (executionWrapperConfig.getParallel() != null && !executionWrapperConfig.getParallel().isNull()) {
914914
ParallelStepElementConfig parallelStepElementConfig = getParallelStepElementConfig(executionWrapperConfig);
915915
for (ExecutionWrapperConfig executionWrapper : parallelStepElementConfig.getSections()) {
916-
populateStepConnectorRefsUtil(executionWrapper, ambiance, map);
916+
populateStepConnectorRefsUtil(executionWrapper, ambiance, map, stepGroupIdOfParent);
917917
}
918918
} else if (executionWrapperConfig.getStepGroup() != null && !executionWrapperConfig.getStepGroup().isNull()) {
919919
StepGroupElementConfig stepGroupElementConfig =
920920
IntegrationStageUtils.getStepGroupElementConfig(executionWrapperConfig);
921921
for (ExecutionWrapperConfig executionWrapper : stepGroupElementConfig.getSteps()) {
922-
populateStepConnectorRefsUtil(executionWrapper, ambiance, map);
922+
populateStepConnectorRefsUtil(executionWrapper, ambiance, map, stepGroupElementConfig.getIdentifier());
923923
}
924924
}
925925
}
926926

927927
private Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> getStepConnectorConversionInfo(
928-
StepElementConfig stepElement, Ambiance ambiance) {
928+
StepElementConfig stepElement, Ambiance ambiance, String stepGroupIdOfParent) {
929929
Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> map = new HashMap<>();
930930
if ((stepElement.getStepSpecType() instanceof PluginCompatibleStep)
931931
&& (stepElement.getStepSpecType() instanceof WithConnectorRef)) {
932-
map.put(stepElement.getIdentifier(), new ArrayList<>());
932+
String stepIdentifier = stepElement.getIdentifier();
933+
if (Strings.isNotBlank(stepGroupIdOfParent)) {
934+
stepIdentifier = stepGroupIdOfParent + "_" + stepIdentifier;
935+
}
936+
937+
map.put(stepIdentifier, new ArrayList<>());
933938
PluginCompatibleStep step = (PluginCompatibleStep) stepElement.getStepSpecType();
934939

935940
String connectorRef = PluginSettingUtils.getConnectorRef(step);
936941
Map<EnvVariableEnum, String> envToSecretMap =
937942
PluginSettingUtils.getConnectorSecretEnvMap(step.getNonYamlInfo().getStepInfoType());
938-
map.get(stepElement.getIdentifier())
943+
map.get(stepIdentifier)
939944
.add(K8BuildJobEnvInfo.ConnectorConversionInfo.builder()
940945
.connectorRef(connectorRef)
941946
.envToSecretsMap(envToSecretMap)
942947
.build());
943948
List<K8BuildJobEnvInfo.ConnectorConversionInfo> baseConnectorConversionInfo =
944949
this.getBaseImageConnectorConversionInfo(step, ambiance);
945-
map.get(stepElement.getIdentifier()).addAll(baseConnectorConversionInfo);
950+
map.get(stepIdentifier).addAll(baseConnectorConversionInfo);
946951
}
947952
return map;
948953
}

332-ci-manager/service/src/test/java/io/harness/ci/integrationstage/K8InitializeStepUtilsHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ private static JsonNode getPluginStepElementConfigAsJsonNode() {
202202
public static JsonNode getDockerStepElementConfigAsJsonNode() {
203203
ObjectMapper mapper = new ObjectMapper();
204204
ObjectNode stepElementConfig = mapper.createObjectNode();
205-
stepElementConfig.put("identifier", PLUGIN_STEP_ID);
205+
stepElementConfig.put("identifier", "step-docker");
206206

207207
stepElementConfig.put("type", "BuildAndPushDockerRegistry");
208208
stepElementConfig.put("name", "docker step");

332-ci-manager/service/src/test/java/io/harness/ci/integrationstage/K8InitializeStepUtilsTest.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
import io.harness.rule.Owner;
3535
import io.harness.steps.matrix.StrategyExpansionData;
3636

37+
import com.fasterxml.jackson.databind.ObjectMapper;
38+
import com.fasterxml.jackson.databind.node.ArrayNode;
39+
import com.fasterxml.jackson.databind.node.ObjectNode;
3740
import com.google.inject.Inject;
3841
import java.util.HashMap;
3942
import java.util.HashSet;
@@ -248,17 +251,31 @@ public void testGetStageCpuRequest() {
248251
public void testGetStepConnectorRefs() throws Exception {
249252
List<ExecutionWrapperConfig> wrapperConfigs =
250253
K8InitializeStepUtilsHelper.getExecutionWrapperConfigListWithStepGroup1();
254+
255+
ObjectMapper mapper = new ObjectMapper();
256+
ObjectNode stepGroupElementConfig = mapper.createObjectNode();
257+
258+
ArrayNode arrayNode = mapper.createArrayNode();
259+
arrayNode.add(
260+
mapper.createObjectNode().set("step", K8InitializeStepUtilsHelper.getDockerStepElementConfigAsJsonNode()));
261+
262+
stepGroupElementConfig.put("identifier", "step-group1");
263+
stepGroupElementConfig.put("steps", arrayNode);
264+
265+
wrapperConfigs.add(ExecutionWrapperConfig.builder().stepGroup(stepGroupElementConfig).build());
251266
wrapperConfigs.add(ExecutionWrapperConfig.builder()
252267
.step(K8InitializeStepUtilsHelper.getDockerStepElementConfigAsJsonNode())
253268
.build());
269+
254270
ExecutionElementConfig executionElementConfig = ExecutionElementConfig.builder().steps(wrapperConfigs).build();
255271
IntegrationStageConfig integrationStageConfig =
256272
IntegrationStageConfigImpl.builder().execution(executionElementConfig).build();
257273
Ambiance ambiance = Ambiance.newBuilder().build();
258274
Map<String, List<K8BuildJobEnvInfo.ConnectorConversionInfo>> stepConnectorRefs =
259275
k8InitializeStepUtils.getStepConnectorRefs(integrationStageConfig, ambiance);
260-
assertThat(stepConnectorRefs.size()).isEqualTo(1);
261-
assertThat(stepConnectorRefs.containsKey("step-3")).isTrue();
276+
assertThat(stepConnectorRefs.size()).isEqualTo(2);
277+
assertThat(stepConnectorRefs.containsKey("step-docker")).isTrue();
278+
assertThat(stepConnectorRefs.containsKey("step-group1_step-docker")).isTrue();
262279
}
263280

264281
@Test

0 commit comments

Comments
 (0)