--- # 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 #################################################################### ## basic ########################################################### #################################################################### - name: Make sure image is not there community.docker.docker_image: name: "{{ docker_test_image_hello_world }}" state: absent force_absent: true register: absent_1 - name: Make sure image is not there (idempotency) community.docker.docker_image: name: "{{ docker_test_image_hello_world }}" state: absent register: absent_2 - ansible.builtin.assert: that: - absent_2 is not changed - name: Make sure image is there community.docker.docker_image: name: "{{ docker_test_image_hello_world }}" state: present source: pull pull: platform: amd64 register: present_1 - name: Make sure image is there (idempotent) community.docker.docker_image: name: "{{ docker_test_image_hello_world }}" state: present source: pull pull: platform: amd64 register: present_2 - ansible.builtin.assert: that: - present_1 is changed - present_2 is not changed - name: Make sure tag is not there community.docker.docker_image: name: "{{ docker_test_image_hello_world_base }}:alias" state: absent - name: Tag image with alias community.docker.docker_image: source: local name: "{{ docker_test_image_hello_world }}" repository: "{{ docker_test_image_hello_world_base }}:alias" register: tag_1 - name: Tag image with alias (idempotent) community.docker.docker_image: source: local name: "{{ docker_test_image_hello_world }}" repository: "{{ docker_test_image_hello_world_base }}:alias" register: tag_2 - name: Tag image with alias (force, still idempotent) community.docker.docker_image: source: local name: "{{ docker_test_image_hello_world }}" repository: "{{ docker_test_image_hello_world_base }}:alias" force_tag: true register: tag_3 - name: Tag image with ID instead of name community.docker.docker_image: source: local name: "{{ present_1.image.Id }}" repository: "{{ docker_test_image_hello_world_base }}:alias" register: tag_4 - ansible.builtin.assert: that: - tag_1 is changed - tag_2 is not changed - tag_3 is not changed - tag_4 is not changed - name: Cleanup alias tag community.docker.docker_image: name: "{{ docker_test_image_hello_world_base }}:alias" state: absent - name: Tag image with ID instead of name (use ID for repository, must fail) community.docker.docker_image: source: local name: "{{ docker_test_image_hello_world }}" repository: "{{ present_1.image.Id }}" register: fail_1 ignore_errors: true - name: Push image with ID (must fail) community.docker.docker_image: source: local name: "{{ present_1.image.Id }}" push: true register: fail_2 ignore_errors: true - name: Pull image ID (must fail) community.docker.docker_image: source: pull name: "{{ present_1.image.Id }}" force_source: true register: fail_3 ignore_errors: true - name: Build image ID (must fail) community.docker.docker_image: source: build name: "{{ present_1.image.Id }}" build: path: "{{ remote_tmp_dir }}/files" force_source: true register: fail_4 ignore_errors: true - ansible.builtin.assert: that: - fail_1 is failed - "'`repository` must not be an image ID' in fail_1.msg" - fail_2 is failed - "'Cannot push an image by ID' in fail_2.msg" - fail_3 is failed - "'Image name must not be an image ID for source=pull' in fail_3.msg" - fail_4 is failed - "'Image name must not be an image ID for source=build' in fail_4.msg"