---
- name: Check for credentials file for registry auth
  stat:
    path: "{{ docker_cli_auth_config_path }}/config.json"
    get_checksum: false
    get_attributes: false
    get_mime: false
  when: oreg_auth_user is defined
  register: docker_cli_auth_credentials_stat

- name: Create credentials for docker cli registry auth
  command: "docker --config={{ docker_cli_auth_config_path }} login -u {{ oreg_auth_user }} -p {{ oreg_auth_password }} {{ oreg_host }}"
  register: openshift_docker_credentials_create_res
  retries: 3
  delay: 5
  until: openshift_docker_credentials_create_res.rc == 0
  when:
  - not openshift_docker_alternative_creds | bool
  - oreg_auth_user is defined
  - (not docker_cli_auth_credentials_stat.stat.exists or oreg_auth_credentials_replace) | bool
  no_log: True

# docker_creds is a custom module from lib_utils
# 'docker login' requires a docker.service running on the local host, this is an
# alternative implementation for non-docker hosts.  This implementation does not
# check the registry to determine whether or not the credentials will work.
- name: Create credentials for docker cli registry auth (alternative)
  docker_creds:
    path: "{{ docker_cli_auth_config_path }}"
    registry: "{{ oreg_host }}"
    username: "{{ oreg_auth_user }}"
    password: "{{ oreg_auth_password }}"
  when:
  - openshift_docker_alternative_creds | bool
  - oreg_auth_user is defined
  - (not docker_cli_auth_credentials_stat.stat.exists or oreg_auth_credentials_replace) | bool
  no_log: True
