diff --git a/contrib/core/actions/inject_trigger.py b/contrib/core/actions/inject_trigger.py index a6b2e68317..5e41bf2692 100644 --- a/contrib/core/actions/inject_trigger.py +++ b/contrib/core/actions/inject_trigger.py @@ -21,7 +21,7 @@ class InjectTriggerAction(Action): - def run(self, trigger, payload=None, trace_tag=None): + def run(self, trigger=None, trigger_name=None, payload=None, trace_tag=None): payload = payload or {} datastore_service = self.action_service.datastore_service @@ -32,6 +32,16 @@ def run(self, trigger, payload=None, trace_tag=None): # results in a TriggerInstanceDB database object creation or not. The object is created # inside rulesengine service and could fail due to the user providing an invalid trigger # reference or similar. + + # Raise an error if both trigger and trigger_name are specified + if trigger and trigger_name: + raise ValueError('Parameters `trigger` and `trigger_name` are mutually exclusive.') + + # Raise an error if neither trigger nor trigger_name are specified + if not trigger and not trigger_name: + raise ValueError('You must include either the `trigger_name` or `trigger` parameter.') + + trigger = trigger if trigger else trigger_name self.logger.debug( 'Injecting trigger "%s" with payload="%s"' % (trigger, str(payload)) ) diff --git a/contrib/core/actions/inject_trigger.yaml b/contrib/core/actions/inject_trigger.yaml index bfc98dc71c..b8e3de89fa 100644 --- a/contrib/core/actions/inject_trigger.yaml +++ b/contrib/core/actions/inject_trigger.yaml @@ -6,9 +6,15 @@ enabled: true entry_point: inject_trigger.py parameters: trigger: + type: string + description: | + Trigger reference (e.g. mypack.my_trigger). + This parameter is superceded by `trigger_name` but left for backwards compatibility. + required: false + trigger_name: type: string description: Trigger reference (e.g. mypack.my_trigger). - required: true + required: false payload: type: object description: Trigger payload.