|
|
@ -425,13 +425,12 @@ class MxValue(object): |
|
|
def _validate_value(cls, value): |
|
|
def _validate_value(cls, value): |
|
|
reasons = [] |
|
|
reasons = [] |
|
|
try: |
|
|
try: |
|
|
# seperate lines to have preference set in the ValueError case |
|
|
|
|
|
preference = value.get('preference', None) or value['priority'] |
|
|
|
|
|
int(preference) |
|
|
|
|
|
|
|
|
int(value.get('preference', None) or value['priority']) |
|
|
except KeyError: |
|
|
except KeyError: |
|
|
reasons.append('missing preference') |
|
|
reasons.append('missing preference') |
|
|
except ValueError: |
|
|
except ValueError: |
|
|
reasons.append('invalid preference "{}"'.format(preference)) |
|
|
|
|
|
|
|
|
reasons.append('invalid preference "{}"' |
|
|
|
|
|
.format(value['preference'])) |
|
|
exchange = None |
|
|
exchange = None |
|
|
try: |
|
|
try: |
|
|
exchange = value.get('exchange', None) or value['value'] |
|
|
exchange = value.get('exchange', None) or value['value'] |
|
|
@ -483,6 +482,7 @@ class MxRecord(_ValuesMixin, Record): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NaptrValue(object): |
|
|
class NaptrValue(object): |
|
|
|
|
|
LEGAL_FLAGS = ('S', 'A', 'U', 'P') |
|
|
|
|
|
|
|
|
@classmethod |
|
|
@classmethod |
|
|
def _validate_value(cls, data): |
|
|
def _validate_value(cls, data): |
|
|
@ -500,8 +500,15 @@ class NaptrValue(object): |
|
|
except ValueError: |
|
|
except ValueError: |
|
|
reasons.append('invalid preference "{}"' |
|
|
reasons.append('invalid preference "{}"' |
|
|
.format(data['preference'])) |
|
|
.format(data['preference'])) |
|
|
# TODO: validate field data |
|
|
|
|
|
for k in ('flags', 'service', 'regexp', 'replacement'): |
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
flags = data['flags'] |
|
|
|
|
|
if flags not in cls.LEGAL_FLAGS: |
|
|
|
|
|
reasons.append('invalid flags "{}"'.format(flags)) |
|
|
|
|
|
except KeyError: |
|
|
|
|
|
reasons.append('missing flags') |
|
|
|
|
|
|
|
|
|
|
|
# TODO: validate these... they're non-trivial |
|
|
|
|
|
for k in ('service', 'regexp', 'replacement'): |
|
|
if k not in data: |
|
|
if k not in data: |
|
|
reasons.append('missing {}'.format(k)) |
|
|
reasons.append('missing {}'.format(k)) |
|
|
return reasons |
|
|
return reasons |
|
|
|