Kevin Carter 47aff12e6c Add functional tests to elk_metrics_6x
Change-Id: Ia997aa0a9b9388be0e8f72b633b3b9cc25b4429c
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-07-20 18:14:22 +00:00

52 lines
1.7 KiB
YAML

---
- import_playbook: run-setup.yml
- name: Test host layout
hosts: localhost
become: true
environment:
ANSIBLE_LOG_PATH: "/tmp/elk-metrics-6x-logs/ansible-elk-test.log"
vars:
storage_node_count: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
expected_masters: [1, 1, 3, 3, 3, 3, 3, 5, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 11]
tasks:
# the elasticserch cluster elects one master from all those which are marked as master-eligible
# 1 node cluster can only have one master
# 2 node clusters have 1 master-eligable nodes to avoid split-brain
# 3 node clusters have 3 master-eligable nodes
# >3 node clusters have (nodes // 2) eligable masters rounded up to the next odd number
- name: Master node count fact
set_fact:
master_node_count: |-
{% set masters = 0 %}
{% if (item | int) < 3 %}
{% set masters = 1 %}
{% elif (item | int) == 3 %}
{% set masters = 3 %}
{% else %}
{% set masters = (item | int ) // 2 %}
{% if ((masters | int) % 2 == 0) %}
{% set masters = (masters | int) + 1 %}
{% endif %}
{% endif %}
{{ masters }}
with_items: "{{ storage_node_count }}"
register: computed_masters
- name: Gather results
set_fact:
masters: "{{ masters|default([]) + [ { 'nodes': item.item, 'masters': (item.ansible_facts.master_node_count|int) } ] }}"
with_items: "{{ computed_masters.results }}"
- name: Check results
assert:
that: item.0 == item.1.masters
with_together:
- "{{ expected_masters }}"
- "{{ masters }}"