def test_get_action_class(self): self.assertTrue( issubclass(a_m.get_action_class("std.echo"), std.EchoAction)) self.assertTrue( issubclass(a_m.get_action_class("std.http"), std.HTTPAction)) self.assertTrue( issubclass(a_m.get_action_class("std.mistral_http"), std.MistralHTTPAction)) self.assertTrue( issubclass(a_m.get_action_class("std.email"), std.SendEmailAction)) self.assertTrue( issubclass(a_m.get_action_class("std.javascript"), std.JavaScriptAction))
def start_action(self, action_name, action_input, description=None, **params): with db_api.transaction(): action_def = action_handler.resolve_definition(action_name) resolved_action_input = action_handler.get_action_input( action_name, action_input) action = a_m.get_action_class( action_def.name)(**resolved_action_input) # If we see action is asynchronous, then we enforce 'save_result'. if params.get('save_result') or not action.is_sync(): action_ex = action_handler.create_action_execution( action_def, resolved_action_input, description=description) action_handler.run_action(action_def, resolved_action_input, action_ex.id, params.get('target')) return action_ex.get_clone() else: output = action_handler.run_action(action_def, resolved_action_input, target=params.get('target'), async=False) return db_models.ActionExecution(name=action_name, description=description, input=action_input, output=output)
def is_sync(self, input_dict): try: prepared_input_dict = self._prepare_input(input_dict) a = a_m.get_action_class( self.action_def.name)(**prepared_input_dict) return a.is_sync() except BaseException as e: raise exc.InputException(str(e))
def test_get_action_class(self): self.assertTrue( issubclass(a_m.get_action_class("std.echo"), std.EchoAction) ) self.assertTrue( issubclass(a_m.get_action_class("std.http"), std.HTTPAction) ) self.assertTrue( issubclass( a_m.get_action_class("std.mistral_http"), std.MistralHTTPAction ) ) self.assertTrue( issubclass(a_m.get_action_class("std.email"), std.SendEmailAction) ) self.assertTrue( issubclass( a_m.get_action_class("std.javascript"), std.JavaScriptAction ) )
def start_action(self, action_name, action_input, description=None, **params): with db_api.transaction(): action_def = action_handler.resolve_definition(action_name) resolved_action_input = action_handler.get_action_input( action_name, action_input ) action = a_m.get_action_class(action_def.name)( **resolved_action_input ) # If we see action is asynchronous, then we enforce 'save_result'. if params.get('save_result') or not action.is_sync(): action_ex = action_handler.create_action_execution( action_def, resolved_action_input, description=description ) action_handler.run_action( action_def, resolved_action_input, action_ex.id, params.get('target') ) return action_ex.get_clone() else: output = action_handler.run_action( action_def, resolved_action_input, target=params.get('target'), async=False ) return db_models.ActionExecution( name=action_name, description=description, input=action_input, output=output )
def is_sync(self, input_dict): input_dict = self._prepare_input(input_dict) a = a_m.get_action_class(self.action_def.name)(**input_dict) return a.is_sync()