mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Convert additional_headers to a TextField
This commit is contained in:
@ -1,23 +0,0 @@
|
|||||||
# Generated by Django 2.2.10 on 2020-02-24 20:12
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('extras', '0037_configcontexts_clusters'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='webhook',
|
|
||||||
name='body_template',
|
|
||||||
field=models.TextField(blank=True),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='webhook',
|
|
||||||
name='http_content_type',
|
|
||||||
field=models.CharField(default='application/json', max_length=100),
|
|
||||||
),
|
|
||||||
]
|
|
43
netbox/extras/migrations/0038_webhook_template_support.py
Normal file
43
netbox/extras/migrations/0038_webhook_template_support.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
def json_to_text(apps, schema_editor):
|
||||||
|
"""
|
||||||
|
Convert a JSON representation of HTTP headers to key-value pairs (one header per line)
|
||||||
|
"""
|
||||||
|
Webhook = apps.get_model('extras', 'Webhook')
|
||||||
|
for webhook in Webhook.objects.exclude(additional_headers=''):
|
||||||
|
data = json.loads(webhook.additional_headers)
|
||||||
|
headers = ['{}: {}'.format(k, v) for k, v in data.items()]
|
||||||
|
Webhook.objects.filter(pk=webhook.pk).update(additional_headers='\n'.join(headers))
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('extras', '0037_configcontexts_clusters'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='webhook',
|
||||||
|
name='body_template',
|
||||||
|
field=models.TextField(blank=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='webhook',
|
||||||
|
name='additional_headers',
|
||||||
|
field=models.TextField(blank=True, default=''),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='webhook',
|
||||||
|
name='http_content_type',
|
||||||
|
field=models.CharField(default='application/json', max_length=100),
|
||||||
|
),
|
||||||
|
migrations.RunPython(
|
||||||
|
code=json_to_text
|
||||||
|
),
|
||||||
|
]
|
@ -90,8 +90,7 @@ class Webhook(models.Model):
|
|||||||
help_text='The complete list of official content types is available '
|
help_text='The complete list of official content types is available '
|
||||||
'<a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.'
|
'<a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.'
|
||||||
)
|
)
|
||||||
additional_headers = JSONField(
|
additional_headers = models.TextField(
|
||||||
null=True,
|
|
||||||
blank=True,
|
blank=True,
|
||||||
help_text="User supplied headers which should be added to the request in addition to the HTTP content type. "
|
help_text="User supplied headers which should be added to the request in addition to the HTTP content type. "
|
||||||
"Headers are supplied as key/value pairs in a JSON object."
|
"Headers are supplied as key/value pairs in a JSON object."
|
||||||
|
Reference in New Issue
Block a user