mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
AaaaRecord and CnameRecord should implement _DynamicMixin, fix validate params
This commit is contained in:
@@ -262,7 +262,7 @@ class _ValuesMixin(object):
|
||||
except KeyError:
|
||||
values = []
|
||||
|
||||
reasons.extend(cls._value_type.validate(values))
|
||||
reasons.extend(cls._value_type.validate(values, cls))
|
||||
|
||||
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))
|
||||
reasons.extend(cls._value_type.validate(values, cls))
|
||||
except KeyError:
|
||||
pass
|
||||
return reasons
|
||||
@@ -408,7 +408,7 @@ class _DynamicMixin(object):
|
||||
reasons.append('missing pools')
|
||||
else:
|
||||
for pool in sorted(pools.values()):
|
||||
reasons.extend(cls._value_type.validate(pool))
|
||||
reasons.extend(cls._value_type.validate(pool, cls))
|
||||
|
||||
try:
|
||||
rules = data['dynamic']['rules']
|
||||
@@ -459,7 +459,7 @@ class _DynamicMixin(object):
|
||||
class Ipv4List(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
if len(data) == 0:
|
||||
@@ -485,7 +485,7 @@ class Ipv4List(object):
|
||||
class Ipv6List(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
if len(data) == 0:
|
||||
@@ -536,7 +536,7 @@ class ARecord(_DynamicMixin, _GeoMixin, Record):
|
||||
_value_type = Ipv4List
|
||||
|
||||
|
||||
class AaaaRecord(_GeoMixin, Record):
|
||||
class AaaaRecord(_DynamicMixin, _GeoMixin, Record):
|
||||
_type = 'AAAA'
|
||||
_value_type = Ipv6List
|
||||
|
||||
@@ -554,7 +554,7 @@ class CaaValue(object):
|
||||
# https://tools.ietf.org/html/rfc6844#page-5
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -605,7 +605,7 @@ class CaaRecord(_ValuesMixin, Record):
|
||||
_value_type = CaaValue
|
||||
|
||||
|
||||
class CnameRecord(_ValueMixin, Record):
|
||||
class CnameRecord(_DynamicMixin, _ValueMixin, Record):
|
||||
_type = 'CNAME'
|
||||
_value_type = CnameValue
|
||||
|
||||
@@ -621,7 +621,7 @@ class CnameRecord(_ValueMixin, Record):
|
||||
class MxValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -689,7 +689,7 @@ class NaptrValue(object):
|
||||
VALID_FLAGS = ('S', 'A', 'U', 'P')
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -774,7 +774,7 @@ class NaptrRecord(_ValuesMixin, Record):
|
||||
class _NsValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not data:
|
||||
return ['missing value(s)']
|
||||
elif not isinstance(data, (list, tuple)):
|
||||
@@ -810,7 +810,7 @@ class SshfpValue(object):
|
||||
VALID_FINGERPRINT_TYPES = (1, 2)
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
@@ -893,7 +893,7 @@ class _ChunkedValue(object):
|
||||
_unescaped_semicolon_re = re.compile(r'\w;')
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not data:
|
||||
return ['missing value(s)']
|
||||
elif not isinstance(data, (list, tuple)):
|
||||
@@ -922,7 +922,7 @@ class SpfRecord(_ChunkedValuesMixin, Record):
|
||||
class SrvValue(object):
|
||||
|
||||
@classmethod
|
||||
def validate(cls, data):
|
||||
def validate(cls, data, record_cls):
|
||||
if not isinstance(data, (list, tuple)):
|
||||
data = (data,)
|
||||
reasons = []
|
||||
|
||||
@@ -32,14 +32,10 @@ a:
|
||||
cname:
|
||||
dynamic:
|
||||
pools:
|
||||
ams:
|
||||
value: target-ams.unit.tests.
|
||||
iad:
|
||||
value: target-iad.unit.tests.
|
||||
lax:
|
||||
value: target-lax.unit.tests.
|
||||
sea:
|
||||
value: target-sea.unit.tests.
|
||||
ams: target-ams.unit.tests.
|
||||
iad: target-iad.unit.tests.
|
||||
lax: target-lax.unit.tests.
|
||||
sea: target-sea.unit.tests.
|
||||
rules:
|
||||
- geo: EU-UK
|
||||
pools:
|
||||
@@ -63,10 +59,8 @@ cname:
|
||||
simple-weighted:
|
||||
dynamic:
|
||||
pools:
|
||||
one:
|
||||
value: one.unit.tests.
|
||||
two:
|
||||
value: two.unit.tests.
|
||||
one: one.unit.tests.
|
||||
two: two.unit.tests.
|
||||
rules:
|
||||
- pools:
|
||||
100: one
|
||||
|
||||
Reference in New Issue
Block a user