mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 08:46:10 -06:00
Change Validation for identifier
This commit is contained in:
parent
969bca6e63
commit
52fbd84d3f
@ -1,59 +0,0 @@
|
|||||||
# Generated by Django 4.1.1 on 2022-10-28 16:56
|
|
||||||
|
|
||||||
import django.core.validators
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
import taggit.managers
|
|
||||||
import utilities.json
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('extras', '0078_unique_constraints'),
|
|
||||||
('ipam', '0062_unique_constraints'),
|
|
||||||
('tenancy', '0008_unique_constraints'),
|
|
||||||
('dcim', '0164_rack_mounting_depth'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='devicetype',
|
|
||||||
name='vdc_type',
|
|
||||||
field=models.CharField(blank=True, max_length=50),
|
|
||||||
),
|
|
||||||
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)),
|
|
||||||
('name', models.CharField(max_length=64)),
|
|
||||||
('status', models.CharField(blank=True, max_length=50)),
|
|
||||||
('identifier', models.PositiveSmallIntegerField(blank=True, null=True, validators=[django.core.validators.MaxValueValidator(255)])),
|
|
||||||
('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_identifiers', violation_error_message='A VDC with this identifier already exists on this device.'),
|
|
||||||
),
|
|
||||||
migrations.AddConstraint(
|
|
||||||
model_name='virtualdevicecontext',
|
|
||||||
constraint=models.UniqueConstraint(fields=('device', 'name'), name='dcim_virtualdevicecontext_name', violation_error_message='A VDC with this name already exists on this device.'),
|
|
||||||
),
|
|
||||||
]
|
|
@ -1157,7 +1157,6 @@ class VirtualDeviceContext(NetBoxModel):
|
|||||||
identifier = models.PositiveSmallIntegerField(
|
identifier = models.PositiveSmallIntegerField(
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
validators=[MaxValueValidator(255)]
|
|
||||||
)
|
)
|
||||||
primary_ip4 = models.OneToOneField(
|
primary_ip4 = models.OneToOneField(
|
||||||
to='ipam.IPAddress',
|
to='ipam.IPAddress',
|
||||||
|
@ -133,7 +133,6 @@ def enforce_vdc_type_restrictions(instance, **kwargs):
|
|||||||
device = instance.device
|
device = instance.device
|
||||||
if device.device_type.vdc_type not in [VirtualDeviceContextTypeChoices.CISCO_ASA_CONTEXT, VirtualDeviceContextTypeChoices.CISCO_FTD_INSTANCE] \
|
if device.device_type.vdc_type not in [VirtualDeviceContextTypeChoices.CISCO_ASA_CONTEXT, VirtualDeviceContextTypeChoices.CISCO_FTD_INSTANCE] \
|
||||||
and len(instance.vdcs) > 1:
|
and len(instance.vdcs) > 1:
|
||||||
print('Error')
|
|
||||||
raise forms.ValidationError({
|
raise forms.ValidationError({
|
||||||
'vdcs': f"You cannot assign more then 1 VDC for {device.device_type}"
|
'vdcs': f"You cannot assign more then 1 VDC for {device.device_type}"
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user