docker_container: fix problem with published_ports idempotency (#46595)

* Fix comparisons for expected_ports (set vs dict).

* Added changelog.
This commit is contained in:
Felix Fontein 2018-10-08 09:41:15 +02:00 committed by John R Barker
parent 8afe46dc02
commit c5ea3d058e
2 changed files with 4 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- "docker_container - fix idempotency check for published_ports in some special cases."

View file

@ -1314,7 +1314,7 @@ class Container(DockerBaseClass):
self.parameters.expected_env = None
self.parameters_map = dict()
self.parameters_map['expected_links'] = 'links'
self.parameters_map['expected_ports'] = 'published_ports'
self.parameters_map['expected_ports'] = 'expected_ports'
self.parameters_map['expected_exposed'] = 'exposed_ports'
self.parameters_map['expected_volumes'] = 'volumes'
self.parameters_map['expected_ulimits'] = 'ulimits'
@ -2294,6 +2294,7 @@ class AnsibleDockerClientContainer(AnsibleDockerClient):
self.fail("Unknown comparison mode '%s'!" % value)
# Add implicit options
comparisons['publish_all_ports'] = dict(type='value', comparison='strict', name='published_ports')
comparisons['expected_ports'] = dict(type='dict', comparison=comparisons['published_ports']['comparison'], name='expected_ports')
# Check legacy values
if self.module.params['ignore_image'] and comparisons['image']['comparison'] != 'ignore':
self.module.warn('The ignore_image option has been overridden by the comparisons option!')