add error handling for webhook and custom links. fix initializer comments

This commit is contained in:
Schylar Utleye 2021-01-15 23:12:03 -06:00 committed by Christian Mäder
parent a3cf645dc5
commit 618feff63a
3 changed files with 30 additions and 23 deletions

View File

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

View File

@ -10,15 +10,20 @@ if custom_links is None:
sys.exit() sys.exit()
def get_content_type_id(content_type_str): def get_content_type_id(content_type_str):
for type in ContentType.objects.all(): try:
if type.name == content_type_str: id = ContentType.objects.get(model=content_type_str).id
return type.id return id
except ContentType.DoesNotExist:
print(" Error determining content type id for user declared var: {0}".format(content_type_str))
for link in custom_links: for link in custom_links:
content_type = link.pop('content_type') content_type = link.pop('content_type')
link['content_type_id'] = get_content_type_id(content_type) link['content_type_id'] = get_content_type_id(content_type)
if link['content_type_id'] is None: if link['content_type_id'] is not None:
print("⚠️ Error determining content type id for user declared var: {0}".format(content_type)) custom_link = CustomLink(**link)
else: if not CustomLink.objects.filter(name=custom_link.name):
CustomLink(**link).save() custom_link.save()
print(" Created Custom Link {0}".format(custom_link.name))
else:
print("⚠️ Skipping Custom Link {0}, already exists".format(custom_link.name))

View File

@ -10,20 +10,22 @@ if webhooks is None:
sys.exit() sys.exit()
def get_content_type_id(content_type_str): def get_content_type_id(content_type_str):
return ContentType.objects.get(model=content_type_str).id 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))
for hook in webhooks: for hook in webhooks:
obj_types = hook.pop('object_types') obj_types = hook.pop('object_types')
obj_type_ids = [] obj_type_ids = []
for obj in obj_types: for obj in obj_types:
obj_type_ids.append(get_content_type_id(obj)) obj_type_ids.append(get_content_type_id(obj))
if obj_type_ids is None: if obj_type_ids is not None:
print("⚠️ Error determining content type id for user declared var: {0}".format(obj_type))
else:
webhook = Webhook(**hook) webhook = Webhook(**hook)
if not Webhook.objects.filter(name=webhook.name): if not Webhook.objects.filter(name=webhook.name):
webhook.save() webhook.save()
webhook.content_types.set(obj_type_ids) webhook.content_types.set(obj_type_ids)
print(" Created Webhook {0}".format(webhook.name)) print("🖥️ Created Webhook {0}".format(webhook.name))
else: else:
print(" Skipping Webhook {0}, already exists".format(webhook.name)) print("⚠️ Skipping Webhook {0}, already exists".format(webhook.name))