From 0e3c126723121f29c3f413fe738e806c39a03e14 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 13:45:43 +0000 Subject: [PATCH] feat(ansible): expose play name magic var --- executor.go | 1 + executor_extra_test.go | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/executor.go b/executor.go index 149294e..01dc6d9 100644 --- a/executor.go +++ b/executor.go @@ -439,6 +439,7 @@ func (e *Executor) runPlay(ctx context.Context, play *Play) error { return nil // No hosts matched } e.endedHosts = make(map[string]bool) + e.vars["ansible_play_name"] = play.Name e.vars["ansible_play_hosts_all"] = append([]string(nil), hosts...) e.vars["ansible_play_hosts"] = append([]string(nil), hosts...) diff --git a/executor_extra_test.go b/executor_extra_test.go index 8cfd1b9..4626961 100644 --- a/executor_extra_test.go +++ b/executor_extra_test.go @@ -790,6 +790,7 @@ func TestExecutorExtra_RunPlay_Good_ExposesPlayMagicVars(t *testing.T) { e.clients["host2"] = NewMockSSHClient() play := &Play{ + Name: "Inspect play magic vars", Hosts: "all", Serial: 1, GatherFacts: &gatherFacts, @@ -798,7 +799,7 @@ func TestExecutorExtra_RunPlay_Good_ExposesPlayMagicVars(t *testing.T) { Name: "Inspect play magic vars", Module: "debug", Args: map[string]any{ - "msg": "{{ ansible_play_hosts_all }}|{{ ansible_play_hosts }}|{{ ansible_play_batch }}", + "msg": "{{ ansible_play_name }}|{{ ansible_play_hosts_all }}|{{ ansible_play_hosts }}|{{ ansible_play_batch }}", }, Register: "magic_vars", }, @@ -808,9 +809,9 @@ func TestExecutorExtra_RunPlay_Good_ExposesPlayMagicVars(t *testing.T) { require.NoError(t, e.runPlay(context.Background(), play)) require.NotNil(t, e.results["host1"]["magic_vars"]) - assert.Equal(t, "[host1 host2]|[host1 host2]|[host1]", e.results["host1"]["magic_vars"].Msg) + assert.Equal(t, "Inspect play magic vars|[host1 host2]|[host1 host2]|[host1]", e.results["host1"]["magic_vars"].Msg) require.NotNil(t, e.results["host2"]["magic_vars"]) - assert.Equal(t, "[host1 host2]|[host1 host2]|[host2]", e.results["host2"]["magic_vars"].Msg) + assert.Equal(t, "Inspect play magic vars|[host1 host2]|[host1 host2]|[host2]", e.results["host2"]["magic_vars"].Msg) } // ============================================================