From 88b3cc6340844fbaabdeec0527220e4b485dbb72 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Mon, 15 Feb 2016 14:49:43 +0100 Subject: [PATCH] Only update apt cache if necessary Workarounding the upstream ansible apt module bug documented here: https://github.com/ansible/ansible-modules-core/pull/1517 For the next versions of ansible we'll be using, we should check if the apt bug is fixed. When it's fixed, we could abandon this change and use the standard apt module with correct cache handling. Change-Id: Iaff1eded0fd77ebfc69aca49b271ceaf719068a8 --- defaults/main.yml | 3 +++ tasks/repo_install.yml | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 99b6ac8..d83effa 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -17,6 +17,9 @@ # compute the number of api workers to use. # repo_nginx_threads: 16 +## APT Cache Options +cache_timeout: 600 + # Defines that the role will be deployed on a host machine is_metal: true diff --git a/tasks/repo_install.yml b/tasks/repo_install.yml index 33dd72b..397c6c3 100644 --- a/tasks/repo_install.yml +++ b/tasks/repo_install.yml @@ -13,14 +13,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Update apt sources +#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache +#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged +#in 1.9.x or we move to 2.0 (if tested working) +- name: Check apt last update file + stat: + path: /var/cache/apt + register: apt_cache_stat + tags: + - repo-apt-packages + +- name: Update apt if needed apt: update_cache: yes - cache_valid_time: 600 - register: apt_update - until: apt_update|success - retries: 5 - delay: 2 + when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" tags: - repo-apt-packages