diff --git a/netbox/ipam/constants.py b/netbox/ipam/constants.py index 1c370a65d..fdb1dc6d9 100644 --- a/netbox/ipam/constants.py +++ b/netbox/ipam/constants.py @@ -52,6 +52,14 @@ IPADDRESS_ROLES_NONUNIQUE = ( ) +# +# FHRP groups +# + +FHRPGROUPASSIGNMENT_PRIORITY_MIN = 0 +FHRPGROUPASSIGNMENT_PRIORITY_MAX = 255 + + # # VLANs # diff --git a/netbox/ipam/migrations/0052_fhrpgroup.py b/netbox/ipam/migrations/0052_fhrpgroup.py index 17d4ec9ca..9a3f41aab 100644 --- a/netbox/ipam/migrations/0052_fhrpgroup.py +++ b/netbox/ipam/migrations/0052_fhrpgroup.py @@ -1,4 +1,5 @@ import django.core.serializers.json +import django.core.validators from django.db import migrations, models import django.db.models.deletion import taggit.managers @@ -44,7 +45,7 @@ class Migration(migrations.Migration): ('last_updated', models.DateTimeField(auto_now=True, null=True)), ('id', models.BigAutoField(primary_key=True, serialize=False)), ('object_id', models.PositiveIntegerField()), - ('priority', models.PositiveSmallIntegerField(blank=True, null=True)), + ('priority', models.PositiveSmallIntegerField(validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(255)])), ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ipam.fhrpgroup')), ], diff --git a/netbox/ipam/models/fhrp.py b/netbox/ipam/models/fhrp.py index 01ab6b5f8..3544c0a00 100644 --- a/netbox/ipam/models/fhrp.py +++ b/netbox/ipam/models/fhrp.py @@ -1,11 +1,13 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType +from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.urls import reverse from extras.utils import extras_features from netbox.models import ChangeLoggedModel, PrimaryModel from ipam.choices import * +from ipam.constants import * from utilities.querysets import RestrictedQuerySet __all__ = ( @@ -81,8 +83,10 @@ class FHRPGroupAssignment(ChangeLoggedModel): on_delete=models.CASCADE ) priority = models.PositiveSmallIntegerField( - blank=True, - null=True + validators=( + MinValueValidator(FHRPGROUPASSIGNMENT_PRIORITY_MIN), + MaxValueValidator(FHRPGROUPASSIGNMENT_PRIORITY_MAX) + ) ) objects = RestrictedQuerySet.as_manager()