From ab78a162963d55ca9b0e5c01ad18c72687ccc866 Mon Sep 17 00:00:00 2001 From: Guiheux Steven Date: Tue, 18 Jun 2019 10:07:35 +0200 Subject: [PATCH] fix(api): load keys on take job (#4386) --- engine/api/workflow/execute_node_job_run.go | 8 +++++++- engine/api/workflow_queue.go | 2 +- .../workflow/wizard/input/wizard.input.component.ts | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/engine/api/workflow/execute_node_job_run.go b/engine/api/workflow/execute_node_job_run.go index fd1031a2c4..590319d2f7 100644 --- a/engine/api/workflow/execute_node_job_run.go +++ b/engine/api/workflow/execute_node_job_run.go @@ -324,7 +324,7 @@ func checkStatusWaiting(store cache.Store, jobID int64, status string) error { } // LoadNodeJobRunKeys loads all keys for a job run -func LoadNodeJobRunKeys(p *sdk.Project, wr *sdk.WorkflowRun, nodeRun *sdk.WorkflowNodeRun) ([]sdk.Parameter, []sdk.Variable, error) { +func LoadNodeJobRunKeys(db gorp.SqlExecutor, p *sdk.Project, wr *sdk.WorkflowRun, nodeRun *sdk.WorkflowNodeRun) ([]sdk.Parameter, []sdk.Variable, error) { var app *sdk.Application var env *sdk.Environment @@ -333,12 +333,18 @@ func LoadNodeJobRunKeys(p *sdk.Project, wr *sdk.WorkflowRun, nodeRun *sdk.Workfl appMap, has := wr.Workflow.Applications[n.Context.ApplicationID] if has { app = &appMap + if err := application.LoadAllBase64Keys(db, app); err != nil { + return nil, nil, err + } } } if n.Context.EnvironmentID != 0 { envMap, has := wr.Workflow.Environments[n.Context.EnvironmentID] if has { env = &envMap + if err := environment.LoadAllBase64Keys(db, env); err != nil { + return nil, nil, err + } } } diff --git a/engine/api/workflow_queue.go b/engine/api/workflow_queue.go index a7716fc115..d2407b9b76 100644 --- a/engine/api/workflow_queue.go +++ b/engine/api/workflow_queue.go @@ -180,7 +180,7 @@ func takeJob(ctx context.Context, dbFunc func() *gorp.DbMap, store cache.Store, wnjri.SubNumber = noderun.SubNumber wnjri.Secrets = secrets - params, secretsKeys, errK := workflow.LoadNodeJobRunKeys(p, workflowRun, noderun) + params, secretsKeys, errK := workflow.LoadNodeJobRunKeys(tx, p, workflowRun, noderun) if errK != nil { return nil, sdk.WrapError(errK, "Cannot load keys") } diff --git a/ui/src/app/shared/workflow/wizard/input/wizard.input.component.ts b/ui/src/app/shared/workflow/wizard/input/wizard.input.component.ts index 59194c02b8..98db88362f 100644 --- a/ui/src/app/shared/workflow/wizard/input/wizard.input.component.ts +++ b/ui/src/app/shared/workflow/wizard/input/wizard.input.component.ts @@ -226,6 +226,11 @@ export class WorkflowWizardNodeInputComponent implements OnInit { n.context.default_payload = this.editableNode.context.default_payload; n.context.default_pipeline_parameters = this.editableNode.context.default_pipeline_parameters; + if (n.context.default_pipeline_parameters) { + n.context.default_pipeline_parameters.forEach(p => { + p.value = p.value.toString(); + }); + } this.store.dispatch(new UpdateWorkflow({ projectKey: this.workflow.project_key, workflowName: this.workflow.name,