
Previously the role assumed that all deployers wanted all queues to be HA. Performance testing by Mirantis and Intel has suggested that throughput increases can be dramatic when disabling HA queues, see: http://docs.openstack.org/developer/performance-docs/test_results/mq/rabbitmq/index.html Therefore, we should allow deployers to set their own policies when desired. Change-Id: I156b8618e78d74823ec568053157afc853baad84 Closes-Bug: #1607830
77 lines
3.0 KiB
YAML
77 lines
3.0 KiB
YAML
---
|
|
# 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: "{{ rabbitmq_host_group }}"
|
|
user: root
|
|
gather_facts: true
|
|
vars_files:
|
|
- test-vars.yml
|
|
tasks:
|
|
- name: Check rabbitmq is running
|
|
command: "pgrep -f rabbit"
|
|
delegate_to: "{{ item }}"
|
|
when: ansible_ssh_host == item
|
|
with_items:
|
|
- 10.100.100.101
|
|
- 10.100.100.102
|
|
- 10.100.100.103
|
|
- name: Open rabbitmq.config
|
|
slurp:
|
|
src: "/etc/rabbitmq/rabbitmq.config"
|
|
register: rabbitmq_config
|
|
- name: Open enabled_plugins
|
|
slurp:
|
|
src: "/etc/rabbitmq/enabled_plugins"
|
|
register: enabled_plugins
|
|
- name: Read rabbitmq_ssl_cert
|
|
stat:
|
|
path: "{{ rabbitmq_ssl_cert }}"
|
|
register: rabbitmq_ssl_cert_stat
|
|
- name: Read rabbitmq_ssl_key
|
|
stat:
|
|
path: "{{ rabbitmq_ssl_key }}"
|
|
register: rabbitmq_ssl_key_stat
|
|
- name: Read rabbit files
|
|
set_fact:
|
|
enabled_plugins_contents: "{{ enabled_plugins.content | b64decode }}"
|
|
rabbitmq_config_contents: "{{ rabbitmq_config.content | b64decode }}"
|
|
rabbitmq_ssl_cert_checksum: "{{ rabbitmq_ssl_cert_stat.stat.checksum }}"
|
|
rabbitmq_ssl_key_checksum: "{{ rabbitmq_ssl_key_stat.stat.checksum }}"
|
|
- name: Check files contents
|
|
assert:
|
|
that:
|
|
- "'rabbitmq_management' in enabled_plugins_contents"
|
|
- name: Get status of rabbitmq
|
|
command: rabbitmqctl status
|
|
register: rabbitmqctl_status
|
|
- name: Ensure SSL cert/key checksums are identical across cluster
|
|
assert:
|
|
that:
|
|
- hostvars['container1']['rabbitmq_ssl_cert_checksum'] == hostvars['container2']['rabbitmq_ssl_cert_checksum'] == hostvars['container3']['rabbitmq_ssl_cert_checksum']
|
|
- hostvars['container1']['rabbitmq_ssl_key_checksum'] == hostvars['container2']['rabbitmq_ssl_key_checksum'] == hostvars['container3']['rabbitmq_ssl_key_checksum']
|
|
- name: Ensure expected version of rabbitmq is running
|
|
assert:
|
|
that: rabbitmqctl_status.stdout | search ("rabbit,\"RabbitMQ\",\"{{ rabbitmq_release_version }}\"")
|
|
- name: Get the policy list
|
|
command: rabbitmqctl -q list_policies
|
|
register: rabbitmq_policies_output
|
|
- debug:
|
|
var: rabbitmq_policies.stdout
|
|
# Expected policy: "/ HA all ^(?!amq\\.).* {"ha-mode":"all"} 0"
|
|
- name: Validate that the expected policies are present
|
|
assert:
|
|
that: rabbitmq_policies_output.stdout | search("amq")
|