Use updated get_url module checksum functionality
Starting in Ansible 2.0, the get_url [1] module provides the ability for a checksum to be provided to the get_url module which will be verified against the local destination file and the task skipped if it matches. [1] http://docs.ansible.com/ansible/get_url_module.html This patch implements the use of this functionality. The ability to ignore a venv download failure is also removed as this is not necessary or desirable. It is better for the download to fail and the playbook execution to stop immediately so that the failure point is exposed. Change-Id: I564c0055cfae461fc8417ee7e57c5acb7080abe6
This commit is contained in:
parent
bfdc02af74
commit
7cbcc7bc74
@ -18,7 +18,7 @@ galaxy_info:
|
||||
description: Installation and setup of neutron
|
||||
company: Rackspace
|
||||
license: Apache2
|
||||
min_ansible_version: 1.9
|
||||
min_ansible_version: 2.0
|
||||
platforms:
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
|
@ -40,57 +40,26 @@
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Get local venv checksum
|
||||
stat:
|
||||
path: "/var/cache/{{ neutron_venv_download_url | basename }}"
|
||||
get_md5: False
|
||||
when:
|
||||
- not neutron_developer_mode | bool
|
||||
register: local_venv_stat
|
||||
|
||||
- name: Get remote venv checksum
|
||||
uri:
|
||||
url: "{{ neutron_venv_download_url | replace('tgz', 'checksum') }}"
|
||||
return_content: True
|
||||
when:
|
||||
- not neutron_developer_mode | bool
|
||||
register: remote_venv_checksum
|
||||
|
||||
# TODO: When project moves to ansible 2 we can pass this a sha256sum which will:
|
||||
# a) allow us to remove force: yes
|
||||
# b) allow the module to calculate the checksum of dest file which would
|
||||
# result in file being downloaded only if provided and dest sha256sum
|
||||
# checksums differ
|
||||
- name: Attempt venv download
|
||||
get_url:
|
||||
url: "{{ neutron_venv_download_url }}"
|
||||
dest: "/var/cache/{{ neutron_venv_download_url | basename }}"
|
||||
force: yes
|
||||
failed_when: false
|
||||
register: get_venv
|
||||
when:
|
||||
- not neutron_developer_mode | bool
|
||||
- (local_venv_stat.stat.exists == False or
|
||||
{{ local_venv_stat.stat.checksum is defined and local_venv_stat.stat.checksum != remote_venv_checksum.content | trim }})
|
||||
|
||||
- name: Set neutron get_venv fact
|
||||
set_fact:
|
||||
neutron_get_venv: "{{ get_venv }}"
|
||||
checksum: "sha1:{{ lookup('url', neutron_venv_download_url | replace('tgz', 'checksum')) }}"
|
||||
register: neutron_get_venv
|
||||
when: not neutron_developer_mode | bool
|
||||
|
||||
- name: Remove existing venv
|
||||
file:
|
||||
path: "{{ neutron_bin | dirname }}"
|
||||
state: absent
|
||||
when:
|
||||
- neutron_get_venv | changed
|
||||
when: neutron_get_venv | changed
|
||||
|
||||
- name: Create neutron venv dir
|
||||
file:
|
||||
path: "{{ neutron_bin | dirname }}"
|
||||
state: directory
|
||||
register: neutron_venv_dir
|
||||
when:
|
||||
- not neutron_developer_mode | bool
|
||||
when: not neutron_developer_mode | bool
|
||||
|
||||
- name: Unarchive pre-built venv
|
||||
unarchive:
|
||||
@ -116,8 +85,7 @@
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
when:
|
||||
- neutron_get_venv | failed or neutron_developer_mode | bool
|
||||
when: neutron_developer_mode | bool
|
||||
notify: Restart neutron services
|
||||
|
||||
- name: Update virtualenv path
|
||||
@ -125,7 +93,7 @@
|
||||
virtualenv-tools --update-path=auto {{ neutron_bin | dirname }}
|
||||
when:
|
||||
- not neutron_developer_mode | bool
|
||||
- neutron_get_venv | success
|
||||
- neutron_get_venv | changed or neutron_venv_dir | changed
|
||||
|
||||
- name: Install optional pip packages
|
||||
pip:
|
||||
|
Loading…
Reference in New Issue
Block a user