--- # Copyright 2016, 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. # Set swift_storage_address fact so it is consumable in hostvars (for ring.contents template) - name: Set swift_storage_address fact if defined set_fact: swift_storage_address: "{{ swift_storage_address }}" when: - swift_storage_address is defined tags: - always # swift_vars.storage_ip always takes precedence - name: Get swift_vars.storage_ip if defined set_fact: swift_storage_address: "{{ swift_vars.storage_ip }}" when: - swift_vars.storage_ip is defined tags: - always # Get the swift storage bridge - name: Get swift storage bridge set_fact: swift_storage_bridge: "{{ 'ansible_' + swift.storage_network | replace('-', '_') }}" when: - swift.storage_network is defined - swift_storage_address is not defined tags: - always - name: Gather facts for storage_bridge setup: filter: "{{ swift_storage_bridge }}" when: - swift_storage_bridge is defined - hostvars[inventory_hostname][swift_storage_bridge] is defined - swift_storage_address is not defined - name: Swift storage address not found fail: msg: "{{ swift.storage_network }} not found on host, can't find storage address." when: - swift.storage_network is defined - swift_storage_bridge is defined - hostvars[inventory_hostname][swift_storage_bridge] is not defined - swift_storage_address is not defined - name: Get swift storage address (with storage_network) set_fact: swift_storage_address: "{{ hostvars[inventory_hostname][swift_storage_bridge]['ipv4']['address'] }}" when: - swift_storage_bridge is defined - hostvars[inventory_hostname][swift_storage_bridge] is defined - swift_storage_address is not defined tags: - always - name: Get swift storage address (no storage_network) set_fact: swift_storage_address: "{{ ansible_host }}" when: - swift.storage_network is not defined - swift_storage_address is not defined tags: - always # Set swift_replication_address fact so it is consumable in hostvars (for ring.contents template) - name: Set swift_replication_address fact if defined set_fact: swift_replication_address: "{{ swift_replication_address }}" when: - swift_replication_address is defined tags: - always # swift_vars.repl_ip always takes precedence - name: Get swift_vars.repl_ip if defined set_fact: swift_replication_address: "{{ swift_vars.repl_ip }}" when: - swift_vars.repl_ip is defined tags: - always - name: Get swift replication bridge set_fact: swift_replication_bridge: "{{ 'ansible_' + swift.replication_network | replace('-', '_') }}" when: - swift.replication_network is defined - swift_replication_address is not defined tags: - always - name: Gather facts for storage_bridge setup: filter: "{{ swift_replication_bridge }}" when: - swift_replication_bridge is defined - hostvars[inventory_hostname][swift_replication_bridge] is defined - swift_replication_address is not defined - name: Swift replication address not found fail: msg: "{{ swift.replication_network }} not found on host, can't find swift_replication_address" when: - swift.replication_network is defined - swift_replication_bridge is defined - hostvars[inventory_hostname][swift_replication_bridge] is not defined - swift_replication_address is not defined - name: Get swift replication address (with replication_network) set_fact: swift_replication_address: "{{ hostvars[inventory_hostname][swift_replication_bridge]['ipv4']['address'] }}" when: - swift_replication_bridge is defined - hostvars[inventory_hostname][swift_replication_bridge] is defined - swift_replication_address is not defined tags: - always - name: Get swift replication address (no replication_network) set_fact: swift_replication_address: "{{ swift_storage_address }}" when: - swift.replication_network is not defined - swift_replication_address is not defined tags: - always - name: Set swift_dedicated_replication network if storage and replication addresses differ set_fact: swift_dedicated_replication: "{{ swift_storage_address != swift_replication_address }}" tags: - always