Adjust to repository standards

This commit is contained in:
Christian Mäder 2021-02-08 10:35:31 +01:00
parent e4e2c788a9
commit 16ae063321
4 changed files with 83 additions and 71 deletions

View File

@ -9,13 +9,13 @@
##
## Examples:
# - name: link_to_repo
# text: 'Link to docker repository'
# url: 'https://github.com/netbox-community/netbox-docker'
# new_window: False
# content_type: device
# - name: link_to_localhost
# text: 'Link to the users localhost'
# url: 'http://localhost'
# new_window: True
# content_type: device
# - name: link_to_repo
# text: 'Link to Netbox Docker'
# url: 'https://github.com/netbox-community/netbox-docker'
# new_window: False
# content_type: device
# - name: link_to_localhost
# text: 'Link to localhost'
# url: 'http://localhost'
# new_window: True
# content_type: device

View File

@ -10,18 +10,18 @@
## Examples:
# - name: device_creation
# payload_url: 'https://github.com/netbox-community/netbox-docker'
# payload_url: 'http://localhost:8080'
# object_types:
# - device
# - cable
# type_create: True
# - name: device_update
# payload_url: 'https://google.com'
# payload_url: 'http://localhost:8080'
# object_types:
# - device
# type_update: True
# - name: device_delete
# payload_url: 'https://gitlab.com1'
# payload_url: 'http://localhost:8080'
# object_types:
# - device
# type_delete: True

View File

@ -9,17 +9,21 @@ custom_links = load_yaml('/opt/netbox/initializers/custom_links.yml')
if custom_links is None:
sys.exit()
def get_content_type_id(content_type_str):
def get_content_type_id(content_type):
try:
return ContentType.objects.get(model=content_type_str).id
return ContentType.objects.get(model=content_type).id
except ContentType.DoesNotExist:
print("⚠️ Error determining content type id for user declared var: {0}".format(content_type_str))
pass
for link in custom_links:
content_type = link.pop('content_type')
link['content_type_id'] = get_content_type_id(content_type)
if link['content_type_id'] is not None:
custom_link = CustomLink(**link)
if not CustomLink.objects.filter(name=custom_link.name):
custom_link.save()
print("🖥️ Created Custom Link {0}".format(custom_link.name))
if link['content_type_id'] is None:
print("⚠️ Unable to create Custom Link '{0}': The content_type '{1}' is unknown".format(link.name, content_type))
continue
custom_link, created = CustomLink.objects.get_or_create(**link)
if created:
print("🔗 Created Custom Link '{0}'".format(custom_link.name))

View File

@ -9,18 +9,26 @@ webhooks = load_yaml('/opt/netbox/initializers/webhooks.yml')
if webhooks is None:
sys.exit()
def get_content_type_id(content_type_str):
def get_content_type_id(hook_name, content_type):
try:
id = ContentType.objects.get(model=content_type_str).id
return id
except ContentType.DoesNotExist:
print("⚠️ Error determining content type id for user declared var: {0}".format(content_type_str))
return ContentType.objects.get(model=content_type).id
except ContentType.DoesNotExist as ex:
print("⚠️ Webhook '{0}': The object_type '{1}' is unknown.".format(hook_name, content_type))
raise ex
for hook in webhooks:
obj_types = hook.pop('object_types')
obj_type_ids = [ get_content_type_id(obj) for obj in obj_types ]
if obj_type_ids is not None:
webhook, created = Webhook.objects.get_or_create(**hook)
if created:
webhook.content_types.set(obj_type_ids)
print("🖥️ Created Webhook {0}".format(webhook.name))
try:
obj_type_ids = [get_content_type_id(hook['name'], obj) for obj in obj_types]
except ContentType.DoesNotExist:
continue
webhook, created = Webhook.objects.get_or_create(**hook)
if created:
webhook.content_types.set(obj_type_ids)
webhook.save()
print("🪝 Created Webhook {0}".format(webhook.name))