From fe537c7a29ff7022e30771d2f59c00c9bece008e Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Thu, 22 Feb 2018 14:34:56 +0000 Subject: [PATCH] Fix cache update after initial apt_repository fail If apt_repository fails to update the apt cache after updating the configuration, retries don't register there was a change and so no attempt is made to update the cache by the module on the second attempt. This failure can result in a failure to install packages. This change adds an apt module task to update the cache if the apt_repository task registers a change. This means updating the cache will get retried on failure and no longer fail silently. Change-Id: I1d71deeee64fe27df1275965aac8240cc2ab427c Partial-Bug: #1750656 --- tasks/nova_install_apt_powervm.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tasks/nova_install_apt_powervm.yml b/tasks/nova_install_apt_powervm.yml index 50d6f9f7..79b6e0f3 100644 --- a/tasks/nova_install_apt_powervm.yml +++ b/tasks/nova_install_apt_powervm.yml @@ -25,14 +25,29 @@ tags: - novalink-apt-keys +# When updating the cache in the apt_repository +# task, and the update fails, a retry does not +# detect a change the second attempt and therefore +# does not update the cache, resulting in a changed +# repo config, but no updated cache. To work around +# this bug we implement the change of repo config +# and the cache update as two seperate tasks. - name: Add novalink repo apt_repository: repo: "{{ novalink_repo.repo }}" state: "{{ novalink_repo.state }}" filename: "{{ novalink_repo.filename | default(omit) }}" - update_cache: yes + update_cache: no register: add_nv_repos - until: add_nv_repos|success + tags: + - novalink-repo + +- name: Update Apt cache + apt: + update_cache: yes + when: add_nv_repos | changed + register: update_apt_cache + until: update_apt_cache | success retries: 5 delay: 2 tags: