From 48854952f8b8083f9477d2643ed65bff83a254fd Mon Sep 17 00:00:00 2001 From: mjtice Date: Thu, 19 Aug 2021 06:02:41 -0600 Subject: [PATCH 1/2] Accept a new parameter `trigger_name`. This is to work around jinja name collisions noted in issue #4641. --- contrib/core/actions/inject_trigger.py | 7 ++++++- contrib/core/actions/inject_trigger.yaml | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/contrib/core/actions/inject_trigger.py b/contrib/core/actions/inject_trigger.py index a6b2e68317..4be58924b2 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,11 @@ 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. + if trigger and trigger_name: + self.logger.error('Parameters `trigger` and `trigger_name` are mutually exclusive.') + raise Exception + + 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. From 57faaeb7554a7d579ab327c6c1e5d90e0311fd12 Mon Sep 17 00:00:00 2001 From: mjtice Date: Fri, 27 Aug 2021 06:47:16 -0600 Subject: [PATCH 2/2] Raise ValueErrors for invalid parameter specifications. --- contrib/core/actions/inject_trigger.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/contrib/core/actions/inject_trigger.py b/contrib/core/actions/inject_trigger.py index 4be58924b2..5e41bf2692 100644 --- a/contrib/core/actions/inject_trigger.py +++ b/contrib/core/actions/inject_trigger.py @@ -32,9 +32,14 @@ def run(self, trigger=None, trigger_name=None, 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: - self.logger.error('Parameters `trigger` and `trigger_name` are mutually exclusive.') - raise Exception + 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(