This creates a trigger instance object given trigger and payload. Trigger can be just a string reference (pack.name) or a ``dict`` containing 'id' or 'uid' or type' and 'parameters' keys. :param trigger: Trigger reference or dictionary with trigger query filters. :type trigger:
(
trigger, payload, occurrence_time, raise_on_no_trigger=False
)
| 26 | |
| 27 | |
| 28 | def create_trigger_instance( |
| 29 | trigger, payload, occurrence_time, raise_on_no_trigger=False |
| 30 | ): |
| 31 | """ |
| 32 | This creates a trigger instance object given trigger and payload. |
| 33 | Trigger can be just a string reference (pack.name) or a ``dict`` containing 'id' or |
| 34 | 'uid' or type' and 'parameters' keys. |
| 35 | |
| 36 | :param trigger: Trigger reference or dictionary with trigger query filters. |
| 37 | :type trigger: ``str`` or ``dict`` |
| 38 | |
| 39 | :param payload: Trigger payload. |
| 40 | :type payload: ``dict`` |
| 41 | """ |
| 42 | trigger_db = get_trigger_db_by_ref_or_dict(trigger=trigger) |
| 43 | |
| 44 | if not trigger_db: |
| 45 | LOG.debug("No trigger in db for %s", trigger) |
| 46 | if raise_on_no_trigger: |
| 47 | raise StackStormDBObjectNotFoundError("Trigger not found for %s" % trigger) |
| 48 | return None |
| 49 | |
| 50 | trigger_ref = trigger_db.get_reference().ref |
| 51 | |
| 52 | trigger_instance = TriggerInstanceDB() |
| 53 | trigger_instance.trigger = trigger_ref |
| 54 | trigger_instance.payload = payload |
| 55 | trigger_instance.occurrence_time = occurrence_time |
| 56 | trigger_instance.status = TRIGGER_INSTANCE_PENDING |
| 57 | return TriggerInstance.add_or_update(trigger_instance) |
| 58 | |
| 59 | |
| 60 | def update_trigger_instance_status(trigger_instance, status): |