Handle explicit task-level become override
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 3s
CI / auto-merge (push) Failing after 0s

This commit is contained in:
Virgil 2026-04-01 08:12:04 +00:00
parent 7013183629
commit 992230a1fe

View file

@ -13,14 +13,18 @@ import (
func (e *Executor) executeModule(ctx context.Context, host string, client *SSHClient, task *Task, play *Play) (*TaskResult, error) {
module := NormalizeModule(task.Module)
// Apply task-level become
if task.Become != nil && *task.Become {
// Save old state to restore
// Apply task-level become override.
if task.Become != nil {
// Save old state to restore.
oldBecome := client.become
oldUser := client.becomeUser
oldPass := client.becomePass
client.SetBecome(true, task.BecomeUser, "")
if *task.Become {
client.SetBecome(true, task.BecomeUser, "")
} else {
client.SetBecome(false, "", "")
}
defer client.SetBecome(oldBecome, oldUser, oldPass)
}