openstack-ansible-rabbitmq_.../tests/test-rabbitmq-server-functional.yml
Travis Truman 75d8dac4d0 Rabbit policies now overrideable by deployers
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
2016-09-07 12:32:25 -04:00

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")