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: Iea1e6428d5c2e22eb6bce71d3ad5350864b536e1
This commit is contained in:
Jesse Pretorius
committed by
Jesse Pretorius (odyssey4me)
parent
4a9ad04071
commit
6ec6dc71c0
2 changed files with 7 additions and 38 deletions
@@ -4,7 +4,7 @@ galaxy_info:
description:Deploy Trove with OpenStack Ansible
company:OpenStack
license:Apache-2.0
min_ansible_version:1.9
min_ansible_version:2.0
version:0.1.0
platforms:
- name:Ubuntu
@@ -42,49 +42,19 @@
retries:5
delay:2
- name:Get local venv checksum
stat:
path:"/var/cache/{{ trove_venv_download_url | basename }}"
get_md5:False
when:
- not trove_developer_mode | bool
register:local_venv_stat
- name:Get remote venv checksum
uri:
url:"{{ trove_venv_download_url | replace('tgz', 'checksum') }}"
return_content:True
when:
- not trove_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:"{{ trove_venv_download_url }}"
dest:"/var/cache/{{ trove_venv_download_url | basename }}"
force:yes
failed_when:false
register:get_venv
when:
- not trove_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 trove get_venv fact
set_fact:
trove_get_venv:"{{ get_venv }}"
checksum:"sha1:{{ lookup('url', trove_venv_download_url | replace('tgz', 'checksum')) }}"
register:trove_get_venv
when:not trove_developer_mode | bool
- name:Remove existing venv
file:
path:"{{ trove_bin | dirname }}"
state:absent
when:
- trove_get_venv | changed
when:trove_get_venv | changed
- name:Create trove venv dir
file:
@@ -120,8 +90,7 @@
until:install_packages|success
retries:5
delay:2
when:
- trove_get_venv | failed or trove_developer_mode | bool
when:trove_developer_mode | bool
notify:
- Restart trove API services
- Restart trove conductor service
@@ -133,4 +102,4 @@
virtualenv-tools --update-path=auto {{ trove_bin | dirname }}
when:
- not trove_developer_mode | bool
- trove_get_venv | success
- trove_get_venv | changed or trove_venv_dir | changed
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.