Initial commit
This commit is contained in:
commit
f381aedff5
4 changed files with 83 additions and 0 deletions
36
files/netbox-webhook-handler
Executable file
36
files/netbox-webhook-handler
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/python3
|
||||
import threading
|
||||
import subprocess
|
||||
import logging
|
||||
import time
|
||||
|
||||
import bottle
|
||||
|
||||
|
||||
class HandlerThread(threading.Thread):
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.trigger = threading.Event()
|
||||
self.trigger.set()
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
self.trigger.wait()
|
||||
self.trigger.clear()
|
||||
result = subprocess.run(['/etc/netbox_webhook_handler.sh'])
|
||||
if result.returncode:
|
||||
logging.warning(f'Handler exited with non-zero exit code {result.returncode}')
|
||||
time.sleep(10)
|
||||
|
||||
|
||||
handler_thread = HandlerThread(daemon=True)
|
||||
|
||||
|
||||
@bottle.route('/webhook', method='POST')
|
||||
def webhook():
|
||||
handler_thread.trigger.set()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
handler_thread.start()
|
||||
bottle.run(host='127.0.0.1', port=8433)
|
||||
10
files/netbox-webhook-handler.service
Normal file
10
files/netbox-webhook-handler.service
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=Netbox Webhook Handler
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/local/sbin/netbox-webhook-handler
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue