community.docker/tests/integration/targets/docker_image_pull/tasks/tests/image-ids.yml
Felix Fontein 5cea1cdc6d
docker_image(_push): fix push detection (#1199) (#1200)
* Fix IP address retrieval for registry setup.

* Adjust push detection to Docker 29.

* Idempotency for export no longer works.

* Disable pull idempotency checks that play with architecture.

* Add more known image IDs.

* Adjust load tests.

* Adjust error message check.

* Allow for more digests.

* Make sure a new enough cryptography version is installed.

(cherry picked from commit d207643e0c)
2025-11-16 10:36:44 +01:00

86 lines
3.3 KiB
YAML

---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: Image ID pull tests
block:
- name: Make sure images are not there
docker_image_remove:
name: "sha256:{{ item }}"
force: true
loop: "{{ docker_test_image_digest_v1_image_ids + docker_test_image_digest_v2_image_ids }}"
- name: Pull image 1
docker_image_pull:
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
register: present_1
diff: true
- name: Pull image 1 (idempotent, do pull)
docker_image_pull:
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
pull: always
register: present_2
diff: true
- name: Pull image 1 (idempotent, do not pull)
docker_image_pull:
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
pull: not_present
register: present_3
diff: true
- assert:
that:
- present_1 is changed
- present_1.actions | length == 1
- present_1.actions[0] == ('Pulled image ' ~ docker_test_image_digest_base ~ ':sha256:' ~ docker_test_image_digest_v1)
- present_1.diff.before.exists is false
- present_1.diff.after.id is string
- present_2 is not changed
- present_2.actions | length == 1
- present_2.actions[0] == ('Pulled image ' ~ docker_test_image_digest_base ~ ':sha256:' ~ docker_test_image_digest_v1)
- present_2.diff.before.id == present_1.diff.after.id
- present_2.diff.after.id == present_1.diff.after.id
- present_3 is not changed
- present_3.actions | length == 0
- present_3.diff.before.id == present_1.diff.after.id
- present_3.diff.after.id == present_1.diff.after.id
- name: Pull image 2 (check mode)
docker_image_pull:
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
pull: always
register: present_4
diff: true
check_mode: true
- name: Pull image 2
docker_image_pull:
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
pull: always
register: present_5
diff: true
- assert:
that:
- present_4 is changed
- present_4.actions | length == 1
- present_4.actions[0] == ('Pulled image ' ~ docker_test_image_digest_base ~ ':sha256:' ~ docker_test_image_digest_v2)
- present_4.diff.before.exists is false
- present_4.diff.after.id == 'unknown'
- present_5 is changed
- present_5.actions | length == 1
- present_5.actions[0] == ('Pulled image ' ~ docker_test_image_digest_base ~ ':sha256:' ~ docker_test_image_digest_v2)
- present_5.diff.before.exists is false
- present_5.diff.after.id != present_1.diff.after.id
- present_5.diff.after.id is string
always:
- name: cleanup
docker_image_remove:
name: "sha256:{{ item }}"
force: true
loop: "{{ docker_test_image_digest_v1_image_ids + docker_test_image_digest_v2_image_ids }}"