From c677ad7b847781f1a29f9334d2e030bf8a870282 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Tue, 9 Feb 2016 12:46:50 +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: I2aaf00da175f31d0157bbc4ae30a4e176b055078 --- defaults/main.yml | 3 +++ tasks/nova_compute_kvm_install.yml | 19 +++++++++++++------ tasks/nova_console_novnc_install.yml | 18 ++++++++++++------ tasks/nova_console_spice_install.yml | 19 +++++++++++++------ tasks/nova_install.yml | 18 ++++++++++++------ 5 files changed, 53 insertions(+), 24 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index efcf32d3..1e1c609c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -20,6 +20,9 @@ nova_ceilometer_enabled: False debug: False verbose: True +## APT Cache options +cache_timeout: 600 + # Name of the virtual env to deploy into nova_venv_tag: untagged nova_venv_bin: "/openstack/venvs/nova-{{ nova_venv_tag }}/bin" diff --git a/tasks/nova_compute_kvm_install.yml b/tasks/nova_compute_kvm_install.yml index 40b6231d..90ffcea5 100644 --- a/tasks/nova_compute_kvm_install.yml +++ b/tasks/nova_compute_kvm_install.yml @@ -13,14 +13,21 @@ # 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: + - nova-apt-packages + - nova-compute-kvm-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: - nova-apt-packages - nova-compute-kvm-apt-packages diff --git a/tasks/nova_console_novnc_install.yml b/tasks/nova_console_novnc_install.yml index 8ef6819c..08273eb5 100644 --- a/tasks/nova_console_novnc_install.yml +++ b/tasks/nova_console_novnc_install.yml @@ -29,14 +29,20 @@ - nova-install - nova-novnc-git -- 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: + - nova-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: - nova-apt-packages - nova-novnc-apt-packages diff --git a/tasks/nova_console_spice_install.yml b/tasks/nova_console_spice_install.yml index 5086bf47..353cde81 100644 --- a/tasks/nova_console_spice_install.yml +++ b/tasks/nova_console_spice_install.yml @@ -13,14 +13,21 @@ # 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: + - nova-apt-packages + - nova-spice-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: - nova-apt-packages - nova-spice-apt-packages diff --git a/tasks/nova_install.yml b/tasks/nova_install.yml index 58b6204e..7bea71a9 100644 --- a/tasks/nova_install.yml +++ b/tasks/nova_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: + - nova-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: - nova-apt-packages