---
- name: Authenticate with Docker registry if registry password given
  docker_login:
    registry: "{{ docker_registry }}"
    username: "{{ docker_registry_username }}"
    password: "{{ docker_registry_password }}"
    reauthorize: yes
  when: docker_registry is defined and docker_registry_password is defined
  delegate_to: localhost

- name: Remove local images to ensure proper push behavior
  # TODO: this code will not be necessary if and when docker_image can be configured to push if the image
  # Already exists locally
  # Pull request: https://github.com/ansible/ansible/pull/31863
  block:
    - name: Remove web image
      docker_image:
        name: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ web_image }}"
        tag: "{{ awx_version }}"
        state: absent

    - name: Remove task image
      docker_image:
        name: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ task_image }}"
        tag: "{{ awx_version }}"
        state: absent
  delegate_to: localhost
  when: docker_remove_local_images|default(False)|bool

- name: Tag and Push Container Images
  block:
    - name: Tag and push web image to registry
      docker_image:
        name: "{{ web_image }}"
        repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ web_image }}"
        tag: "{{ item }}"
        push: yes
      with_items:
        - "latest"
        - "{{ awx_version }}"

    - name: Tag and push task image to registry
      docker_image:
        name: "{{ task_image }}"
        repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ task_image }}"
        tag: "{{ item }}"
        push: yes
      with_items:
        - "latest"
        - "{{ awx_version }}"
  delegate_to: localhost

- name: Set full image path for Registry
  set_fact:
    awx_web_docker_actual_image: >-
      {{ docker_registry }}/{{ docker_registry_repository }}/{{ web_image }}:{{ awx_version }}
    awx_task_docker_actual_image: >-
      {{ docker_registry }}/{{ docker_registry_repository }}/{{ task_image }}:{{ awx_version }}
