From b135bcb9d98f976fd9bfa1773faf81561aaf3910 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Thu, 14 Dec 2017 16:45:54 +0000 Subject: [PATCH] Split download container task for delegate and non-delegate modes (#2077) Ansible cannot seem to handle omitting delegate_to since v2.4.0.0. Possibly related: https://github.com/ansible/ansible/issues/30760 --- roles/download/tasks/download_container.yml | 23 +++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/roles/download/tasks/download_container.yml b/roles/download/tasks/download_container.yml index 766ffb641..5766ab577 100644 --- a/roles/download/tasks/download_container.yml +++ b/roles/download/tasks/download_container.yml @@ -10,16 +10,31 @@ tags: - facts -- name: container_download | Download containers if pull is required or told to always pull +# FIXME(mattymo): In Ansible 2.4 omitting download delegate is broken. Move back +# to one task in the future. +- name: container_download | Download containers if pull is required or told to always pull (delegate) command: "{{ docker_bin_dir }}/docker pull {{ pull_args }}" register: pull_task_result until: pull_task_result|succeeded retries: 4 delay: "{{ retry_stagger | random + 3 }}" when: + - download_run_once + - download.enabled + - download.container + - pull_required|default(download_always_pull) + delegate_to: "{{ download_delegate }}" + delegate_facts: yes + run_once: yes + +- name: container_download | Download containers if pull is required or told to always pull (all nodes) + command: "{{ docker_bin_dir }}/docker pull {{ pull_args }}" + register: pull_task_result + until: pull_task_result|succeeded + retries: 4 + delay: "{{ retry_stagger | random + 3 }}" + when: + - not download_run_once - download.enabled - download.container - pull_required|default(download_always_pull) - delegate_to: "{{ download_delegate if download_run_once or omit }}" - delegate_facts: no - run_once: "{{ download_run_once }}"