feat(ansible): add template lookup support
Some checks are pending
CI / auto-merge (push) Waiting to run
CI / test (push) Waiting to run
CI / auto-fix (push) Waiting to run

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-03 14:19:16 +00:00
parent bae7fa0a39
commit 3eca6b15cb
2 changed files with 16 additions and 0 deletions

View file

@ -3612,6 +3612,10 @@ func (e *Executor) lookupValue(expr string, host string, task *Task) (any, bool)
if data, err := coreio.Local.Read(e.resolveLocalPath(arg)); err == nil { if data, err := coreio.Local.Read(e.resolveLocalPath(arg)); err == nil {
return data, true return data, true
} }
case "template":
if data, err := e.TemplateFile(arg, host, task); err == nil {
return data, true
}
case "fileglob": case "fileglob":
if matches, err := e.resolveFileGlob(arg); err == nil && len(matches) > 0 { if matches, err := e.resolveFileGlob(arg); err == nil && len(matches) > 0 {
return matches, true return matches, true

View file

@ -879,6 +879,18 @@ func TestExecutorExtra_HandleLookup_Good_FileLookupResolvesBasePath(t *testing.T
assert.Equal(t, "from base path", result) assert.Equal(t, "from base path", result)
} }
func TestExecutorExtra_HandleLookup_Good_TemplateLookupResolvesBasePathAndVars(t *testing.T) {
dir := t.TempDir()
require.NoError(t, writeTestFile(joinPath(dir, "templates", "message.j2"), []byte("Hello {{ name }}"), 0644))
e := NewExecutor(dir)
e.SetVar("name", "world")
result := e.handleLookup("lookup('template', 'templates/message.j2')", "host1", nil)
assert.Equal(t, "Hello world", result)
}
func TestExecutorExtra_HandleLookup_Good_VarsLookup(t *testing.T) { func TestExecutorExtra_HandleLookup_Good_VarsLookup(t *testing.T) {
e := NewExecutor("/tmp") e := NewExecutor("/tmp")
e.SetVar("lookup_value", "resolved from vars") e.SetVar("lookup_value", "resolved from vars")