mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
625 lines
25 KiB
Python
625 lines
25 KiB
Python
import django.db.models.functions.text
|
|
import taggit.managers
|
|
from django.db import migrations, models
|
|
|
|
import utilities.json
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
replaces = [
|
|
('dcim', '0160_populate_cable_ends'),
|
|
('dcim', '0161_cabling_cleanup'),
|
|
('dcim', '0162_unique_constraints'),
|
|
('dcim', '0163_weight_fields'),
|
|
('dcim', '0164_rack_mounting_depth'),
|
|
('dcim', '0165_standardize_description_comments'),
|
|
('dcim', '0166_virtualdevicecontext')
|
|
]
|
|
|
|
dependencies = [
|
|
('ipam', '0047_squashed_0053'),
|
|
('tenancy', '0009_standardize_description_comments'),
|
|
('circuits', '0037_new_cabling_models'),
|
|
('dcim', '0159_populate_cable_paths'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AlterModelOptions(
|
|
name='cable',
|
|
options={'ordering': ('pk',)},
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='cable',
|
|
unique_together=set(),
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='termination_a_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='termination_a_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='termination_b_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='termination_b_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='_termination_a_device',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cable',
|
|
name='_termination_b_device',
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='cablepath',
|
|
unique_together=set(),
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cablepath',
|
|
name='destination_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cablepath',
|
|
name='destination_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cablepath',
|
|
name='origin_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='cablepath',
|
|
name='origin_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='consoleport',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='consoleport',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='consoleserverport',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='consoleserverport',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='frontport',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='frontport',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='interface',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='interface',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='powerfeed',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='powerfeed',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='poweroutlet',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='poweroutlet',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='powerport',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='powerport',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='rearport',
|
|
name='_link_peer_id',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='rearport',
|
|
name='_link_peer_type',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='cabletermination',
|
|
name='dcim_cable_termination_unique_termination',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='location',
|
|
name='dcim_location_name',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='location',
|
|
name='dcim_location_slug',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='region',
|
|
name='dcim_region_name',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='region',
|
|
name='dcim_region_slug',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='sitegroup',
|
|
name='dcim_sitegroup_name',
|
|
),
|
|
migrations.RemoveConstraint(
|
|
model_name='sitegroup',
|
|
name='dcim_sitegroup_slug',
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='consoleport',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='consoleporttemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='consoleserverport',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='consoleserverporttemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='device',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='devicebay',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='devicebaytemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='devicetype',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='frontport',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='frontporttemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='interface',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='interfacetemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='inventoryitem',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='inventoryitemtemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='modulebay',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='modulebaytemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='moduletype',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='powerfeed',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='poweroutlet',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='poweroutlettemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='powerpanel',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='powerport',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='powerporttemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='rack',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='rearport',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='rearporttemplate',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='cabletermination',
|
|
constraint=models.UniqueConstraint(fields=('termination_type', 'termination_id'), name='dcim_cabletermination_unique_termination'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleport',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_consoleport_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_consoleporttemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_consoleporttemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleserverport',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_consoleserverport_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleserverporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_consoleserverporttemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='consoleserverporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_consoleserverporttemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='device',
|
|
constraint=models.UniqueConstraint(django.db.models.functions.text.Lower('name'), models.F('site'), models.F('tenant'), name='dcim_device_unique_name_site_tenant'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='device',
|
|
constraint=models.UniqueConstraint(django.db.models.functions.text.Lower('name'), models.F('site'), condition=models.Q(('tenant__isnull', True)), name='dcim_device_unique_name_site', violation_error_message='Device name must be unique per site.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='device',
|
|
constraint=models.UniqueConstraint(fields=('rack', 'position', 'face'), name='dcim_device_unique_rack_position_face'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='device',
|
|
constraint=models.UniqueConstraint(fields=('virtual_chassis', 'vc_position'), name='dcim_device_unique_virtual_chassis_vc_position'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='devicebay',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_devicebay_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='devicebaytemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_devicebaytemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='devicetype',
|
|
constraint=models.UniqueConstraint(fields=('manufacturer', 'model'), name='dcim_devicetype_unique_manufacturer_model'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='devicetype',
|
|
constraint=models.UniqueConstraint(fields=('manufacturer', 'slug'), name='dcim_devicetype_unique_manufacturer_slug'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='frontport',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_frontport_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='frontport',
|
|
constraint=models.UniqueConstraint(fields=('rear_port', 'rear_port_position'), name='dcim_frontport_unique_rear_port_position'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='frontporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_frontporttemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='frontporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_frontporttemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='frontporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('rear_port', 'rear_port_position'), name='dcim_frontporttemplate_unique_rear_port_position'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='interface',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_interface_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='interfacetemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_interfacetemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='interfacetemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_interfacetemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='inventoryitem',
|
|
constraint=models.UniqueConstraint(fields=('device', 'parent', 'name'), name='dcim_inventoryitem_unique_device_parent_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='inventoryitemtemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'parent', 'name'), name='dcim_inventoryitemtemplate_unique_device_type_parent_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='location',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('site', 'name'), name='dcim_location_name', violation_error_message='A location with this name already exists within the specified site.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='location',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('site', 'slug'), name='dcim_location_slug', violation_error_message='A location with this slug already exists within the specified site.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='modulebay',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_modulebay_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='modulebaytemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_modulebaytemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='moduletype',
|
|
constraint=models.UniqueConstraint(fields=('manufacturer', 'model'), name='dcim_moduletype_unique_manufacturer_model'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='powerfeed',
|
|
constraint=models.UniqueConstraint(fields=('power_panel', 'name'), name='dcim_powerfeed_unique_power_panel_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='poweroutlet',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_poweroutlet_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='poweroutlettemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_poweroutlettemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='poweroutlettemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_poweroutlettemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='powerpanel',
|
|
constraint=models.UniqueConstraint(fields=('site', 'name'), name='dcim_powerpanel_unique_site_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='powerport',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_powerport_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='powerporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_powerporttemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='powerporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_powerporttemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='rack',
|
|
constraint=models.UniqueConstraint(fields=('location', 'name'), name='dcim_rack_unique_location_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='rack',
|
|
constraint=models.UniqueConstraint(fields=('location', 'facility_id'), name='dcim_rack_unique_location_facility_id'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='rearport',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_rearport_unique_device_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='rearporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('device_type', 'name'), name='dcim_rearporttemplate_unique_device_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='rearporttemplate',
|
|
constraint=models.UniqueConstraint(fields=('module_type', 'name'), name='dcim_rearporttemplate_unique_module_type_name'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='region',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('name',), name='dcim_region_name', violation_error_message='A top-level region with this name already exists.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='region',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('slug',), name='dcim_region_slug', violation_error_message='A top-level region with this slug already exists.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='sitegroup',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('name',), name='dcim_sitegroup_name', violation_error_message='A top-level site group with this name already exists.'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='sitegroup',
|
|
constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('slug',), name='dcim_sitegroup_slug', violation_error_message='A top-level site group with this slug already exists.'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='devicetype',
|
|
name='weight',
|
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=8, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='devicetype',
|
|
name='weight_unit',
|
|
field=models.CharField(blank=True, max_length=50),
|
|
),
|
|
migrations.AddField(
|
|
model_name='devicetype',
|
|
name='_abs_weight',
|
|
field=models.PositiveBigIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='moduletype',
|
|
name='weight',
|
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=8, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='moduletype',
|
|
name='weight_unit',
|
|
field=models.CharField(blank=True, max_length=50),
|
|
),
|
|
migrations.AddField(
|
|
model_name='moduletype',
|
|
name='_abs_weight',
|
|
field=models.PositiveBigIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='weight',
|
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=8, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='max_weight',
|
|
field=models.PositiveIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='weight_unit',
|
|
field=models.CharField(blank=True, max_length=50),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='_abs_weight',
|
|
field=models.PositiveBigIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='_abs_max_weight',
|
|
field=models.PositiveBigIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='mounting_depth',
|
|
field=models.PositiveSmallIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='cable',
|
|
name='comments',
|
|
field=models.TextField(blank=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='cable',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='device',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='devicetype',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='module',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='moduletype',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='powerfeed',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='powerpanel',
|
|
name='comments',
|
|
field=models.TextField(blank=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='powerpanel',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rack',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.AddField(
|
|
model_name='rackreservation',
|
|
name='comments',
|
|
field=models.TextField(blank=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='virtualchassis',
|
|
name='comments',
|
|
field=models.TextField(blank=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='virtualchassis',
|
|
name='description',
|
|
field=models.CharField(blank=True, max_length=200),
|
|
),
|
|
migrations.CreateModel(
|
|
name='VirtualDeviceContext',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
|
|
('created', models.DateTimeField(auto_now_add=True, null=True)),
|
|
('last_updated', models.DateTimeField(auto_now=True, null=True)),
|
|
('custom_field_data', models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder)),
|
|
('description', models.CharField(blank=True, max_length=200)),
|
|
('name', models.CharField(max_length=64)),
|
|
('status', models.CharField(max_length=50)),
|
|
('identifier', models.PositiveSmallIntegerField(blank=True, null=True)),
|
|
('comments', models.TextField(blank=True)),
|
|
('device', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='vdcs', to='dcim.device')),
|
|
('primary_ip4', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='ipam.ipaddress')),
|
|
('primary_ip6', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='ipam.ipaddress')),
|
|
('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
|
|
('tenant', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='vdcs', to='tenancy.tenant')),
|
|
],
|
|
options={
|
|
'ordering': ['name'],
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='interface',
|
|
name='vdcs',
|
|
field=models.ManyToManyField(related_name='interfaces', to='dcim.virtualdevicecontext'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='virtualdevicecontext',
|
|
constraint=models.UniqueConstraint(fields=('device', 'identifier'), name='dcim_virtualdevicecontext_device_identifier'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='virtualdevicecontext',
|
|
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_virtualdevicecontext_device_name'),
|
|
),
|
|
]
|