[stable-4] Adjust 'report this' messages to only report if the latest version still has this problem (#1174)

* Adjust 'report this' messages to only report if the latest version still has this problem. (#1173)

(cherry picked from commit 6b5d76bdee)

* Adjust checks.

(cherry picked from commit 24f35644e3)
This commit is contained in:
Felix Fontein 2025-10-16 18:05:39 +02:00 committed by GitHub
parent f3455f9c09
commit 075bc91ce8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 86 additions and 79 deletions

View File

@ -324,7 +324,8 @@ def _warn_missing_dry_run_prefix(line, warn_missing_dry_run_prefix, warn_functio
# This could be a bug, a change of docker compose's output format, ...
# Tell the user to report it to us :-)
warn_function(
'Event line is missing dry-run mode marker: {0!r}. Please report this at '
'Event line is missing dry-run mode marker: {0!r}. Please check with the latest community.docker version,'
' and if the problem still happens there, please report this at '
'https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md'
.format(line)
)
@ -335,7 +336,8 @@ def _warn_unparsable_line(line, warn_function):
# Tell the user to report it to us :-)
if warn_function:
warn_function(
'Cannot parse event from line: {0!r}. Please report this at '
'Cannot parse event from line: {0!r}. Please check with the latest community.docker version,'
' and if the problem still happens there, please report this at '
'https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md'
.format(line)
)
@ -383,7 +385,8 @@ def parse_json_events(stderr, warn_function=None):
continue
if warn_function:
warn_function(
'Cannot parse event from non-JSON line: {0!r}. Please report this at '
'Cannot parse event from non-JSON line: {0!r}. Please check with the latest community.docker version,'
' and if the problem still happens there, please report this at '
'https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md'
.format(line)
)
@ -393,7 +396,8 @@ def parse_json_events(stderr, warn_function=None):
except Exception as exc:
if warn_function:
warn_function(
'Cannot parse event from line: {0!r}: {1}. Please report this at '
'Cannot parse event from line: {0!r}: {1}. Please check with the latest community.docker version,'
' and if the problem still happens there, please report this at '
'https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md'
.format(line, exc)
)
@ -450,7 +454,8 @@ def parse_json_events(stderr, warn_function=None):
except KeyError:
if warn_function:
warn_function(
'Unknown resource type {0!r} in line {1!r}. Please report this at '
'Unknown resource type {0!r} in line {1!r}. Please check with the latest community.docker version,'
' and if the problem still happens there, please report this at '
'https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md'
.format(resource_type_str, line)
)

View File

@ -16,6 +16,7 @@ version_added: 1.1.0
description:
- Return facts about whether the module runs in a Docker or podman container.
- This module attempts a best-effort detection. There might be special cases where it does not work; if you encounter one,
make sure that this is still a problem with the latest community.docker release, and if it is,
L(please file an issue, https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&template=bug_report.md).
author:
- Felix Fontein (@felixfontein)

View File

@ -795,8 +795,9 @@ options:
description:
- Platform for the container in the format C(os[/arch[/variant]]).
- "Note that since community.docker 3.5.0, the module uses both the image's metadata and the Docker daemon's information
to normalize platform strings similarly to how Docker itself is doing this. If you notice idempotency problems, L(please
create an issue in the community.docker GitHub repository,
to normalize platform strings similarly to how Docker itself is doing this. If you notice idempotency problems, please
verify whether this is still a problem with the latest release of community.docker, and if it is,
L(create an issue in the community.docker GitHub repository,
https://github.com/ansible-collections/community.docker/issues/new?assignees=&labels=&projects=&template=bug_report.md).
For older community.docker versions, you can use the O(comparisons) option with C(platform: ignore) to prevent accidental
recreation of the container due to this."

View File

@ -106,7 +106,7 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- present_1.containers | length == 1
- present_1.containers[0].Name == (pname ~ '-' ~ cname ~ '-1')
@ -116,22 +116,22 @@
present_1.images[0].ContainerName == (pname ~ '-' ~ cname ~ '-1')
- present_1.images[0].Repository == iname
- present_1.images[0].Tag == "latest"
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
# - present_3_check is changed -- whether this is true depends on a combination of Docker CLI and Docker Compose version...
# Compose 2.37.3 with Docker 28.2.x results in 'changed', while Compose 2.37.3 with Docker 28.3.0 results in 'not changed'.
# It seems that Docker is now clever enough to notice that nothing is rebuilt...
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- ((present_3 is changed) if docker_compose_version is version('2.31.0', '>=') and docker_compose_version is version('2.32.2', '<') else (present_3 is not changed))
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
# - present_4_check is changed
# Same as above...
- present_4_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4 is not changed
- present_4.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4.warnings | default([]) | select('regex', ' please report this at ') | length == 0
always:
- name: Cleanup

View File

@ -54,7 +54,7 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is failed
- present_1.containers | length == 1
- present_1.containers[0].Name == (pname ~ '-' ~ cname ~ '-1')
@ -67,6 +67,6 @@
present_1.images[0].ContainerName == (pname ~ '-' ~ cname ~ '-1')
- present_1.images[0].Repository == (docker_test_image_alpine | split(':') | first)
- present_1.images[0].Tag == (docker_test_image_alpine | split(':') | last)
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- >-
("container " ~ pname ~ '-' ~ cname ~ "-1 exited (0)") in present_1.msg

View File

@ -77,7 +77,7 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- present_1.containers | length == 1
- present_1.containers[0].Name == (pname ~ '-' ~ cname ~ '-1')
@ -88,15 +88,15 @@
present_1.images[0].ContainerName == (pname ~ '-' ~ cname ~ '-1')
- present_1.images[0].Repository == (docker_test_image_alpine | split(':') | first)
- present_1.images[0].Tag == (docker_test_image_alpine | split(':') | last)
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3_check is changed
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3 is changed
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
####################################################################
## Absent ##########################################################
@ -135,13 +135,13 @@
- assert:
that:
- absent_1_check is changed
- absent_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_1 is changed
- absent_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_2_check is not changed
- absent_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_2 is not changed
- absent_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
####################################################################
## Stopping and starting ###########################################
@ -261,30 +261,30 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3_check is changed
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3 is changed
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4_check is not changed
- present_4_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4 is not changed
- present_4.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5_check is changed
- present_5_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5 is changed
- present_5.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_6_check is changed
- present_6_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_6_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_6 is changed
- present_6.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_6.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_7_check is changed
- present_7_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_7_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_7 is changed
- present_7.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_7.warnings | default([]) | select('regex', ' please report this at ') | length == 0

View File

@ -82,16 +82,16 @@
that:
- present_1_check is failed or present_1_check is changed
- present_1_check is changed or present_1_check.msg.startswith('General error:')
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is failed
- present_1.msg.startswith('General error:')
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is failed
- present_2_check.msg.startswith('Error when processing ' ~ cname ~ ':')
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is failed
- present_2.msg.startswith('Error when processing ' ~ cname ~ ':')
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
####################################################################
## Regular image ###################################################
@ -192,32 +192,32 @@
- present_1_check is changed
- (present_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
- (present_1_check.actions | selectattr('status', 'eq', 'Creating') | first) is truthy
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- (present_1.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
- (present_1.actions | selectattr('status', 'eq', 'Creating') | first) is truthy
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3_check is changed
- (present_3_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
- present_3_check.actions | selectattr('status', 'eq', 'Creating') | length == 0
- present_3_check.actions | selectattr('status', 'eq', 'Recreating') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3 is not changed
- (present_3.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
- present_3.actions | selectattr('status', 'eq', 'Creating') | length == 0
- present_3.actions | selectattr('status', 'eq', 'Recreating') | length == 0
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4_check is changed
- present_4_check.actions | selectattr('status', 'eq', 'Pulling') | length == 0
- present_4_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4 is changed
- present_4.actions | selectattr('status', 'eq', 'Pulling') | length == 0
- present_4.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5_check is not changed
- present_5_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5 is not changed
- present_5.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5.warnings | default([]) | select('regex', ' please report this at ') | length == 0

View File

@ -94,7 +94,7 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- present_1.containers | length == 1
- present_1.containers[0].Name == (pname ~ '-' ~ cname ~ '-1')
@ -105,15 +105,15 @@
present_1.images[0].ContainerName == (pname ~ '-' ~ cname ~ '-1')
- present_1.images[0].Repository == (docker_test_image_alpine | split(':') | first)
- present_1.images[0].Tag == (docker_test_image_alpine | split(':') | last)
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3_check is changed
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3 is changed
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
####################################################################
## Absent ##########################################################
@ -148,13 +148,13 @@
- assert:
that:
- absent_1_check is changed
- absent_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_1 is changed
- absent_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_2_check is not changed
- absent_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- absent_2 is not changed
- absent_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- absent_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
####################################################################
## Stopping and starting ###########################################
@ -264,30 +264,30 @@
- assert:
that:
- present_1_check is changed
- present_1_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_1 is changed
- present_1.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_1.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2_check is not changed
- present_2_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_2 is not changed
- present_2.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_2.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3_check is changed
- present_3_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_3 is changed
- present_3.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_3.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4_check is not changed
- present_4_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_4 is not changed
- present_4.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_4.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5_check is changed
- present_5_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_5 is changed
- present_5.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_5.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_6_check is changed
- present_6_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_6_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_6 is changed
- present_6.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_6.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_7_check is changed
- present_7_check.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_7_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
- present_7 is changed
- present_7.warnings | default([]) | select('regex', ' Please report this at ') | length == 0
- present_7.warnings | default([]) | select('regex', ' please report this at ') | length == 0