Skip to content

Commit 8f24b05

Browse files
committed
[core] Ensure consolidated defaults/vars/userVars are sent back
1 parent aa36b74 commit 8f24b05

4 files changed

Lines changed: 51 additions & 10 deletions

File tree

core/server.go

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,16 +209,24 @@ func (m *RpcServer) GetEnvironments(cxt context.Context, request *pb.GetEnvironm
209209
continue
210210
}
211211
tasks := env.Workflow().GetTasks()
212+
var defaults, vars, userVars map[string]string
213+
defaults, vars, userVars, err = env.Workflow().ConsolidatedVarMaps()
214+
if err != nil {
215+
defaults = env.GlobalDefaults.Raw()
216+
vars = env.GlobalVars.Raw()
217+
userVars = env.UserVars.Raw()
218+
}
219+
212220
e := &pb.EnvironmentInfo{
213221
Id: env.Id().String(),
214222
CreatedWhen: env.CreatedWhen().UnixMilli(),
215223
State: env.CurrentState(),
216224
RootRole: env.Workflow().GetName(),
217225
Description: env.Description,
218226
CurrentRunNumber: env.GetCurrentRunNumber(),
219-
Defaults: env.GlobalDefaults.Raw(),
220-
Vars: env.GlobalVars.Raw(),
221-
UserVars: env.UserVars.Raw(),
227+
Defaults: defaults,
228+
Vars: vars,
229+
UserVars: userVars,
222230
NumberOfFlps: int32(len(env.GetFLPs())),
223231
NumberOfHosts: int32(len(env.GetAllHosts())),
224232
}
@@ -300,6 +308,14 @@ func (m *RpcServer) NewEnvironment(cxt context.Context, request *pb.NewEnvironme
300308
}
301309

302310
tasks := newEnv.Workflow().GetTasks()
311+
var defaults, vars, userVars map[string]string
312+
defaults, vars, userVars, err = newEnv.Workflow().ConsolidatedVarMaps()
313+
if err != nil {
314+
defaults = newEnv.GlobalDefaults.Raw()
315+
vars = newEnv.GlobalVars.Raw()
316+
userVars = newEnv.UserVars.Raw()
317+
}
318+
303319
ei := &pb.EnvironmentInfo{
304320
Id: newEnv.Id().String(),
305321
CreatedWhen: newEnv.CreatedWhen().UnixMilli(),
@@ -308,9 +324,9 @@ func (m *RpcServer) NewEnvironment(cxt context.Context, request *pb.NewEnvironme
308324
RootRole: newEnv.Workflow().GetName(),
309325
Description: newEnv.Description,
310326
CurrentRunNumber: newEnv.GetCurrentRunNumber(),
311-
Defaults: newEnv.GlobalDefaults.Raw(),
312-
Vars: newEnv.GlobalVars.Raw(),
313-
UserVars: newEnv.UserVars.Raw(),
327+
Defaults: defaults,
328+
Vars: vars,
329+
UserVars: userVars,
314330
NumberOfFlps: int32(len(newEnv.GetFLPs())),
315331
NumberOfHosts: int32(len(newEnv.GetAllHosts())),
316332
IncludedDetectors: newEnv.GetActiveDetectors().StringList(),
@@ -342,6 +358,13 @@ func (m *RpcServer) GetEnvironment(cxt context.Context, req *pb.GetEnvironmentRe
342358
}
343359

344360
tasks := env.Workflow().GetTasks()
361+
var defaults, vars, userVars map[string]string
362+
defaults, vars, userVars, err = env.Workflow().ConsolidatedVarMaps()
363+
if err != nil {
364+
defaults = env.GlobalDefaults.Raw()
365+
vars = env.GlobalVars.Raw()
366+
userVars = env.UserVars.Raw()
367+
}
345368
reply = &pb.GetEnvironmentReply{
346369
Environment: &pb.EnvironmentInfo{
347370
Id: env.Id().String(),
@@ -351,9 +374,9 @@ func (m *RpcServer) GetEnvironment(cxt context.Context, req *pb.GetEnvironmentRe
351374
RootRole: env.Workflow().GetName(),
352375
Description: env.Description,
353376
CurrentRunNumber: env.GetCurrentRunNumber(),
354-
Defaults: env.GlobalDefaults.Raw(),
355-
Vars: env.GlobalVars.Raw(),
356-
UserVars: env.UserVars.Raw(),
377+
Defaults: defaults,
378+
Vars: vars,
379+
UserVars: userVars,
357380
NumberOfFlps: int32(len(env.GetFLPs())),
358381
NumberOfHosts: int32(len(env.GetAllHosts())),
359382
},
@@ -394,7 +417,7 @@ func (m *RpcServer) ControlEnvironment(cxt context.Context, req *pb.ControlEnvir
394417
td := eot.Sub(sot)
395418

396419
if err != nil {
397-
err := env.TryTransition(environment.NewGoErrorTransition(m.state.taskman))
420+
err = env.TryTransition(environment.NewGoErrorTransition(m.state.taskman))
398421
if err != nil {
399422
log.WithField("partition", env.Id()).Warnf("could not complete requested GO_ERROR transition, forcing move to ERROR: %s", err.Error())
400423
env.Sm.SetState("ERROR")

core/workflow/iteratorrole.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ func (i *iteratorRole) ConsolidatedVarStack() (varStack map[string]string, err e
227227
return nil, errors.New("iterator has no stack")
228228
}
229229

230+
func (r *iteratorRole) ConsolidatedVarMaps() (defaults map[string]string, vars map[string]string, userVars map[string]string, err error) {
231+
return nil, nil, nil, nil
232+
}
233+
230234
func (i *iteratorRole) GetParent() Updatable {
231235
if i == nil || i.template == nil {
232236
return nil

core/workflow/role.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ type Role interface {
6767
IsEnabled() bool
6868
GetCurrentRunNumber() uint32
6969
ConsolidatedVarStack() (varStack map[string]string, err error)
70+
ConsolidatedVarMaps() (defaults, vars, userVars map[string]string, err error)
7071
GetEnvironmentId() uid.ID
7172
}
7273

core/workflow/rolebase.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,19 @@ func (r *roleBase) ConsolidatedVarStack() (varStack map[string]string, err error
142142
return
143143
}
144144

145+
func (r *roleBase) ConsolidatedVarMaps() (defaults map[string]string, vars map[string]string, userVars map[string]string, err error) {
146+
defaults, err = r.Defaults.Flattened()
147+
if err != nil {
148+
return
149+
}
150+
vars, err = r.Vars.Flattened()
151+
if err != nil {
152+
return
153+
}
154+
userVars, err = r.UserVars.Flattened()
155+
return
156+
}
157+
145158
func (r *roleBase) makeBuildObjectStackFunc() template.BuildObjectStackFunc {
146159
return func(stage template.Stage) map[string]interface{} {
147160
type wfNode struct {

0 commit comments

Comments
 (0)