diff --git a/changelogs/fragments/637-swarm_info-endpoint_spec.yml b/changelogs/fragments/637-swarm_info-endpoint_spec.yml new file mode 100644 index 00000000..a0499867 --- /dev/null +++ b/changelogs/fragments/637-swarm_info-endpoint_spec.yml @@ -0,0 +1,2 @@ +bugfixes: + - "docker_swarm_info - if ``service=true`` is used, do not crash when a service without an endpoint spec is encountered (https://github.com/ansible-collections/community.docker/issues/636, https://github.com/ansible-collections/community.docker/pull/637)." diff --git a/plugins/modules/docker_swarm_info.py b/plugins/modules/docker_swarm_info.py index 4a039d2e..df1e5af9 100644 --- a/plugins/modules/docker_swarm_info.py +++ b/plugins/modules/docker_swarm_info.py @@ -326,7 +326,7 @@ class DockerSwarmManager(DockerBaseClass): # Number of replicas have to be updated in calling method or may be left as None object_essentials['Replicas'] = None object_essentials['Image'] = item['Spec']['TaskTemplate']['ContainerSpec']['Image'] - if 'Ports' in item['Spec']['EndpointSpec']: + if item['Spec'].get('EndpointSpec') and 'Ports' in item['Spec']['EndpointSpec']: object_essentials['Ports'] = item['Spec']['EndpointSpec']['Ports'] else: object_essentials['Ports'] = []