--- # 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: "Copy the swift_rings.py file" template: src: swift_rings.py.j2 dest: "/etc/swift/scripts/swift_rings.py" owner: "{{ swift_system_user_name }}" group: "{{ swift_system_group_name }}" mode: "0700" tags: - swift-install - name: "Build ring-contents files" template: src: ring.contents.j2 dest: "/etc/swift/scripts/{{ item.type }}.contents" owner: "{{ swift_system_user_name }}" group: "{{ swift_system_group_name }}" mode: "0640" with_items: - { item: "{{ swift.account | default({}) }}", port: "{{ swift_account_port }}", type: "account" } - { item: "{{ swift.container | default({}) }}", port: "{{ swift_container_port }}", type: "container" } - name: "Build ring-contents files for storage policies" template: src: ring.contents.j2 dest: "/etc/swift/scripts/object-{{ item[0].policy.index }}.contents" owner: "{{ swift_system_user_name }}" group: "{{ swift_system_group_name }}" mode: "0640" with_nested: - "{{ swift.storage_policies }}" - [{ type: 'object', port: "{{ swift_object_port }}" }] - name: Ensure swift config directory permissions file: path: /etc/swift/ state: directory owner: "{{ swift_system_user_name }}" group: "{{ swift_system_group_name }}" recurse: yes when: swift_install_method == 'distro' - name: "Build rings for account/container from contents files" command: >- /etc/swift/scripts/swift_rings.py -f /etc/swift/scripts/{{ item[0] }}.contents{% if item[1] %} -r {{ item[1] }}{% endif %}{{ (swift_pretend_min_part_hours_passed | bool) | ternary(' -p', '') }} with_nested: - ['account', 'container'] - "{{ swift_managed_regions | default([None]) }}" register: swift_rings_create become: yes become_user: "{{ swift_system_user_name }}" changed_when: "swift_rings_create.rc not in [1, 2, 3]" failed_when: "swift_rings_create.rc in [1, 2]" args: chdir: /etc/swift/ring_build_files/ - name: "Build rings for storage policies from contents files" command: >- /etc/swift/scripts/swift_rings.py -f /etc/swift/scripts/object-{{ item[0].policy.index }}.contents{% if item[1] %} -r {{ item[1] }}{% endif %}{{ (swift_pretend_min_part_hours_passed | bool) | ternary(' -p', '') }} with_nested: - "{{ swift.storage_policies }}" - "{{ swift_managed_regions | default([None]) }}" register: swift_object_rings_create become: yes become_user: "{{ swift_system_user_name }}" changed_when: "swift_object_rings_create.rc not in [1, 2, 3]" failed_when: "swift_object_rings_create.rc in [1, 2]" args: chdir: /etc/swift/ring_build_files/