kolla-ansible/tests/test-kolla-toolbox.yml
Mark Goddard 70b515bf12 Catch errors and changes in kolla_toolbox module
The kolla_toolbox Ansible module executes as-hoc ansible commands in the
kolla_toolbox container, and parses the output to make it look as if
ansible-playbook executed the command. Currently however, this module
sometimes fails to catch failures of the underlying command, and also
sometimes shows tasks as 'ok' when the underlying command was changed.
This has been tested both before and after the upgrade to ansible 2.8.

This change fixes this issue by configuring ansible to emit output in
JSON format, to make parsing simpler. We can now pick up errors and
changes, and signal them to the caller.

This change also adds an ansible playbook, tests/test-kolla-toolbox.yml,
that can be executed to test the module. It's not currently integrated
with any CI jobs.

Note that this change cannot be backported as the JSON output callback
plugin was added in Ansible 2.5.

Change-Id: I8236dd4165f760c819ca972b75cbebc62015fada
Closes-Bug: #1844114
2019-09-16 14:34:11 +01:00

82 lines
1.8 KiB
YAML

---
- name: Test the kolla_toolbox module
hosts: localhost
gather_facts: false
tasks:
- name: Test successful & unchanged
kolla_toolbox:
module_name: debug
module_args:
msg: hi
register: result
- name: Assert result is successful
assert:
that: result is successful
- name: Assert result is not changed
assert:
that: result is not changed
- name: Test successful & changed
kolla_toolbox:
module_name: command
module_args:
echo hi
register: result
- name: Assert result is successful
assert:
that: result is successful
- name: Assert result is changed
assert:
that: result is changed
- name: Test unsuccessful
kolla_toolbox:
module_name: command
module_args:
foo
register: result
ignore_errors: true
- name: Assert result is failed
assert:
that: result is failed
- name: Test invalid module parameters
kolla_toolbox:
module_name: debug
module_args:
foo: bar
register: result
ignore_errors: true
- name: Assert result is failed
assert:
that: result is failed
- name: Setup for Test successful & changed (JSON format)
kolla_toolbox:
module_name: file
module_args:
path: /tmp/foo
state: absent
- name: Test successful & changed (JSON format)
kolla_toolbox:
module_name: file
module_args:
path: /tmp/foo
state: directory
register: result
- name: Assert result is successful
assert:
that: result is successful
- name: Assert result is changed
assert:
that: result is changed