mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			962 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			962 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.core.exceptions import ValidationError
 | 
						|
from django.core.validators import BaseValidator, RegexValidator
 | 
						|
 | 
						|
 | 
						|
def prefix_validator(prefix):
 | 
						|
    if prefix.ip != prefix.cidr.ip:
 | 
						|
        raise ValidationError("{} is not a valid prefix. Did you mean {}?".format(prefix, prefix.cidr))
 | 
						|
 | 
						|
 | 
						|
class MaxPrefixLengthValidator(BaseValidator):
 | 
						|
    message = 'The prefix length must be less than or equal to %(limit_value)s.'
 | 
						|
    code = 'max_prefix_length'
 | 
						|
 | 
						|
    def compare(self, a, b):
 | 
						|
        return a.prefixlen > b
 | 
						|
 | 
						|
 | 
						|
class MinPrefixLengthValidator(BaseValidator):
 | 
						|
    message = 'The prefix length must be greater than or equal to %(limit_value)s.'
 | 
						|
    code = 'min_prefix_length'
 | 
						|
 | 
						|
    def compare(self, a, b):
 | 
						|
        return a.prefixlen < b
 | 
						|
 | 
						|
 | 
						|
DNSValidator = RegexValidator(
 | 
						|
    regex=r'^([0-9A-Za-z_-]+|\*)(\.[0-9A-Za-z_-]+)*\.?$',
 | 
						|
    message='Only alphanumeric characters, asterisks, hyphens, periods, and underscores are allowed in DNS names',
 | 
						|
    code='invalid'
 | 
						|
)
 |