fix(ansible): detect up-to-date docker compose runs
This commit is contained in:
parent
fba61dbc5a
commit
f5e66b556b
2 changed files with 20 additions and 1 deletions
|
|
@ -2185,7 +2185,10 @@ func (e *Executor) moduleDockerCompose(ctx context.Context, client sshExecutorCl
|
|||
}
|
||||
|
||||
// Heuristic for changed
|
||||
changed := !contains(stdout, "Up to date") && !contains(stderr, "Up to date")
|
||||
changed := true
|
||||
if contains(stdout, "Up to date") || contains(stderr, "Up to date") {
|
||||
changed = false
|
||||
}
|
||||
|
||||
return &TaskResult{Changed: changed, Stdout: stdout}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1128,6 +1128,22 @@ func TestModulesAdv_ModuleDockerCompose_Good_DefaultStateIsPresent(t *testing.T)
|
|||
assert.True(t, mock.hasExecuted(`docker compose up -d`))
|
||||
}
|
||||
|
||||
func TestModulesAdv_ModuleDockerCompose_Production_Good_AlreadyUpToDate(t *testing.T) {
|
||||
e := NewExecutor("/tmp")
|
||||
mock := NewMockSSHClient()
|
||||
mock.expectCommand(`docker compose up -d`, "Container myapp-web-1 Up to date\n", "", 0)
|
||||
|
||||
result, err := e.moduleDockerCompose(context.Background(), mock, map[string]any{
|
||||
"project_src": "/opt/myapp",
|
||||
"state": "present",
|
||||
})
|
||||
|
||||
require.NoError(t, err)
|
||||
assert.False(t, result.Changed)
|
||||
assert.False(t, result.Failed)
|
||||
assert.Equal(t, "Container myapp-web-1 Up to date\n", result.Stdout)
|
||||
}
|
||||
|
||||
// --- Cross-module dispatch tests for advanced modules ---
|
||||
|
||||
func TestModulesAdv_ExecuteModuleWithMock_Good_DispatchUser(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue