mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 11:55:04 +00:00
docker_compose: fix idempotency for stopped services (#159)
* Always use |= instead of = when updating changed status. * Fix idempotence bug. * Add changelog fragment.
This commit is contained in:
@@ -730,12 +730,12 @@ class ContainerManager(DockerBaseClass):
|
||||
|
||||
if self.pull:
|
||||
pull_output = self.cmd_pull()
|
||||
result['changed'] = pull_output['changed']
|
||||
result['changed'] |= pull_output['changed']
|
||||
result['actions'] += pull_output['actions']
|
||||
|
||||
if self.build:
|
||||
build_output = self.cmd_build()
|
||||
result['changed'] = build_output['changed']
|
||||
result['changed'] |= build_output['changed']
|
||||
result['actions'] += build_output['actions']
|
||||
|
||||
if self.remove_orphans:
|
||||
@@ -760,6 +760,10 @@ class ContainerManager(DockerBaseClass):
|
||||
for service in self.project.services:
|
||||
if not service_names or service.name in service_names:
|
||||
plan = service.convergence_plan(strategy=converge)
|
||||
if plan.action == 'start' and self.stopped:
|
||||
# In case the only action is starting, and the user requested
|
||||
# that the service should be stopped, ignore this service.
|
||||
continue
|
||||
if plan.action != 'noop':
|
||||
result['changed'] = True
|
||||
result_action = dict(service=service.name)
|
||||
@@ -802,12 +806,12 @@ class ContainerManager(DockerBaseClass):
|
||||
|
||||
if self.restarted:
|
||||
restart_output = self.cmd_restart(service_names)
|
||||
result['changed'] = restart_output['changed']
|
||||
result['changed'] |= restart_output['changed']
|
||||
result['actions'] += restart_output['actions']
|
||||
|
||||
if self.scale:
|
||||
scale_output = self.cmd_scale()
|
||||
result['changed'] = scale_output['changed']
|
||||
result['changed'] |= scale_output['changed']
|
||||
result['actions'] += scale_output['actions']
|
||||
|
||||
for service in self.project.services:
|
||||
|
||||
Reference in New Issue
Block a user