mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Pass cls._type, not cls/record_cls to validate
This commit is contained in:
@@ -262,7 +262,7 @@ class _ValuesMixin(object):
|
||||
except KeyError:
|
||||
values = []
|
||||
|
||||
reasons.extend(cls._value_type.validate(values, cls))
|
||||
reasons.extend(cls._value_type.validate(values, cls._type))
|
||||
|
||||
return reasons
|
||||
|
||||
@@ -317,7 +317,7 @@ class _GeoMixin(_ValuesMixin):
|
||||
# TODO: validate legal codes
|
||||
for code, values in geo.items():
|
||||
reasons.extend(GeoValue._validate_geo(code))
|
||||
reasons.extend(cls._value_type.validate(values, cls))
|
||||
reasons.extend(cls._value_type.validate(values, cls._type))
|
||||
except KeyError:
|
||||
pass
|
||||
return reasons
|
||||
@@ -362,7 +362,8 @@ class _ValueMixin(object):
|
||||
@classmethod
|
||||
def validate(cls, name, data):
|
||||
reasons = super(_ValueMixin, cls).validate(name, data)
|
||||
reasons.extend(cls._value_type.validate(data.get('value', None), cls))
|
||||
reasons.extend(cls._value_type.validate(data.get('value', None),
|
||||
cls._type))
|
||||
return reasons
|
||||
|
||||
def __init__(self, zone, name, data, source=None):
|
||||
@@ -502,7 +503,8 @@ class _DynamicMixin(object):
|
||||
|
||||
try:
|
||||
value = value['value']
|
||||
reasons.extend(cls._value_type.validate(value, cls))
|
||||
reasons.extend(cls._value_type.validate(value,
|
||||
cls._type))
|
||||
except KeyError:
|
||||
reasons.append('missing value in pool "{}" '
|
||||
'value {}'.format(_id, value_num))
|
||||
@@ -620,8 +622,7 @@ class _DynamicMixin(object):
|
||||
class Ipv4List(object):
|
||||
|
||||
@classmethod
|
||||
# TODO: remove record_cls it's redudant (cls)
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
if len(data) == 0:
|
||||
@@ -647,7 +648,7 @@ class Ipv4List(object):
|
||||
class Ipv6List(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
if len(data) == 0:
|
||||
@@ -673,7 +674,7 @@ class Ipv6List(object):
|
||||
class _TargetValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
reasons = []
|
||||
if data == '':
|
||||
reasons.append('empty value')
|
||||
@@ -681,7 +682,7 @@ class _TargetValue(object):
|
||||
reasons.append('missing value')
|
||||
elif not data.endswith('.'):
|
||||
reasons.append('{} value "{}" missing trailing .'
|
||||
.format(record_cls._type, data))
|
||||
.format(_type, data))
|
||||
return reasons
|
||||
|
||||
@classmethod
|
||||
@@ -716,7 +717,7 @@ class CaaValue(object):
|
||||
# https://tools.ietf.org/html/rfc6844#page-5
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -783,7 +784,7 @@ class CnameRecord(_DynamicMixin, _ValueMixin, Record):
|
||||
class MxValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -851,7 +852,7 @@ class NaptrValue(object):
|
||||
VALID_FLAGS = ('S', 'A', 'U', 'P')
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -936,7 +937,7 @@ class NaptrRecord(_ValuesMixin, Record):
|
||||
class _NsValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not data:
|
||||
return ['missing value(s)']
|
||||
elif not isinstance(data, (list, tuple)):
|
||||
@@ -972,7 +973,7 @@ class SshfpValue(object):
|
||||
VALID_FINGERPRINT_TYPES = (1, 2)
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -1055,7 +1056,7 @@ class _ChunkedValue(object):
|
||||
_unescaped_semicolon_re = re.compile(r'\w;')
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not data:
|
||||
return ['missing value(s)']
|
||||
elif not isinstance(data, (list, tuple)):
|
||||
@@ -1084,7 +1085,7 @@ class SpfRecord(_ChunkedValuesMixin, Record):
|
||||
class SrvValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data, record_cls):
|
||||
def validate(cls, data, _type):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
|
||||
Reference in New Issue
Block a user