mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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='http_method',
 | |
|             field=models.CharField(default='POST', max_length=30),
 | |
|         ),
 | |
|         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
 | |
|         ),
 | |
|     ]
 |