@@ -11,6 +11,7 @@ import (
11
11
"github.com/ovh/venom"
12
12
"github.com/sguiheux/go-coverage"
13
13
14
+ "github.com/ovh/cds/engine/api/authentication"
14
15
"github.com/ovh/cds/engine/api/cache"
15
16
"github.com/ovh/cds/engine/api/event"
16
17
"github.com/ovh/cds/engine/api/group"
@@ -39,6 +40,21 @@ func (api *API) postTakeWorkflowJobHandler() service.Handler {
39
40
return sdk .WithStack (sdk .ErrForbidden )
40
41
}
41
42
43
+ consumer := getAPIConsumer (ctx )
44
+ // Locking for the parent consumer
45
+ var hatcheryName string
46
+ if consumer .ParentID != nil {
47
+ parentConsumer , err := authentication .LoadConsumerByID (ctx , api .mustDB (), * consumer .ParentID )
48
+ if err != nil {
49
+ return err
50
+ }
51
+ s , err := services .LoadByConsumerID (ctx , api .mustDB (), parentConsumer .ID )
52
+ if err != nil {
53
+ return err
54
+ }
55
+ hatcheryName = s .Name
56
+ }
57
+
42
58
wk , err := worker .LoadByID (ctx , api .mustDB (), getAPIConsumer (ctx ).Worker .ID )
43
59
if err != nil {
44
60
return err
@@ -77,7 +93,7 @@ func (api *API) postTakeWorkflowJobHandler() service.Handler {
77
93
}
78
94
79
95
pbji := & sdk.WorkflowNodeJobRunData {}
80
- report , err := takeJob (ctx , api .mustDB , api .Cache , p , id , workerModelName , pbji , wk )
96
+ report , err := takeJob (ctx , api .mustDB , api .Cache , p , id , workerModelName , pbji , wk , hatcheryName )
81
97
if err != nil {
82
98
return sdk .WrapError (err , "cannot takeJob nodeJobRunID:%d" , id )
83
99
}
@@ -89,7 +105,7 @@ func (api *API) postTakeWorkflowJobHandler() service.Handler {
89
105
}
90
106
}
91
107
92
- func takeJob (ctx context.Context , dbFunc func () * gorp.DbMap , store cache.Store , p * sdk.Project , id int64 , workerModel string , wnjri * sdk.WorkflowNodeJobRunData , wk * sdk.Worker ) (* workflow.ProcessorReport , error ) {
108
+ func takeJob (ctx context.Context , dbFunc func () * gorp.DbMap , store cache.Store , p * sdk.Project , id int64 , workerModel string , wnjri * sdk.WorkflowNodeJobRunData , wk * sdk.Worker , hatcheryName string ) (* workflow.ProcessorReport , error ) {
93
109
// Start a tx
94
110
tx , errBegin := dbFunc ().Begin ()
95
111
if errBegin != nil {
@@ -110,7 +126,7 @@ func takeJob(ctx context.Context, dbFunc func() *gorp.DbMap, store cache.Store,
110
126
}
111
127
112
128
// Take node job run
113
- job , report , err := workflow .TakeNodeJobRun (ctx , tx , store , * p , id , workerModel , wk .Name , wk .ID , infos )
129
+ job , report , err := workflow .TakeNodeJobRun (ctx , tx , store , * p , id , workerModel , wk .Name , wk .ID , infos , hatcheryName )
114
130
if err != nil {
115
131
return nil , sdk .WrapError (err , "cannot take job %d" , id )
116
132
}
0 commit comments