46aeb9843f
When running in check mode, some prechecks previously failed because they use the command module which is silently not run in check mode. Other prechecks were not running correctly in check mode due to e.g. looking for a string in empty command output or not querying which containers are running. This change fixes these issues. Closes-Bug: #2002657 Change-Id: I5219cb42c48d5444943a2d48106dc338aa08fa7c
132 lines
3.8 KiB
YAML
132 lines
3.8 KiB
YAML
---
|
|
- import_role:
|
|
name: service-precheck
|
|
vars:
|
|
service_precheck_services: "{{ swift_services }}"
|
|
service_name: "{{ project_name }}"
|
|
|
|
- name: Get container facts
|
|
become: true
|
|
kolla_container_facts:
|
|
container_engine: "{{ kolla_container_engine }}"
|
|
name:
|
|
- swift_account_server
|
|
- swift_container_server
|
|
- swift_object_server
|
|
- swift_proxy_server
|
|
check_mode: false
|
|
register: container_facts
|
|
|
|
- name: Checking free port for Swift Account Server
|
|
wait_for:
|
|
host: "{{ 'swift_storage' | kolla_address }}"
|
|
port: "{{ swift_account_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_account_server'] is not defined
|
|
- inventory_hostname in groups['swift-account-server']
|
|
|
|
- name: Checking free port for Swift Container Server
|
|
wait_for:
|
|
host: "{{ 'swift_storage' | kolla_address }}"
|
|
port: "{{ swift_container_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_container_server'] is not defined
|
|
- inventory_hostname in groups['swift-container-server']
|
|
|
|
- name: Checking free port for Swift Object Server
|
|
wait_for:
|
|
host: "{{ 'swift_storage' | kolla_address }}"
|
|
port: "{{ swift_object_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_object_server'] is not defined
|
|
- inventory_hostname in groups['swift-object-server']
|
|
|
|
- name: Checking free port for Swift Account Replication Server
|
|
wait_for:
|
|
host: "{{ 'swift_replication' | kolla_address }}"
|
|
port: "{{ swift_account_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_account_server'] is not defined
|
|
- inventory_hostname in groups['swift-account-server']
|
|
|
|
- name: Checking free port for Swift Container Replication Server
|
|
wait_for:
|
|
host: "{{ 'swift_replication' | kolla_address }}"
|
|
port: "{{ swift_container_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_container_server'] is not defined
|
|
- inventory_hostname in groups['swift-container-server']
|
|
|
|
- name: Checking free port for Swift Object Replication Server
|
|
wait_for:
|
|
host: "{{ 'swift_replication' | kolla_address }}"
|
|
port: "{{ swift_object_server_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_object_server'] is not defined
|
|
- inventory_hostname in groups['swift-object-server']
|
|
|
|
- name: Checking free port for Rsync
|
|
wait_for:
|
|
host: "{{ 'swift_replication' | kolla_address }}"
|
|
port: "873"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_object_server'] is not defined
|
|
- inventory_hostname in groups['swift-object-server']
|
|
|
|
- name: Checking free port for Swift Proxy Server
|
|
wait_for:
|
|
host: "{{ api_interface_address }}"
|
|
port: "{{ swift_proxy_server_listen_port }}"
|
|
connect_timeout: 1
|
|
timeout: 1
|
|
state: stopped
|
|
when:
|
|
- container_facts['swift_proxy_server'] is not defined
|
|
- inventory_hostname in groups['swift-proxy-server']
|
|
|
|
- name: Checking Swift ring files
|
|
run_once: True
|
|
stat:
|
|
path: "{{ node_custom_config }}/swift/{{ item }}"
|
|
delegate_to: localhost
|
|
register: swift_ring_files
|
|
with_items:
|
|
- "account.builder"
|
|
- "account.ring.gz"
|
|
- "container.builder"
|
|
- "container.ring.gz"
|
|
- "object.builder"
|
|
- "object.ring.gz"
|
|
- "{{ swift_extra_ring_files }}"
|
|
|
|
- name: Fail if ring files don't exist
|
|
run_once: True
|
|
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:
|
|
- not item.stat.exists
|