From a118bb8d0534432394902dd120499bbf109475ca Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Wed, 9 Dec 2020 09:05:30 +0100 Subject: [PATCH] Backport of https://github.com/ansible-collections/community.docker/pull/43 (518e99411a9ce47c249a045b346cf28b63b512e2). (#1468) --- ...y.docker-43-docker_container-device_requests.yml | 2 ++ plugins/modules/cloud/docker/docker_container.py | 13 ++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 changelogs/fragments/community.docker-43-docker_container-device_requests.yml diff --git a/changelogs/fragments/community.docker-43-docker_container-device_requests.yml b/changelogs/fragments/community.docker-43-docker_container-device_requests.yml new file mode 100644 index 0000000000..4c2a805aca --- /dev/null +++ b/changelogs/fragments/community.docker-43-docker_container-device_requests.yml @@ -0,0 +1,2 @@ +bugfixes: +- "docker_container - the validation for ``capabilities`` in ``device_requests`` was incorrect (https://github.com/ansible-collections/community.docker/issues/42, https://github.com/ansible-collections/community.docker/pull/43)." diff --git a/plugins/modules/cloud/docker/docker_container.py b/plugins/modules/cloud/docker/docker_container.py index 2640b27af8..557319c24c 100644 --- a/plugins/modules/cloud/docker/docker_container.py +++ b/plugins/modules/cloud/docker/docker_container.py @@ -1451,13 +1451,12 @@ class TaskParameters(DockerBaseClass): # Make sure that capabilities are lists of lists of strings if dr['capabilities']: for or_index, or_list in enumerate(dr['capabilities']): - for and_index, and_list in enumerate(or_list): - for term_index, term in enumerate(and_list): - if not isinstance(term, string_types): - self.fail( - "device_requests[{0}].capabilities[{1}][{2}][{3}] is not a string".format( - dr_index, or_index, and_index, term_index)) - and_list[term_index] = to_native(term) + for and_index, and_term in enumerate(or_list): + if not isinstance(and_term, string_types): + self.fail( + "device_requests[{0}].capabilities[{1}][{2}] is not a string".format( + dr_index, or_index, and_index)) + or_list[and_index] = to_native(and_term) # Make sure that options is a dictionary mapping strings to strings if dr['options']: dr['options'] = clean_dict_booleans_for_docker_api(dr['options'])