--- # 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. - name: Run functional tests hosts: galera_all user: root gather_facts: true tasks: - name: Check cluster incoming addresses command: | mysql -h {{ ansible_host }} \ -p"{{ galera_root_password }}" \ -e "show status like 'wsrep_incoming_addresses';" \ --silent \ --skip-column-names register: wsrep_incoming_addresses no_log: true changed_when: false tags: - skip_ansible_lint - name: Check cluster local state command: | mysql -h {{ ansible_host }} \ -p"{{ galera_root_password }}" \ -e "show status like 'wsrep_local_state_comment';" \ --silent \ --skip-column-names no_log: true register: wsrep_local_state_comment changed_when: false tags: - skip_ansible_lint - name: Check cluster evs state command: | mysql -h {{ ansible_host }} \ -p"{{ galera_root_password }}" \ -e "show status like 'wsrep_evs_state';" \ --silent \ --skip-column-names register: wsrep_evs_state no_log: true changed_when: false tags: - skip_ansible_lint - name: Check contents assert: that: - "'Synced' in wsrep_local_state_comment.stdout" - "'OPERATIONAL' in wsrep_evs_state.stdout" - "'10.1.0.2' in wsrep_incoming_addresses.stdout" - "'10.1.0.3' in wsrep_incoming_addresses.stdout" - "'10.1.0.4' in wsrep_incoming_addresses.stdout" - name: Create DB for service on 10.1.0.2 mysql_db: login_user: "{{ galera_root_user }}" login_password: "{{ galera_root_password }}" login_host: "10.1.0.2" name: "OSA-test" state: "present" when: ansible_host == '10.1.0.2' no_log: true - name: Grant access to the DB on 10.1.0.3 mysql_user: login_user: "{{ galera_root_user }}" login_password: "{{ galera_root_password }}" login_host: "10.1.0.3" name: "osa-tester" password: "tester-secrete" host: "{{ item }}" state: "present" priv: "OSA-test.*:ALL" no_log: true with_items: - "localhost" - "%" when: ansible_host == '10.1.0.3' vars_files: - common/test-vars.yml