From 698eb916844c5f801c72fbac4b3a2258bd2fff4a Mon Sep 17 00:00:00 2001 From: Ross McFarland Date: Wed, 28 Nov 2018 09:18:24 -0800 Subject: [PATCH] Add Dynamic Mixin class structure, all noops for now --- octodns/record.py | 76 +++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/octodns/record.py b/octodns/record.py index 85e6d97..be5f107 100644 --- a/octodns/record.py +++ b/octodns/record.py @@ -382,38 +382,6 @@ class _GeoMixin(_ValuesMixin): return super(_GeoMixin, self).__repr__() -class ARecord(_GeoMixin, Record): - _type = 'A' - - @classmethod - def _validate_value(self, value): - reasons = [] - try: - IPv4Address(unicode(value)) - except Exception: - reasons.append('invalid ip address "{}"'.format(value)) - return reasons - - def _process_values(self, values): - return values - - -class AaaaRecord(_GeoMixin, Record): - _type = 'AAAA' - - @classmethod - def _validate_value(self, value): - reasons = [] - try: - IPv6Address(unicode(value)) - except Exception: - reasons.append('invalid ip address "{}"'.format(value)) - return reasons - - def _process_values(self, values): - return values - - class _ValueMixin(object): @classmethod @@ -453,6 +421,50 @@ class _ValueMixin(object): self.fqdn, self.value) +class _DynamicBaseMixin(object): + pass + + +class _DynamicValuesMixin(_DynamicBaseMixin, _GeoMixin): + pass + + +class _DynamicValueMixin(_DynamicBaseMixin, _ValueMixin): + pass + + +class ARecord(_DynamicValuesMixin, Record): + _type = 'A' + + @classmethod + def _validate_value(self, value): + reasons = [] + try: + IPv4Address(unicode(value)) + except Exception: + reasons.append('invalid ip address "{}"'.format(value)) + return reasons + + def _process_values(self, values): + return values + + +class AaaaRecord(_GeoMixin, Record): + _type = 'AAAA' + + @classmethod + def _validate_value(self, value): + reasons = [] + try: + IPv6Address(unicode(value)) + except Exception: + reasons.append('invalid ip address "{}"'.format(value)) + return reasons + + def _process_values(self, values): + return values + + class AliasRecord(_ValueMixin, Record): _type = 'ALIAS'