diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 9ca55381a6..eca72ff3cd 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -32,6 +32,7 @@ kolla_enable_sanity_checks: "no" kolla_enable_sanity_keystone: "{{ kolla_enable_sanity_checks }}" kolla_enable_sanity_glance: "{{ kolla_enable_sanity_checks }}" kolla_enable_sanity_cinder: "{{ kolla_enable_sanity_checks }}" +kolla_enable_sanity_swift: "{{ kolla_enable_sanity_checks }}" #################### # Database options diff --git a/ansible/roles/swift/tasks/check.yml b/ansible/roles/swift/tasks/check.yml new file mode 100644 index 0000000000..15e438c9dc --- /dev/null +++ b/ansible/roles/swift/tasks/check.yml @@ -0,0 +1,19 @@ +--- +- name: Swift sanity checks + command: docker exec -t kolla_toolbox /usr/bin/ansible localhost + -m kolla_sanity + -a "service=swift + project=service + user=admin + password={{ swift_keystone_password }} + role=admin + region_name={{ openstack_region_name }} + auth={{ '{{ openstack_swift_auth }}' }}" + -e "{'openstack_swift_auth':{{ openstack_swift_auth }}}" + register: swift_sanity + changed_when: "{{ swift_sanity.stdout.find('localhost | SUCCESS => ') != -1 and (swift_sanity.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}" + until: swift_sanity.stdout.split()[2] == 'SUCCESS' + retries: 10 + delay: 5 + run_once: True + when: kolla_enable_sanity_swift | bool \ No newline at end of file diff --git a/ansible/roles/swift/tasks/deploy.yml b/ansible/roles/swift/tasks/deploy.yml index 5b2e8a980b..0a9ab4fed3 100644 --- a/ansible/roles/swift/tasks/deploy.yml +++ b/ansible/roles/swift/tasks/deploy.yml @@ -16,3 +16,9 @@ inventory_hostname in groups['swift-container-server'] or inventory_hostname in groups['swift-object-server'] or inventory_hostname in groups['swift-proxy-server'] + +- include: check.yml + when: inventory_hostname in groups['swift-account-server'] or + inventory_hostname in groups['swift-container-server'] or + inventory_hostname in groups['swift-object-server'] or + inventory_hostname in groups['swift-proxy-server'] diff --git a/docker/kolla-toolbox/kolla_sanity.py b/docker/kolla-toolbox/kolla_sanity.py index 1a0b4151a3..167663dec5 100644 --- a/docker/kolla-toolbox/kolla_sanity.py +++ b/docker/kolla-toolbox/kolla_sanity.py @@ -38,6 +38,10 @@ class SanityChecks(object): def cinder(cloud): [volume for volume in cloud.cinder_client.volumes.list()] + @staticmethod + def swift(cloud): + [container for container in cloud.swift_client.list()] + def main(): module = AnsibleModule(