---
# 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: Create random name prefix
  set_fact:
    name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
- name: Create image and container list
  set_fact:
    inames: []
    cnames: []

- debug:
    msg: "Using name prefix {{ name_prefix }}"

- name: Create files directory
  file:
    path: '{{ remote_tmp_dir }}/files'
    state: directory

- name: Template files
  template:
    src: '{{ item }}'
    dest: '{{ remote_tmp_dir }}/files/{{ item }}'
  loop:
    - ArgsDockerfile
    - Dockerfile
    - EtcHostsDockerfile
    - MyDockerfile
    - StagedDockerfile

- block:
    - include_tasks: run-test.yml
      with_fileglob:
        - "tests/*.yml"
      loop_control:
        loop_var: test_name

  always:
    - name: "Make sure all images are removed"
      docker_image:
        name: "{{ item }}"
        state: absent
      with_items: "{{ inames }}"
    - name: "Make sure all containers are removed"
      docker_container:
        name: "{{ item }}"
        state: absent
        force_kill: true
      with_items: "{{ cnames }}"

  when: docker_api_version is version('1.25', '>=')

- fail: msg="Too old docker / docker-py version to run docker_image tests!"
  when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
