@@ -6429,17 +6429,17 @@ func diffWorkflows(oldWorkflow Workflow, parentWorkflow Workflow, update bool) {
64296429 }
64306430
64316431 // Create / Delete / Modify
6432- // log.Printf("\n ===== Parent: %#v, Child: %#v =====", parentWorkflow.ID, oldWorkflow.ID)
6433- // log.Printf("\n Changes: c | d | m\n Action: %d | %d | %d\n Trigger: %d | %d | %d\n Branch: %d | %d | %d", len(addedActions), len(removedActions), len(updatedActions), len(addedTriggers), len(removedTriggers), len(updatedTriggers), len(addedBranches), len(removedBranches), len(updatedBranches))
6432+ log.Printf("\n ===== Parent: %#v, Child: %#v =====", parentWorkflow.ID, oldWorkflow.ID)
6433+ log.Printf("\n Changes: c | d | m\n Action: %d | %d | %d\n Trigger: %d | %d | %d\n Branch: %d | %d | %d", len(addedActions), len(removedActions), len(updatedActions), len(addedTriggers), len(removedTriggers), len(updatedTriggers), len(addedBranches), len(removedBranches), len(updatedBranches))
64346434
64356435 if update {
64366436 // FIXME: This doesn't work does it?
64376437 childWorkflow := oldWorkflow
64386438
6439- // log.Printf("\n\nSTART")
6440- // log.Printf("[DEBUG] CHILD ACTIONS START: %d", len(childWorkflow.Actions))
6441- // log.Printf("[DEBUG] CHILD TRIGGERS START: %d", len(childWorkflow.Triggers))
6442- // log.Printf("[DEBUG] CHILD BRANCHES START: %d\n\n", len(childWorkflow.Branches))
6439+ log.Printf("\n\nSTART")
6440+ log.Printf("[DEBUG] CHILD ACTIONS START: %d", len(childWorkflow.Actions))
6441+ log.Printf("[DEBUG] CHILD TRIGGERS START: %d", len(childWorkflow.Triggers))
6442+ log.Printf("[DEBUG] CHILD BRANCHES START: %d\n\n", len(childWorkflow.Branches))
64436443
64446444 if nameChanged {
64456445 childWorkflow.Name = parentWorkflow.Name
@@ -6698,68 +6698,66 @@ func diffWorkflows(oldWorkflow Workflow, parentWorkflow Workflow, update bool) {
66986698 // FIXME: Add specific handlers for each type based on oldWorkflow params that may have been locally configured
66996699 // FIXME: THIS DOES NOT WORK YET FOR TRIGGER FIELD MAPPING TO OLD SETTING
67006700 if childTrigger.ParentControlled {
6701- /*
6702- for _, oldTrigger := range oldWorkflow.Triggers {
6703- if oldTrigger.ID != childTrigger.ID {
6704- continue
6705- }
6706-
6707- childTrigger.Status = oldTrigger.Status
6708-
6709- reservedArguments := []string{}
6710- if oldTrigger.TriggerType == "SUBFLOW" {
6711- reservedArguments = []string{"workflow", "user_apikey", "startnode"}
6712- } else if oldTrigger.TriggerType == "USERINPUT" {
6713- reservedArguments = []string{"subflow", "sms", "email", "type"}
6714- } else if oldTrigger.TriggerType == "SCHEDULE" {
6715- } else if oldTrigger.TriggerType == "WEBHOOK" {
6716- reservedArguments = []string{"url", "tmp", "auth_headers"}
6717- } else if oldTrigger.TriggerType == "PIPELINE" {
6718- reservedArguments = []string{"pipeline"}
6719- }
6720-
6721- fieldsFound := []string{}
6722- for paramIndex, param := range childTrigger.Parameters {
6723- if !ArrayContains(reservedArguments, param.Name) {
6724- continue
6725- }
6726-
6727- fieldsFound = append(fieldsFound, param.Name)
6728- for _, oldParam := range oldTrigger.Parameters {
6729- if oldParam.Name != param.Name {
6730- continue
6731- }
6732-
6733- childWorkflow.Triggers[childTriggerIndex].Parameters[paramIndex].Value = oldParam.Value
6734- childTrigger.Parameters[paramIndex].Value = oldParam.Value
6735- break
6736- }
6737- }
6738-
6739- if len(fieldsFound) != len(reservedArguments) {
6740- for _, field := range reservedArguments {
6741- if ArrayContains(fieldsFound, field) {
6742- continue
6743- }
6744-
6745- oldParamFound := false
6746- for _, oldParam := range oldTrigger.Parameters {
6747- if oldParam.Name != field {
6748- continue
6749- }
6750-
6751- oldParamFound = true
6752- childTrigger.Parameters = append(childTrigger.Parameters, oldParam)
6753- childWorkflow.Triggers[childTriggerIndex].Parameters = append(childWorkflow.Triggers[childTriggerIndex].Parameters, oldParam)
6754- }
6755-
6756- if !oldParamFound {
6757- //log.Printf("[DEBUG] MISSING IN OLDPARAM TOO: %s", field)
6758- }
6759- }
6760- }
6761- }
6762- */
6701+ // for _, oldTrigger := range oldWorkflow.Triggers {
6702+ // if oldTrigger.ID != childTrigger.ID {
6703+ // continue
6704+ // }
6705+
6706+ // childTrigger.Status = oldTrigger.Status
6707+
6708+ // reservedArguments := []string{}
6709+ // if oldTrigger.TriggerType == "SUBFLOW" {
6710+ // reservedArguments = []string{"workflow", "user_apikey", "startnode"}
6711+ // } else if oldTrigger.TriggerType == "USERINPUT" {
6712+ // reservedArguments = []string{"subflow", "sms", "email", "type"}
6713+ // } else if oldTrigger.TriggerType == "SCHEDULE" {
6714+ // } else if oldTrigger.TriggerType == "WEBHOOK" {
6715+ // reservedArguments = []string{"url", "tmp", "auth_headers"}
6716+ // } else if oldTrigger.TriggerType == "PIPELINE" {
6717+ // reservedArguments = []string{"pipeline"}
6718+ // }
6719+
6720+ // fieldsFound := []string{}
6721+ // for paramIndex, param := range childTrigger.Parameters {
6722+ // if !ArrayContains(reservedArguments, param.Name) {
6723+ // continue
6724+ // }
6725+
6726+ // fieldsFound = append(fieldsFound, param.Name)
6727+ // for _, oldParam := range oldTrigger.Parameters {
6728+ // if oldParam.Name != param.Name {
6729+ // continue
6730+ // }
6731+
6732+ // childWorkflow.Triggers[childTriggerIndex].Parameters[paramIndex].Value = oldParam.Value
6733+ // childTrigger.Parameters[paramIndex].Value = oldParam.Value
6734+ // break
6735+ // }
6736+ // }
6737+
6738+ // if len(fieldsFound) != len(reservedArguments) {
6739+ // for _, field := range reservedArguments {
6740+ // if ArrayContains(fieldsFound, field) {
6741+ // continue
6742+ // }
6743+
6744+ // oldParamFound := false
6745+ // for _, oldParam := range oldTrigger.Parameters {
6746+ // if oldParam.Name != field {
6747+ // continue
6748+ // }
6749+
6750+ // oldParamFound = true
6751+ // childTrigger.Parameters = append(childTrigger.Parameters, oldParam)
6752+ // childWorkflow.Triggers[childTriggerIndex].Parameters = append(childWorkflow.Triggers[childTriggerIndex].Parameters, oldParam)
6753+ // }
6754+
6755+ // if !oldParamFound {
6756+ // //log.Printf("[DEBUG] MISSING IN OLDPARAM TOO: %s", field)
6757+ // }
6758+ // }
6759+ // }
6760+ // }
67636761 }
67646762
67656763 found := false
@@ -6797,6 +6795,23 @@ func diffWorkflows(oldWorkflow Workflow, parentWorkflow Workflow, update bool) {
67976795 }
67986796 }
67996797
6798+ // print newTrigger params with old ones
6799+ for _, childTrigger := range childWorkflow.Triggers {
6800+ log.Printf("[DEBUG] Trigger %s (%s) has %d parameters", childTrigger.Label, childTrigger.ID, len(childTrigger.Parameters))
6801+ for _, param := range childTrigger.Parameters {
6802+ log.Printf("%+v", childTrigger.Parameters)
6803+ log.Printf("[DEBUG] Trigger %s (%s) param %s: %s", childTrigger.Label, childTrigger.ID, param.Name, param.Value)
6804+ }
6805+ }
6806+
6807+ for _, newTrigger := range newTriggers {
6808+ log.Printf("[DEBUG] New Trigger %s (%s) has %d parameters", newTrigger.Label, newTrigger.ID, len(newTrigger.Parameters))
6809+ for _, param := range newTrigger.Parameters {
6810+ log.Printf("%+v", newTrigger.Parameters)
6811+ log.Printf("[DEBUG] New Trigger %s (%s) param %s: %s", newTrigger.Label, newTrigger.ID, param.Name, param.Value)
6812+ }
6813+ }
6814+
68006815 childWorkflow.Actions = newActions
68016816 childWorkflow.Triggers = newTriggers
68026817 childWorkflow.Branches = newBranches
@@ -9640,32 +9655,30 @@ func GenerateWorkflowFromParent(ctx context.Context, workflow Workflow, parentOr
96409655 }
96419656 }
96429657
9643- for actionIndex, _ := range workflow .Actions {
9658+ for actionIndex, _ := range newWf .Actions {
96449659 workflow.Actions[actionIndex].ParentControlled = true
96459660 workflow.Actions[actionIndex].AuthenticationId = ""
96469661 workflow.Actions[actionIndex].Environment = defaultEnvironment
96479662 }
96489663
9649- for triggerIndex, _ := range workflow .Triggers {
9650- workflow .Triggers[triggerIndex].ParentControlled = true
9651- workflow .Triggers[triggerIndex].Environment = defaultEnvironment
9664+ for triggerIndex, _ := range newWf .Triggers {
9665+ newWf .Triggers[triggerIndex].ParentControlled = true
9666+ newWf .Triggers[triggerIndex].Environment = defaultEnvironment
96529667
96539668 // FIXME: How do we manage secondary IDs?
96549669 // E.g. for webhooks, how do we have a URL correctly, and start/stop properly?
9655-
9656- workflow.Triggers[triggerIndex].Status = "uninitialized"
9657- if workflow.Triggers[triggerIndex].TriggerType == "WEBHOOK" {
9658- for paramIndex, param := range workflow.Triggers[triggerIndex].Parameters {
9670+ newWf.Triggers[triggerIndex].Status = "uninitialized"
9671+ if newWf.Triggers[triggerIndex].TriggerType == "WEBHOOK" {
9672+ for paramIndex, param := range newWf.Triggers[triggerIndex].Parameters {
96599673 if param.Name == "url" {
9660- workflow .Triggers[triggerIndex].Parameters[paramIndex].Value = ""
9674+ newWf .Triggers[triggerIndex].Parameters[paramIndex].Value = ""
96619675 }
96629676
96639677 if param.Name == "tmp" {
9664- workflow .Triggers[triggerIndex].Parameters[paramIndex].Value = ""
9678+ newWf .Triggers[triggerIndex].Parameters[paramIndex].Value = ""
96659679 }
96669680 }
96679681 }
9668-
96699682 }
96709683
96719684 err = SetWorkflow(ctx, newWf, newWf.ID)
0 commit comments