Skip to content

Commit

Permalink
docker_plugin: do not crash when plugin doesn't exist (ansible-collec…
Browse files Browse the repository at this point in the history
…tions#553)

* Do not crash when plugin doesn't exist.

* Improve style.

Co-authored-by: Brian Scholer <[email protected]>

Co-authored-by: Brian Scholer <[email protected]>
(cherry picked from commit c7cbec0)
  • Loading branch information
felixfontein committed Jan 13, 2023
1 parent f5c19b1 commit 5ee8004
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelogs/fragments/553-docker_plugin-check-mode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- "docker_plugin - do not crash if plugin is installed in check mode (https://github.com/ansible-collections/community.docker/issues/552, https://github.com/ansible-collections/community.docker/pull/553)."
9 changes: 8 additions & 1 deletion plugins/modules/docker_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,11 +333,18 @@ def disable(self):

@property
def result(self):
plugin_data = {}
if self.parameters.state != 'absent':
try:
plugin_data = self.client.inspect_plugin(self.preferred_name)
except NotFound:
# This can happen in check mode
pass
result = {
'actions': self.actions,
'changed': self.changed,
'diff': self.diff,
'plugin': self.client.inspect_plugin(self.preferred_name) if self.parameters.state != 'absent' else {}
'plugin': plugin_data,
}
return dict((k, v) for k, v in result.items() if v is not None)

Expand Down
64 changes: 64 additions & 0 deletions tests/integration/targets/docker_plugin/tasks/tests/basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,48 +10,104 @@
############ basic test ############
####################################

- name: Create a plugin (check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: present
register: create_1_check
check_mode: true

- name: Create a plugin
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: present
register: create_1

- name: Create a plugin (Idempotent, check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: present
register: create_2_check
check_mode: true

- name: Create a plugin (Idempotent)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: present
register: create_2

- name: Enable a plugin (check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: enable
register: create_3_check
check_mode: true

- name: Enable a plugin
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: enable
register: create_3

- name: Enable a plugin (Idempotent, check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: enable
register: create_4_check
check_mode: true

- name: Enable a plugin (Idempotent)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: enable
register: create_4

- name: Disable a plugin (check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: disable
register: absent_1_check
check_mode: true

- name: Disable a plugin
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: disable
register: absent_1

- name: Disable a plugin (Idempotent, check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: disable
register: absent_2_check
check_mode: true

- name: Disable a plugin (Idempotent)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: disable
register: absent_2

- name: Remove a plugin (check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: absent
register: absent_3_check
check_mode: true

- name: Remove a plugin
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: absent
register: absent_3

- name: Remove a plugin (Idempotent, check mode)
docker_plugin:
plugin_name: "{{ plugin_name }}"
state: absent
register: absent_4_check
check_mode: true

- name: Remove a plugin (Idempotent)
docker_plugin:
plugin_name: "{{ plugin_name }}"
Expand All @@ -60,13 +116,21 @@

- assert:
that:
- create_1_check is changed
- create_1 is changed
- create_2_check is not changed
- create_2 is not changed
- create_3_check is changed
- create_3 is changed
- create_4_check is not changed
- create_4 is not changed
- absent_1_check is changed
- absent_1 is changed
- absent_2_check is not changed
- absent_2 is not changed
- absent_3_check is changed
- absent_3 is changed
- absent_4_check is not changed
- absent_4 is not changed

############ Plugin_Options ############
Expand Down

0 comments on commit 5ee8004

Please sign in to comment.