diff --git a/mistralclient/api/v2/action_executions.py b/mistralclient/api/v2/action_executions.py index 727f3f8..f613529 100644 --- a/mistralclient/api/v2/action_executions.py +++ b/mistralclient/api/v2/action_executions.py @@ -33,7 +33,7 @@ class ActionExecutionManager(base.ResourceManager): data['input'] = json.dumps(input) if params: - data['params'] = params + data['params'] = json.dumps(params) resp = self.client.http_client.post( '/action_executions', diff --git a/mistralclient/tests/functional/cli/v2/cli_tests_v2.py b/mistralclient/tests/functional/cli/v2/cli_tests_v2.py index 996b23e..86d8d8d 100644 --- a/mistralclient/tests/functional/cli/v2/cli_tests_v2.py +++ b/mistralclient/tests/functional/cli/v2/cli_tests_v2.py @@ -680,6 +680,34 @@ class ActionExecutionCLITests(base_v2.MistralClientTestBase): self.assertEqual(wf_name, self.direct_wf['Name']) self.assertEqual(status, 'SUCCESS') + def test_act_execution_create_delete(self): + action_ex = self.mistral_admin( + 'run-action', + params="std.echo '{0}' --save-result".format( + '{"output": "Hello!"}') + ) + action_ex_id = self.get_value_of_field(action_ex, 'ID') + + self.assertTableStruct(action_ex, ['Field', 'Value']) + + name = self.get_value_of_field(action_ex, 'Name') + wf_name = self.get_value_of_field(action_ex, 'Workflow name') + task_name = self.get_value_of_field(action_ex, 'Task name') + + self.assertEqual('std.echo', name) + self.assertEqual('None', wf_name) + self.assertEqual('None', task_name) + + action_exs = self.mistral_admin('action-execution-list') + + self.assertIn(action_ex_id, [ex['ID'] for ex in action_exs]) + + self.mistral_admin('action-execution-delete', params=action_ex_id) + + action_exs = self.mistral_admin('action-execution-list') + + self.assertNotIn(action_ex_id, [ex['ID'] for ex in action_exs]) + class NegativeCLITests(base_v2.MistralClientTestBase): """This class contains negative tests."""