Skip to content

Commit 8295a9d

Browse files
authored
fix(api): event username should be consumer name for services (#5390)
1 parent 516b73a commit 8295a9d

14 files changed

+89
-64
lines changed

engine/api/ascode/sync.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import (
55

66
"github.com/go-gorp/gorp"
77

8-
"github.com/ovh/cds/engine/cache"
98
"github.com/ovh/cds/engine/api/event"
109
"github.com/ovh/cds/engine/api/repositoriesmanager"
10+
"github.com/ovh/cds/engine/cache"
1111
"github.com/ovh/cds/sdk"
1212
"github.com/ovh/cds/sdk/log"
1313
)

engine/api/permission/dao.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func scanPermissions(rows *sql.Rows) (sdk.EntitiesPermissions, error) {
119119
}
120120

121121
// AccessToWorkflowNode check rights on the given workflow node
122-
func AccessToWorkflowNode(ctx context.Context, db gorp.SqlExecutor, wf *sdk.Workflow, wn *sdk.Node, u *sdk.AuthConsumer, access int) bool {
122+
func AccessToWorkflowNode(ctx context.Context, db gorp.SqlExecutor, wf *sdk.Workflow, wn *sdk.Node, u sdk.AuthConsumer, access int) bool {
123123
if wn == nil {
124124
return false
125125
}

engine/api/repositories_manager_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ vcs_ssh_key: proj-blabla
241241
"git.author": "test",
242242
},
243243
},
244-
}, consumer, nil)
244+
}, *consumer, nil)
245245
test.NoError(t, errWr)
246246

247247
vars := map[string]string{

engine/api/workflow/dao_run.go

+13-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717

1818
"github.com/ovh/cds/engine/api/authentication"
1919
"github.com/ovh/cds/engine/api/database/gorpmapping"
20+
"github.com/ovh/cds/engine/api/services"
2021
"github.com/ovh/cds/sdk"
2122
"github.com/ovh/cds/sdk/log"
2223
"github.com/ovh/cds/sdk/telemetry"
@@ -595,7 +596,7 @@ func InsertRunNum(db gorp.SqlExecutor, w *sdk.Workflow, num int64) error {
595596

596597
func LoadCratingWorkflowRunIDs(db gorp.SqlExecutor) ([]int64, error) {
597598
query := `
598-
SELECT id
599+
SELECT id
599600
FROM workflow_run
600601
WHERE to_craft = true
601602
LIMIT 10
@@ -647,10 +648,20 @@ func CreateRun(db *gorp.DbMap, wf *sdk.Workflow, opts sdk.WorkflowRunPostHandler
647648
wr.Tag(tagTriggeredBy, "cds.hook")
648649
}
649650
} else {
650-
c, err := authentication.LoadConsumerByID(context.Background(), db, opts.AuthConsumerID, authentication.LoadConsumerOptions.WithAuthentifiedUser, authentication.LoadConsumerOptions.WithConsumerGroups)
651+
c, err := authentication.LoadConsumerByID(context.Background(), db, opts.AuthConsumerID,
652+
authentication.LoadConsumerOptions.WithAuthentifiedUser,
653+
authentication.LoadConsumerOptions.WithConsumerGroups)
651654
if err != nil {
652655
return nil, err
653656
}
657+
658+
// Add service for consumer if exists
659+
s, err := services.LoadByConsumerID(context.Background(), db, c.ID)
660+
if err != nil && !sdk.ErrorIs(err, sdk.ErrNotFound) {
661+
return nil, err
662+
}
663+
c.Service = s
664+
654665
wr.Tag(tagTriggeredBy, c.GetUsername())
655666
}
656667

engine/api/workflow/dao_run_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ vcs_ssh_key: proj-blabla
242242
"git.author": "test",
243243
},
244244
},
245-
}, consumer, nil)
245+
}, *consumer, nil)
246246
test.NoError(t, errWr)
247247
}
248248

@@ -329,7 +329,7 @@ func TestPurgeWorkflowRunWithRunningStatus(t *testing.T) {
329329
"git.author": "test",
330330
},
331331
},
332-
}, consumer, nil)
332+
}, *consumer, nil)
333333
test.NoError(t, errWr)
334334
wfr.Status = sdk.StatusBuilding
335335
test.NoError(t, workflow.UpdateWorkflowRunStatus(db, wfr))
@@ -516,7 +516,7 @@ vcs_ssh_key: proj-blabla
516516
"git.author": "test",
517517
},
518518
},
519-
}, consumer, nil)
519+
}, *consumer, nil)
520520
test.NoError(t, errWr)
521521

522522
for i := 0; i < 5; i++ {
@@ -531,7 +531,7 @@ vcs_ssh_key: proj-blabla
531531
"git.author": "test",
532532
},
533533
},
534-
}, consumer, nil)
534+
}, *consumer, nil)
535535
test.NoError(t, errWr)
536536

537537
wfr.Status = sdk.StatusFail
@@ -708,7 +708,7 @@ vcs_ssh_key: proj-blabla
708708
"git.author": "test",
709709
},
710710
},
711-
}, consumer, nil)
711+
}, *consumer, nil)
712712
test.NoError(t, errWr)
713713

714714
wfr.Status = sdk.StatusFail
@@ -800,7 +800,7 @@ func TestPurgeWorkflowRunWithoutTags(t *testing.T) {
800800
"git.author": "test",
801801
},
802802
},
803-
}, consumer, nil)
803+
}, *consumer, nil)
804804
test.NoError(t, errWr)
805805
}
806806

@@ -886,7 +886,7 @@ func TestPurgeWorkflowRunWithoutTagsBiggerHistoryLength(t *testing.T) {
886886
"git.author": "test",
887887
},
888888
},
889-
}, consumer, nil)
889+
}, *consumer, nil)
890890
test.NoError(t, errWr)
891891
}
892892

engine/api/workflow/dao_staticfiles_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func TestInsertStaticFiles(t *testing.T) {
8686
wfr.Workflow = *w1
8787
_, errWr := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wfr, &sdk.WorkflowRunPostHandlerOption{
8888
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
89-
}, consumer, nil)
89+
}, *consumer, nil)
9090
test.NoError(t, errWr)
9191

9292
var stFile sdk.StaticFiles

engine/api/workflow/process_node_test.go

+13-13
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ func TestHookRunWithoutPayloadProcessNodeBuildParameter(t *testing.T) {
214214
assert.NoError(t, err)
215215
wr.Workflow = w
216216

217-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &opts, consumer, nil)
217+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &opts, *consumer, nil)
218218
assert.NoError(t, errR)
219219

220220
assert.Equal(t, 1, len(wr.WorkflowNodeRuns))
@@ -399,7 +399,7 @@ func TestHookRunWithHashOnlyProcessNodeBuildParameter(t *testing.T) {
399399
assert.NoError(t, err)
400400
wr.Workflow = w
401401

402-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
402+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
403403
assert.NoError(t, errR)
404404

405405
assert.Equal(t, 1, len(wr.WorkflowNodeRuns))
@@ -552,7 +552,7 @@ func TestManualRunWithPayloadProcessNodeBuildParameter(t *testing.T) {
552552
assert.NoError(t, err)
553553
wr.Workflow = w
554554

555-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
555+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
556556
assert.NoError(t, errR)
557557

558558
assert.Equal(t, 1, len(wr.WorkflowNodeRuns))
@@ -699,7 +699,7 @@ func TestManualRunBranchAndCommitInPayloadProcessNodeBuildParameter(t *testing.T
699699
assert.NoError(t, err)
700700
wr.Workflow = w
701701

702-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
702+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
703703
assert.NoError(t, errR)
704704

705705
assert.Equal(t, 1, len(wr.WorkflowNodeRuns))
@@ -927,7 +927,7 @@ func TestManualRunBranchAndRepositoryInPayloadProcessNodeBuildParameter(t *testi
927927
assert.NoError(t, err)
928928
wr.Workflow = w
929929

930-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
930+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
931931
assert.NoError(t, errR)
932932

933933
mapParams := sdk.ParametersToMap(wr.WorkflowNodeRuns[w.WorkflowData.Node.ID][0].BuildParameters)
@@ -1162,7 +1162,7 @@ func TestManualRunBuildParameterMultiApplication(t *testing.T) {
11621162
assert.NoError(t, err)
11631163
wr.Workflow = w
11641164

1165-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
1165+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
11661166
assert.NoError(t, errR)
11671167

11681168
assert.Equal(t, 3, len(wr.WorkflowNodeRuns))
@@ -1407,7 +1407,7 @@ func TestManualRunBuildParameterNoApplicationOnRoot(t *testing.T) {
14071407
assert.NoError(t, err)
14081408
wr.Workflow = w
14091409

1410-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
1410+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
14111411
assert.NoError(t, errR)
14121412

14131413
assert.Equal(t, 3, len(wr.WorkflowNodeRuns))
@@ -1598,7 +1598,7 @@ func TestGitParamOnPipelineWithoutApplication(t *testing.T) {
15981598
assert.NoError(t, err)
15991599
wr.Workflow = w
16001600

1601-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
1601+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
16021602
assert.NoError(t, errR)
16031603

16041604
// Load run
@@ -1785,7 +1785,7 @@ func TestGitParamOnApplicationWithoutRepo(t *testing.T) {
17851785
assert.NoError(t, err)
17861786
wr.Workflow = w
17871787

1788-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
1788+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
17891789
assert.NoError(t, errR)
17901790

17911791
assert.Equal(t, 2, len(wr.WorkflowNodeRuns))
@@ -1983,7 +1983,7 @@ func TestGitParamOn2ApplicationSameRepo(t *testing.T) {
19831983
assert.NoError(t, err)
19841984
wr.Workflow = w
19851985

1986-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
1986+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
19871987
assert.NoError(t, errR)
19881988

19891989
assert.Equal(t, 2, len(wr.WorkflowNodeRuns))
@@ -2195,7 +2195,7 @@ func TestGitParamWithJoin(t *testing.T) {
21952195
assert.NoError(t, err)
21962196
wr.Workflow = w
21972197

2198-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
2198+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
21992199
assert.NoError(t, errR)
22002200

22012201
assert.Equal(t, 3, len(wr.WorkflowNodeRuns))
@@ -2414,7 +2414,7 @@ func TestGitParamOn2ApplicationSameRepoWithFork(t *testing.T) {
24142414
assert.NoError(t, err)
24152415
wr.Workflow = w
24162416

2417-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
2417+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
24182418
assert.NoError(t, errR)
24192419

24202420
assert.Equal(t, 3, len(wr.WorkflowNodeRuns))
@@ -2606,7 +2606,7 @@ func TestManualRunWithPayloadAndRunCondition(t *testing.T) {
26062606
assert.NoError(t, err)
26072607
wr.Workflow = w
26082608

2609-
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, consumer, nil)
2609+
_, errR := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, opts, *consumer, nil)
26102610
assert.NoError(t, errR)
26112611

26122612
assert.Equal(t, 2, len(wr.WorkflowNodeRuns))

engine/api/workflow/process_start_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func TestProcessJoinDefaultCondition(t *testing.T) {
6161
require.NoError(t, workflow.UpdateWorkflowRun(context.TODO(), db, wr))
6262

6363
// Start workflow
64-
_, err = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{Manual: &sdk.WorkflowNodeRunManual{}}, consumer, nil)
64+
_, err = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{Manual: &sdk.WorkflowNodeRunManual{}}, *consumer, nil)
6565
require.NoError(t, err)
6666

6767
wrUpdated, err := workflow.LoadRun(context.TODO(), db, proj.Key, wr.Workflow.Name, wr.Number, workflow.LoadRunOptions{})
@@ -132,7 +132,7 @@ func TestProcessJoinCustomCondition(t *testing.T) {
132132
require.NoError(t, workflow.UpdateWorkflowRun(context.TODO(), db, wr))
133133

134134
// Start run
135-
_, err = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{Manual: &sdk.WorkflowNodeRunManual{}}, consumer, nil)
135+
_, err = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{Manual: &sdk.WorkflowNodeRunManual{}}, *consumer, nil)
136136
require.NoError(t, err)
137137

138138
wrUpdated, err := workflow.LoadRun(context.TODO(), db, proj.Key, wr.Workflow.Name, wr.Number, workflow.LoadRunOptions{})

engine/api/workflow/run_workflow.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"context"
55
"time"
66

7-
"github.com/ovh/cds/engine/cache"
87
"github.com/ovh/cds/engine/api/permission"
8+
"github.com/ovh/cds/engine/cache"
99
"github.com/ovh/cds/engine/gorpmapper"
1010
"github.com/ovh/cds/sdk"
1111
"github.com/ovh/cds/sdk/telemetry"
@@ -93,7 +93,7 @@ func manualRunFromNode(ctx context.Context, db gorpmapper.SqlExecutorWithTx, sto
9393
}
9494

9595
func StartWorkflowRun(ctx context.Context, db gorpmapper.SqlExecutorWithTx, store cache.Store, proj sdk.Project, wr *sdk.WorkflowRun,
96-
opts *sdk.WorkflowRunPostHandlerOption, u *sdk.AuthConsumer, asCodeInfos []sdk.Message) (*ProcessorReport, error) {
96+
opts *sdk.WorkflowRunPostHandlerOption, u sdk.AuthConsumer, asCodeInfos []sdk.Message) (*ProcessorReport, error) {
9797
ctx, end := telemetry.Span(ctx, "api.startWorkflowRun")
9898
defer end()
9999

engine/api/workflow/run_workflow_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func TestManualRun1(t *testing.T) {
122122
"git.branch": "master",
123123
},
124124
},
125-
}, consumer, nil)
125+
}, *consumer, nil)
126126
require.NoError(t, errS)
127127

128128
wr2, errWR := workflow.CreateRun(db.DbMap, w1, sdk.WorkflowRunPostHandlerOption{AuthConsumerID: consumer.ID})
@@ -132,7 +132,7 @@ func TestManualRun1(t *testing.T) {
132132
Manual: &sdk.WorkflowNodeRunManual{
133133
Username: u.Username,
134134
},
135-
}, consumer, nil)
135+
}, *consumer, nil)
136136
require.NoError(t, errS)
137137

138138
//LoadLastRun
@@ -165,7 +165,7 @@ func TestManualRun1(t *testing.T) {
165165
Username: u.Username,
166166
},
167167
FromNodeIDs: []int64{wr2.Workflow.WorkflowData.Node.ID},
168-
}, consumer, nil)
168+
}, *consumer, nil)
169169
require.NoError(t, errS)
170170

171171
//TestLoadRuns
@@ -275,21 +275,21 @@ func TestManualRun2(t *testing.T) {
275275
wr.Workflow = *w1
276276
_, errS := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{
277277
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
278-
}, consumer, nil)
278+
}, *consumer, nil)
279279
require.NoError(t, errS)
280280

281281
wr2, errWR := workflow.CreateRun(db.DbMap, w1, sdk.WorkflowRunPostHandlerOption{AuthConsumerID: consumer.ID})
282282
assert.NoError(t, errWR)
283283
wr2.Workflow = *w1
284284
_, errS = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr2, &sdk.WorkflowRunPostHandlerOption{
285285
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
286-
}, consumer, nil)
286+
}, *consumer, nil)
287287
require.NoError(t, errS)
288288

289289
_, errS = workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{
290290
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
291291
FromNodeIDs: []int64{wr.Workflow.WorkflowData.Node.ID},
292-
}, consumer, nil)
292+
}, *consumer, nil)
293293
require.NoError(t, errS)
294294

295295
filter := workflow.NewQueueFilter()
@@ -547,7 +547,7 @@ func TestManualRun3(t *testing.T) {
547547
wr.Workflow = *w1
548548
_, errS := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{
549549
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
550-
}, consumer, nil)
550+
}, *consumer, nil)
551551
require.NoError(t, errS)
552552

553553
filter := workflow.NewQueueFilter()
@@ -856,7 +856,7 @@ func TestNoStage(t *testing.T) {
856856
wr.Workflow = *w1
857857
_, errS := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{
858858
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
859-
}, consumer, nil)
859+
}, *consumer, nil)
860860
require.NoError(t, errS)
861861

862862
lastrun, err := workflow.LoadLastRun(db, proj.Key, "test_1", workflow.LoadRunOptions{})
@@ -932,7 +932,7 @@ func TestNoJob(t *testing.T) {
932932
wr.Workflow = *w1
933933
_, errS := workflow.StartWorkflowRun(context.TODO(), db, cache, *proj, wr, &sdk.WorkflowRunPostHandlerOption{
934934
Manual: &sdk.WorkflowNodeRunManual{Username: u.Username},
935-
}, consumer, nil)
935+
}, *consumer, nil)
936936
require.NoError(t, errS)
937937

938938
lastrun, err := workflow.LoadLastRun(db, proj.Key, "test_1", workflow.LoadRunOptions{})

0 commit comments

Comments
 (0)