diff --git a/tripleo_ansible/ansible_plugins/filter/helpers.py b/tripleo_ansible/ansible_plugins/filter/helpers.py index 67492b1db..6eac7250b 100644 --- a/tripleo_ansible/ansible_plugins/filter/helpers.py +++ b/tripleo_ansible/ansible_plugins/filter/helpers.py @@ -406,9 +406,10 @@ class FilterModule(object): """ failed = [] for item in async_results: + async_result_item = item['create_async_result_item'] try: - if item['failed'] or not item['finished']: - async_result_item = item['create_async_result_item'] + if (item['failed'] or not item['finished'] + or async_result_item['stderr'] != ''): for k, v in async_result_item['container_data'].items(): failed.append(k) except KeyError: diff --git a/tripleo_ansible/tests/plugins/filter/test_helpers.py b/tripleo_ansible/tests/plugins/filter/test_helpers.py index 5839ba912..a144f6497 100644 --- a/tripleo_ansible/tests/plugins/filter/test_helpers.py +++ b/tripleo_ansible/tests/plugins/filter/test_helpers.py @@ -839,6 +839,23 @@ class TestHelperFilters(tests_base.TestCase): "results_file": "/root/.ansible_async/948704694230.17597", "started": 1 }, + { + "ansible_job_id": "9487088344230.17597", + "ansible_loop_var": "container_data", + "changed": True, + "create_async_result_item": { + "stderr": "not happy", + "container_data": { + "haproxy_failed": { + "image": "haproxy:latest", + } + } + }, + "failed": False, + "finished": 1, + "results_file": "/root/.ansible_async/948704694230.17597", + "started": 1 + }, { "ansible_job_id": "948704694230.17597", "ansible_loop_var": "container_data", @@ -881,7 +898,7 @@ class TestHelperFilters(tests_base.TestCase): "started": 1 } ] - expected_list = ['memcached', 'mysql'] + expected_list = ['haproxy_failed', 'memcached', 'mysql'] result = self.filters.get_failed_containers(data) self.assertEqual(result, expected_list)