diff --git a/core/task/task.go b/core/task/task.go index d7420a4e..9e379c31 100644 --- a/core/task/task.go +++ b/core/task/task.go @@ -242,10 +242,18 @@ func (t *Task) GetControlMode() controlmode.ControlMode { return controlmode.DIRECT } +func getTraits(role parentRole) Traits { + if role != nil { + return role.GetTaskTraits() + } + return Traits{} +} + func (t *Task) GetTraits() Traits { if class := t.GetTaskClass(); class != nil { - if t.GetParent() != nil { - return t.GetParent().GetTaskTraits() + parent := t.GetParent() + if parent != nil { + return getTraits(parent) } } return Traits{} @@ -525,7 +533,7 @@ func (t *Task) SendEvent(ev event.Event) { Hostname: t.hostname, ClassName: t.className, Path: t.getParentRolePath(), - Traits: traitsToPbTraits(t.GetTraits()), + Traits: traitsToPbTraits(getTraits(t.parent)), } if t.parent == nil {