ansible/test/integration/targets/sensu_handler/tasks/main.yml
David Moreau-Simard 7a56e5d45d Add sensu_handler Ansible module
This provides a sensu_handler module in order to be able to dynamically
configure a Sensu handler.
2017-08-09 16:34:20 -04:00

120 lines
3.3 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- name: Creating a handler if the directory doesn't exist should work
sensu_handler:
name: "handler"
type: "pipe"
command: "/bin/bash"
state: "present"
- name: Insert junk JSON in a handlers file
lineinfile:
state: "present"
create: "yes"
path: "/etc/sensu/conf.d/handlers/handler.json"
line: "{'foo' = bar}"
- name: Configure a handler with an existing invalid file
sensu_handler:
name: "handler"
type: "pipe"
command: "/bin/bash"
state: "present"
register: handler
- name: Configure a handler (again)
sensu_handler:
name: "handler"
type: "pipe"
command: "/bin/bash"
state: "present"
register: handler_twice
- name: Retrieve configuration file stat
stat:
path: "{{ handler['file'] }}"
register: handler_stat
- name: Assert that handler data was set successfully and properly
assert:
that:
- "handler | success"
- "handler | changed"
- "handler_twice | success"
- "not handler_twice | changed"
- "handler_stat.stat.exists == true"
- "handler['name'] == 'handler'"
- "handler['file'] == '/etc/sensu/conf.d/handlers/handler.json'"
- "handler['config']['type'] == 'pipe'"
- "handler['config']['command'] == '/bin/bash'"
- "handler['config']['timeout'] == 10"
- "handler['config']['handle_flapping'] == false"
- "handler['config']['handle_silenced'] == false"
- name: Assert that the handler configuration file is actually configured properly
vars:
config: "{{ lookup('file', handler['file']) | from_json }}"
assert:
that:
- "'handler' in config['handlers']"
- "config['handlers']['handler']['type'] == 'pipe'"
- "config['handlers']['handler']['command'] == '/bin/bash'"
- "config['handlers']['handler']['timeout'] == 10"
- "config['handlers']['handler']['handle_flapping'] == false"
- "config['handlers']['handler']['handle_silenced'] == false"
- name: Delete Sensu handler configuration
sensu_handler:
name: "handler"
state: "absent"
register: handler_delete
- name: Delete Sensu handler configuration (again)
sensu_handler:
name: "handler"
state: "absent"
register: handler_delete_twice
- name: Retrieve configuration file stat
stat:
path: "{{ handler['file'] }}"
register: handler_stat
- name: Assert that handler deletion was successful
assert:
that:
- "handler_delete | success"
- "handler_delete | changed"
- "handler_delete_twice | success"
- "not handler_delete_twice | changed"
- "handler_stat.stat.exists == false"
- name: Configuring a handler without a name should fail
sensu_handler:
type: "pipe"
command: "/bin/bash"
register: failure
ignore_errors: true
- name: Assert that configuring a handler without a name fails
assert:
that:
- failure | failed
- "'required arguments: name' in failure['msg']"
- name: Configuring a handler without a type should fail
sensu_handler:
name: "pipe"
command: "/bin/bash"
register: failure
ignore_errors: true
- name: Assert that configuring a handler without a type fails
assert:
that:
- failure | failed
- "'the following are missing: type' in failure['msg']"
- include: pipe.yml
- include: tcp.yml
- include: udp.yml
- include: set.yml
- include: transport.yml