docker_plugin: do not crash when plugin doesn't exist (#553) (#556) (#557)

* Do not crash when plugin doesn't exist.

* Improve style.

Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>

Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>
(cherry picked from commit c7cbec0163)
(cherry picked from commit 0ffa3cc1d2)

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
patchback[bot] 2023-01-14 08:09:36 +01:00 committed by GitHub
parent 935b02fad9
commit 8d19ad9f86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 74 additions and 1 deletions

View File

@ -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)."

View File

@ -331,11 +331,18 @@ class DockerPluginManager(object):
@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)

View File

@ -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 }}"
@ -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 ############