Skip to content

Commit 55a48e4

Browse files
committed
feat: [CI-5543]: gitX migration for triggers
1 parent b9fa8ab commit 55a48e4

6 files changed

Lines changed: 40 additions & 7 deletions

File tree

pipeline-service/modules/ng-triggers/src/main/java/io/harness/ngtriggers/buildtriggers/helpers/BuildTriggerHelper.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.harness.exception.InvalidRequestException;
2121
import io.harness.expression.EngineExpressionEvaluator;
2222
import io.harness.jackson.JsonNodeUtils;
23+
import io.harness.ngtriggers.beans.config.NGTriggerConfigV2;
2324
import io.harness.ngtriggers.beans.dto.TriggerDetails;
2425
import io.harness.ngtriggers.beans.entity.NGTriggerEntity;
2526
import io.harness.ngtriggers.beans.source.NGTriggerSpecV2;
@@ -66,10 +67,12 @@
6667
public class BuildTriggerHelper {
6768
private PipelineServiceClient pipelineServiceClient;
6869

69-
public Optional<String> fetchPipelineForTrigger(NGTriggerEntity ngTriggerEntity) {
70+
public Optional<String> fetchPipelineForTrigger(TriggerDetails triggerDetails) {
71+
NGTriggerEntity ngTriggerEntity = triggerDetails.getNgTriggerEntity();
72+
NGTriggerConfigV2 ngTriggerConfigV2 = triggerDetails.getNgTriggerConfigV2();
7073
PMSPipelineResponseDTO response = NGRestUtils.getResponse(pipelineServiceClient.getPipelineByIdentifier(
7174
ngTriggerEntity.getTargetIdentifier(), ngTriggerEntity.getAccountId(), ngTriggerEntity.getOrgIdentifier(),
72-
ngTriggerEntity.getProjectIdentifier(), null, null, false));
75+
ngTriggerEntity.getProjectIdentifier(), ngTriggerConfigV2.getPipelineBranchName(), null, false));
7376

7477
return response != null ? Optional.of(response.getYamlPipeline()) : Optional.empty();
7578
}

pipeline-service/modules/ng-triggers/src/main/java/io/harness/ngtriggers/service/impl/NGTriggerServiceImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -685,8 +685,7 @@ public MergeInputSetResponseDTOPMS validateInputSetsInternal(TriggerDetails trig
685685
}
686686

687687
private void validatePipelineRef(TriggerDetails triggerDetails) {
688-
NGTriggerEntity ngTriggerEntity = triggerDetails.getNgTriggerEntity();
689-
Optional<String> pipelineYmlOptional = validationHelper.fetchPipelineForTrigger(ngTriggerEntity);
688+
Optional<String> pipelineYmlOptional = validationHelper.fetchPipelineForTrigger(triggerDetails);
690689
if (pipelineYmlOptional.isPresent()) {
691690
String pipelineYaml = pipelineYmlOptional.get();
692691
String templateYaml = createRuntimeInputForm(pipelineYaml);

pipeline-service/modules/ng-triggers/src/main/java/io/harness/ngtriggers/validations/impl/PipelineRefValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class PipelineRefValidator implements TriggerValidator {
3232
public ValidationResult validate(TriggerDetails triggerDetails) {
3333
ValidationResultBuilder builder = ValidationResult.builder().success(true);
3434
NGTriggerEntity ngTriggerEntity = triggerDetails.getNgTriggerEntity();
35-
Optional<String> pipelineYmlOptional = validationHelper.fetchPipelineForTrigger(ngTriggerEntity);
35+
Optional<String> pipelineYmlOptional = validationHelper.fetchPipelineForTrigger(triggerDetails);
3636

3737
if (!pipelineYmlOptional.isPresent()) {
3838
String ref = new StringBuilder(128)

pipeline-service/modules/ng-triggers/src/test/java/io/harness/ngtriggers/validations/TriggerValidationHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void testPipelineRefValidator() {
9393
doReturn(Optional.empty())
9494
.doReturn(Optional.of("placeholder_for_actual_pipeline_yml"))
9595
.when(buildTriggerHelper)
96-
.fetchPipelineForTrigger(ngTriggerEntity);
96+
.fetchPipelineForTrigger(triggerDetails);
9797

9898
PipelineRefValidator pipelineRefValidator = new PipelineRefValidator(buildTriggerHelper);
9999
ValidationResult validate =

pipeline-service/service/src/main/java/io/harness/pms/triggers/TriggerExecutionHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ public String fetchInputSetYAML(TriggerDetails triggerDetails, TriggerWebhookEve
473473
NGTriggerConfigV2 triggerConfigV2 = triggerDetails.getNgTriggerConfigV2();
474474
String pipelineBranch = triggerConfigV2.getPipelineBranchName();
475475
if (isEmpty(triggerConfigV2.getInputSetRefs())) {
476-
return null;
476+
return triggerConfigV2.getInputYaml();
477477
}
478478

479479
String branch = null;

scripts/gitxmigration/script.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from pymongo import MongoClient
77
from enum import Enum
88
import requests
9+
import yaml
910

1011
INPUT_ACCOUNT_ID = "kmpySmUISimoRrJL6NL73w"
1112
INPUT_ORG_ID = "default"
@@ -36,6 +37,9 @@ class DBKeys(Enum):
3637
BRANCH = "branch"
3738
OBJECT_ID_OF_YAML = "objectIdOfYaml"
3839
YAML = "yaml"
40+
TARGET_IDENTIFIER = "targetIdentifier"
41+
PIPELINE_BRANCH_NAME = "pipelineBranchName"
42+
TRIGGER = "trigger"
3943
SETTINGS = "settings"
4044

4145

@@ -225,6 +229,32 @@ def delete_yaml_git_configs():
225229
}
226230
yaml_git_config_collection.delete_many(find_criteria)
227231

232+
def update_triggers():
233+
query = {
234+
DBKeys.ACCOUNT_ID.value: INPUT_ACCOUNT_ID,
235+
DBKeys.ORG_IDENTIFIER.value: INPUT_ORG_ID,
236+
DBKeys.PROJECT_IDENTIFIER.value: INPUT_PROJECT_ID,
237+
}
238+
triggers = pms_db.triggersNG.find(query)
239+
for record in triggers:
240+
pipelineId = record.get(DBKeys.TARGET_IDENTIFIER.value);
241+
pipelineQuery = {
242+
DBKeys.ACCOUNT_ID.value: INPUT_ACCOUNT_ID,
243+
DBKeys.ORG_IDENTIFIER.value: INPUT_ORG_ID,
244+
DBKeys.PROJECT_IDENTIFIER.value: INPUT_PROJECT_ID,
245+
DBKeys.IDENTIFIER.value: pipelineId,
246+
DBKeys.IS_FROM_DEFAULT_BRANCH.value: True
247+
}
248+
pipeline = pms_db.pipelinesPMS.find_one(pipelineQuery)
249+
if pipeline is None:
250+
continue
251+
252+
pipelineBranchName = pipeline.get(DBKeys.BRANCH.value);
253+
254+
trigger_yaml = yaml.safe_load(record.get(DBKeys.YAML.value));
255+
trigger_yaml.get(DBKeys.TRIGGER.value)[DBKeys.PIPELINE_BRANCH_NAME.value] = pipelineBranchName
256+
record[DBKeys.YAML.value] = yaml.dump(trigger_yaml, sort_keys=False);
257+
pms_db.triggersNG.update_one({"_id": record.get("_id")}, {"$set": record}, upsert=False)
228258

229259
if __name__ == "__main__":
230260
setup_mongo_client()
@@ -234,6 +264,7 @@ def delete_yaml_git_configs():
234264
delete_non_default_branch_entities()
235265
# enable_gitx_via_api()
236266
enable_new_gitx()
267+
update_triggers()
237268
migrate_records_from_inline_to_remote()
238269
cleanup_connector_entities()
239270
# reset_git_sync_sdk_cache()

0 commit comments

Comments
 (0)