MCPcopy Create free account
hub / github.com/StackStorm/st2 / HooksHolder

Class HooksHolder

st2api/st2api/controllers/v1/webhooks.py:44–82  ·  view source on GitHub ↗

Maintains a hook to TriggerDB mapping.

Source from the content-addressed store, hash-verified

42
43
44class HooksHolder(object):
45 """
46 Maintains a hook to TriggerDB mapping.
47 """
48
49 def __init__(self):
50 self._triggers_by_hook = {}
51
52 def __contains__(self, key):
53 return key in self._triggers_by_hook
54
55 def add_hook(self, hook, trigger):
56 if hook not in self._triggers_by_hook:
57 self._triggers_by_hook[hook] = []
58 self._triggers_by_hook[hook].append(trigger)
59
60 def remove_hook(self, hook, trigger):
61 if hook not in self._triggers_by_hook:
62 return False
63 remove_index = -1
64 for idx, item in enumerate(self._triggers_by_hook[hook]):
65 if item["id"] == trigger["id"]:
66 remove_index = idx
67 break
68 if remove_index < 0:
69 return False
70 self._triggers_by_hook[hook].pop(remove_index)
71 if not self._triggers_by_hook[hook]:
72 del self._triggers_by_hook[hook]
73 return True
74
75 def get_triggers_for_hook(self, hook):
76 return self._triggers_by_hook.get(hook, [])
77
78 def get_all(self):
79 triggers = []
80 for values in six.itervalues(self._triggers_by_hook):
81 triggers.extend(values)
82 return triggers
83
84
85class WebhooksController(object):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected