diff --git a/ansible/roles/swift/tasks/precheck.yml b/ansible/roles/swift/tasks/precheck.yml index e5f622a194..50291c03c9 100644 --- a/ansible/roles/swift/tasks/precheck.yml +++ b/ansible/roles/swift/tasks/precheck.yml @@ -62,3 +62,22 @@ when: - container_facts['swift_proxy_server'] is not defined - inventory_hostname in groups['swift-proxy-server'] + +- name: Checking Swift ring files + run_once: True + local_action: stat path="{{ node_custom_config }}/swift/{{ item }}" + register: swift_ring_files + with_items: + - "account.builder" + - "account.ring.gz" + - "container.builder" + - "container.ring.gz" + - "object.builder" + - "object.ring.gz" + +- name: Fail if ring files don't exist + run_once: True + local_action: fail msg="Swift ring files do not exist. Ensure .builder and .gz are available for each of account/container/object under {{ node_custom_config }}/swift before deploying Swift." + with_items: '{{ swift_ring_files.results }}' + when: + - item.stat.exists == false