--- # Copyright 2014, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Get md5sum of local builder files shell: | cat /etc/swift/ring_build_files/*.builder 2>/dev/null | md5sum | cut -d " " -f1 changed_when: false register: md5sum # Fail if the remote hosts builder files don't match # As this is post sync all should match and not be empty - name: Verify md5sum of builder files fail: msg: > "The builder files on the remote host {{ item }}:{{ hostvars[item]['builder_md5sum'] }} do not match {{ inventory_hostname }}:{{ md5sum.stdout }}" when: hostvars[item]['builder_md5sum'] != md5sum.stdout with_items: "{{ groups['swift_all'] + groups['swift_remote_all'] }}" - name: "Copy the swift_rings_check.py file" template: src: swift_rings_check.py.j2 dest: "/etc/swift/scripts/swift_rings_check.py" owner: "{{ swift_system_user_name }}" group: "{{ swift_system_group_name }}" mode: "0700" tags: - swift-install - name: "Ensure contents file matches ring after ring sync for account/container" command: "/etc/swift/scripts/swift_rings_check.py -f /etc/swift/scripts/{{ item[0] }}.contents{% if item[1] %} -r {{ item[1] }} {% endif %}" changed_when: false with_nested: - [ 'account', 'container' ] - "{{ swift_managed_regions | default([None]) }}" become: yes become_user: "{{ swift_system_user_name }}" args: chdir: /etc/swift/ring_build_files/ - name: "Ensure contents file matches ring after ring sync for storage policies" command: "/etc/swift/scripts/swift_rings_check.py -f /etc/swift/scripts/object-{{ item[0].policy.index }}.contents{% if item[1] %} -r {{ item[1] }} {% endif %}" changed_when: false with_nested: - "{{ swift.storage_policies }}" - "{{ swift_managed_regions | default([None]) }}" become: yes become_user: "{{ swift_system_user_name }}" args: chdir: /etc/swift/ring_build_files/