Do not archive ceph-ansible fetch directory if it is empty
There are conditions, e.g. external ceph deployment, where ceph-ansible will not produce a fetch directory so we should not always assume there is something to archive. Add a task to register the contents of the ceph-ansible fetch directory and only archive that directory if the contents exist. Also, remove the '--no-overwrite-dir' option from tar as it seems to have broken repeat deployments. Change-Id: I56eae30d73bf5cc6b1ae413c6841f86c2a4e86b5 Closes-Bug: #1823759 Closes-Bug: #1823229
This commit is contained in:
parent
428b698b53
commit
031f5fb610
@ -532,7 +532,7 @@ outputs:
|
||||
ignore_errors: True
|
||||
- name: untar local backup of ceph-ansible fetch directory
|
||||
# unarchive module hit https://github.com/ansible/ansible/issues/35645
|
||||
shell: "/usr/bin/gtar --gzip --extract --no-overwrite-dir --file {{local_ceph_ansible_fetch_directory_backup}}/{{ceph_ansible_tarball_name}} -C {{playbook_dir}}/ceph-ansible/fetch_dir"
|
||||
shell: "/usr/bin/gtar --gzip --extract --file {{local_ceph_ansible_fetch_directory_backup}}/{{ceph_ansible_tarball_name}} -C {{playbook_dir}}/ceph-ansible/fetch_dir"
|
||||
when: local_backup_file.stat.exists == True
|
||||
when: local_ceph_ansible_fetch_directory_backup != ""
|
||||
- block: # swift backup
|
||||
@ -555,7 +555,7 @@ outputs:
|
||||
- curl_get_http_status.stdout != "404" # new deployment
|
||||
- name: unpack downloaded ceph-ansible fetch tarball to fetch directory
|
||||
# unarchive module hit https://github.com/ansible/ansible/issues/35645
|
||||
shell: "/usr/bin/gtar --gzip --extract --no-overwrite-dir --file /tmp/{{old_ceph_ansible_tarball_name}} -C {{playbook_dir}}/ceph-ansible/fetch_dir"
|
||||
shell: "/usr/bin/gtar --gzip --extract --file /tmp/{{old_ceph_ansible_tarball_name}} -C {{playbook_dir}}/ceph-ansible/fetch_dir"
|
||||
when:
|
||||
- curl_get_http_status.changed
|
||||
- curl_get_http_status.stdout == "200"
|
||||
@ -619,6 +619,11 @@ outputs:
|
||||
when:
|
||||
- outputs.changed
|
||||
- outputs.rc != 0
|
||||
- name: register contents of fetch_directory after ceph-ansible run
|
||||
find:
|
||||
paths: "{{playbook_dir}}/ceph-ansible/fetch_dir/"
|
||||
recurse: true
|
||||
register: ceph_ansible_fetch_dir_contents
|
||||
- name: create ceph-ansible fetch directory tarball in local backup
|
||||
archive:
|
||||
path: "{{playbook_dir}}/ceph-ansible/fetch_dir/*"
|
||||
@ -626,7 +631,9 @@ outputs:
|
||||
exclude_path:
|
||||
- '{{playbook_dir}}/ceph-ansible/fetch_dir/fetch_dir'
|
||||
register: nested
|
||||
when: local_ceph_ansible_fetch_directory_backup != ""
|
||||
when:
|
||||
- local_ceph_ansible_fetch_directory_backup != ""
|
||||
- ceph_ansible_fetch_dir_contents.matched|int != 0
|
||||
- block: # swift backup
|
||||
- name: create temporary ceph-ansible fetch directory tarball for swift backup
|
||||
archive:
|
||||
@ -651,7 +658,9 @@ outputs:
|
||||
state: absent
|
||||
when: (curl_put_http_status.changed and (curl_put_http_status.stdout == "200" or
|
||||
curl_put_http_status.stdout == "201"))
|
||||
when: local_ceph_ansible_fetch_directory_backup == ""
|
||||
when:
|
||||
- local_ceph_ansible_fetch_directory_backup == ""
|
||||
- ceph_ansible_fetch_dir_contents.matched|int != 0
|
||||
- name: remove nested broken path if exist
|
||||
file:
|
||||
state: absent
|
||||
|
Loading…
Reference in New Issue
Block a user