docker_swarm: add diff support (#52947)
* Add diff support to docker_swarm. * Add changelog. * Using diff mode for docker_swarm tests. This improves debugging, since the the module now outputs more information on *why* it did certain actions.
This commit is contained in:
parent
84cc5202db
commit
bf3c291606
3 changed files with 33 additions and 0 deletions
2
changelogs/fragments/52947-docker_swarm-diff.yaml
Normal file
2
changelogs/fragments/52947-docker_swarm-diff.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- "docker_swarm - module now supports ``--diff`` mode."
|
|
@ -391,6 +391,11 @@ class SwarmManager(DockerBaseClass):
|
|||
|
||||
choice_map.get(self.state)()
|
||||
|
||||
if self.client.module._diff or self.parameters.debug:
|
||||
diff = dict()
|
||||
diff['before'], diff['after'] = self.differences.get_before_after()
|
||||
self.results['diff'] = diff
|
||||
|
||||
def __isSwarmManager(self):
|
||||
try:
|
||||
data = self.client.inspect_swarm()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
docker_swarm:
|
||||
state: absent
|
||||
force: true
|
||||
diff: no
|
||||
|
||||
- name: Test parameters with state=join
|
||||
docker_swarm:
|
||||
|
@ -34,18 +35,21 @@
|
|||
state: present
|
||||
advertise_addr: "{{ansible_default_ipv4.address}}"
|
||||
check_mode: yes
|
||||
diff: yes
|
||||
register: output_1
|
||||
|
||||
- name: Create a Swarm cluster
|
||||
docker_swarm:
|
||||
state: present
|
||||
advertise_addr: "{{ansible_default_ipv4.address}}"
|
||||
diff: yes
|
||||
register: output_2
|
||||
|
||||
- name: Create a Swarm cluster (idempotent)
|
||||
docker_swarm:
|
||||
state: present
|
||||
advertise_addr: "{{ansible_default_ipv4.address}}"
|
||||
diff: yes
|
||||
register: output_3
|
||||
|
||||
- name: Create a Swarm cluster (idempotent, check mode)
|
||||
|
@ -53,36 +57,48 @@
|
|||
state: present
|
||||
advertise_addr: "{{ansible_default_ipv4.address}}"
|
||||
check_mode: yes
|
||||
diff: yes
|
||||
register: output_4
|
||||
|
||||
- name: assert changed when create a new swarm cluster
|
||||
assert:
|
||||
that:
|
||||
- 'output_1 is changed'
|
||||
- 'output_1.diff.before is defined'
|
||||
- 'output_1.diff.after is defined'
|
||||
- 'output_2 is changed'
|
||||
- 'output_2.actions[0] | regex_search("New Swarm cluster created: ")'
|
||||
- 'output_2.swarm_facts.JoinTokens.Manager'
|
||||
- 'output_2.swarm_facts.JoinTokens.Worker'
|
||||
- 'output_2.diff.before is defined'
|
||||
- 'output_2.diff.after is defined'
|
||||
- 'output_3 is not changed'
|
||||
- 'output_3.diff.before is defined'
|
||||
- 'output_3.diff.after is defined'
|
||||
- 'output_4 is not changed'
|
||||
- 'output_4.diff.before is defined'
|
||||
- 'output_4.diff.after is defined'
|
||||
|
||||
- name: Remove a Swarm cluster (check mode)
|
||||
docker_swarm:
|
||||
state: absent
|
||||
force: true
|
||||
check_mode: yes
|
||||
diff: yes
|
||||
register: output_1
|
||||
|
||||
- name: Remove a Swarm cluster
|
||||
docker_swarm:
|
||||
state: absent
|
||||
force: true
|
||||
diff: yes
|
||||
register: output_2
|
||||
|
||||
- name: Remove a Swarm cluster (idempotent)
|
||||
docker_swarm:
|
||||
state: absent
|
||||
force: true
|
||||
diff: yes
|
||||
register: output_3
|
||||
|
||||
- name: Remove a Swarm cluster (idempotent, check mode)
|
||||
|
@ -90,19 +106,29 @@
|
|||
state: absent
|
||||
force: true
|
||||
check_mode: yes
|
||||
diff: yes
|
||||
register: output_4
|
||||
|
||||
- name: assert changed when remove a swarm cluster
|
||||
assert:
|
||||
that:
|
||||
- 'output_1 is changed'
|
||||
- 'output_1.diff.before is defined'
|
||||
- 'output_1.diff.after is defined'
|
||||
- 'output_2 is changed'
|
||||
- 'output_2.actions[0] == "Node has left the swarm cluster"'
|
||||
- 'output_2.diff.before is defined'
|
||||
- 'output_2.diff.after is defined'
|
||||
- 'output_3 is not changed'
|
||||
- 'output_3.diff.before is defined'
|
||||
- 'output_3.diff.after is defined'
|
||||
- 'output_4 is not changed'
|
||||
- 'output_4.diff.before is defined'
|
||||
- 'output_4.diff.after is defined'
|
||||
|
||||
always:
|
||||
- name: Cleanup
|
||||
docker_swarm:
|
||||
state: absent
|
||||
force: true
|
||||
diff: no
|
||||
|
|
Loading…
Reference in a new issue