mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-19 22:18:17 -06:00
14132 fix webhook_worker
This commit is contained in:
parent
7770637e3a
commit
7cb704db47
@ -42,11 +42,11 @@ def module_member(name):
|
|||||||
return getattr(module, member)
|
return getattr(module, member)
|
||||||
|
|
||||||
|
|
||||||
def process_event_rules(event_rule, model_name, event, data, timestamp, username, request_id):
|
def process_event_rules(event_rule, model_name, event, data, timestamp, username, request_id, snapshots):
|
||||||
if event_rule.event_type == EventRuleTypeChoices.WEBHOOK:
|
if event_rule.event_type == EventRuleTypeChoices.WEBHOOK:
|
||||||
process_webhook(event_rule, model_name, event, data, timestamp, username, request_id)
|
process_webhook(event_rule, model_name, event, data, timestamp, username, request_id, snapshots)
|
||||||
elif event_rule.event_type == EventRuleTypeChoicesEventRuleTypeChoices.SCRIPT:
|
elif event_rule.event_type == EventRuleTypeChoicesEventRuleTypeChoices.SCRIPT:
|
||||||
process_script(event_rule, model_name, event, data, timestamp, username, request_id)
|
process_script(event_rule, model_name, event, data, timestamp, username, request_id, snapshots)
|
||||||
|
|
||||||
|
|
||||||
@job('default')
|
@job('default')
|
||||||
@ -58,21 +58,7 @@ def process_event(event_rule, model_name, event, data, timestamp, username, requ
|
|||||||
if not eval_conditions(event_rule, data):
|
if not eval_conditions(event_rule, data):
|
||||||
return
|
return
|
||||||
|
|
||||||
# Prepare context data for headers & body templates
|
|
||||||
context = {
|
|
||||||
'event': WEBHOOK_EVENT_TYPES[event],
|
|
||||||
'timestamp': timestamp,
|
|
||||||
'model': model_name,
|
|
||||||
'username': username,
|
|
||||||
'request_id': request_id,
|
|
||||||
'data': data,
|
|
||||||
}
|
|
||||||
if snapshots:
|
|
||||||
context.update({
|
|
||||||
'snapshots': snapshots
|
|
||||||
})
|
|
||||||
|
|
||||||
# process the events pipeline
|
# process the events pipeline
|
||||||
for name in settings.NETBOX_EVENTS_PIPELINE:
|
for name in settings.NETBOX_EVENTS_PIPELINE:
|
||||||
func = module_member(name)
|
func = module_member(name)
|
||||||
func(event_rule, model_name, event, data, timestamp, username, request_id)
|
func(event_rule, model_name, event, data, timestamp, username, request_id, snapshots)
|
||||||
|
@ -12,7 +12,7 @@ from .webhooks import generate_signature
|
|||||||
logger = logging.getLogger('netbox.webhooks_worker')
|
logger = logging.getLogger('netbox.webhooks_worker')
|
||||||
|
|
||||||
|
|
||||||
def process_script(webhook, model_name, event, data, timestamp, username, request_id=None):
|
def process_script(webhook, model_name, event, data, timestamp, username, request_id=None, snapshots=None):
|
||||||
"""
|
"""
|
||||||
Make a POST request to the defined Webhook
|
Make a POST request to the defined Webhook
|
||||||
"""
|
"""
|
||||||
|
@ -12,13 +12,27 @@ from .webhooks import generate_signature
|
|||||||
logger = logging.getLogger('netbox.webhooks_worker')
|
logger = logging.getLogger('netbox.webhooks_worker')
|
||||||
|
|
||||||
|
|
||||||
def process_webhook(event_rule, model_name, event, data, timestamp, username, request_id=None):
|
def process_webhook(event_rule, model_name, event, data, timestamp, username, request_id=None, snapshots=None):
|
||||||
"""
|
"""
|
||||||
Make a POST request to the defined Webhook
|
Make a POST request to the defined Webhook
|
||||||
"""
|
"""
|
||||||
|
|
||||||
webhook = event_rule.object
|
webhook = event_rule.object
|
||||||
|
|
||||||
|
# Prepare context data for headers & body templates
|
||||||
|
context = {
|
||||||
|
'event': WEBHOOK_EVENT_TYPES[event],
|
||||||
|
'timestamp': timestamp,
|
||||||
|
'model': model_name,
|
||||||
|
'username': username,
|
||||||
|
'request_id': request_id,
|
||||||
|
'data': data,
|
||||||
|
}
|
||||||
|
if snapshots:
|
||||||
|
context.update({
|
||||||
|
'snapshots': snapshots
|
||||||
|
})
|
||||||
|
|
||||||
# Build the headers for the HTTP request
|
# Build the headers for the HTTP request
|
||||||
headers = {
|
headers = {
|
||||||
'Content-Type': webhook.http_content_type,
|
'Content-Type': webhook.http_content_type,
|
||||||
|
Loading…
Reference in New Issue
Block a user