Fix error message format in action handler

Change-Id: I562429934b6f53eb5bc84adba38b7446b9b58c51
This commit is contained in:
Renat Akhmerov 2016-11-10 16:17:09 +07:00
parent 88047afc96
commit f1071f5908
2 changed files with 44 additions and 2 deletions

View File

@ -36,8 +36,10 @@ def on_action_complete(action_ex, result):
try:
action.complete(result)
except exc.MistralException as e:
msg = ("Failed to complete action [action=%s, task=%s]: %s\n%s" %
(action_ex.name, task_ex.name, e, tb.format_exc()))
msg = (
"Failed to complete action [error=%s, action=%s, task=%s]:\n%s"
% (e, action_ex.name, task_ex.name, tb.format_exc())
)
LOG.error(msg)

View File

@ -16,6 +16,7 @@ from oslo_config import cfg
from mistral.db.v2 import api as db_api
from mistral import exceptions as exc
from mistral.services import workbooks as wb_service
from mistral.services import workflows as wf_service
from mistral.tests.unit.engine import base
from mistral.workflow import states
@ -538,3 +539,42 @@ class ErrorHandlingEngineTest(base.EngineTestCase):
self.assertIsNotNone(state_info)
self.assertTrue(state_info.find('error=') > 0)
self.assertTrue(state_info.find('error=') < state_info.find('wf='))
def test_error_message_format_on_adhoc_action_error(self):
wb_text = """
version: '2.0'
name: wb
actions:
my_action:
input:
- output
output: <% invalid_yaql_function() %>
base: std.echo
base-input:
output: <% $.output %>
workflows:
wf:
tasks:
task1:
action: my_action output="test"
"""
wb_service.create_workbook_v2(wb_text)
wf_ex = self.engine.start_workflow('wb.wf', {})
self.await_workflow_error(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
state_info = task_ex.state_info
self.assertIsNotNone(state_info)
self.assertTrue(state_info.find('error=') > 0)
self.assertTrue(state_info.find('error=') < state_info.find('action='))