diff --git a/octodns/source/tinydns.py b/octodns/source/tinydns.py old mode 100644 new mode 100755 index 679accb..1b6be86 --- a/octodns/source/tinydns.py +++ b/octodns/source/tinydns.py @@ -20,7 +20,7 @@ from .base import BaseSource class TinyDnsBaseSource(BaseSource): SUPPORTS_GEO = False SUPPORTS_DYNAMIC = False - SUPPORTS = set(('A', 'CNAME', 'MX', 'NS')) + SUPPORTS = set(('A', 'CNAME', 'MX', 'NS', 'TXT')) split_re = re.compile(r':+') @@ -45,6 +45,22 @@ class TinyDnsBaseSource(BaseSource): 'values': values, } + def _data_for_TXT(self, _type, records): + values = [] + + for record in records: + values.append(record[0].decode('unicode-escape')) + + try: + ttl = records[0][1] + except IndexError: + ttl = self.default_ttl + return { + 'ttl': ttl, + 'type': _type, + 'values': values, + } + def _data_for_CNAME(self, _type, records): first = records[0] try: @@ -104,6 +120,7 @@ class TinyDnsBaseSource(BaseSource): 'C': 'CNAME', '+': 'A', '@': 'MX', + '\'': 'TXT', } name_re = re.compile(r'((?P.+)\.)?{}$'.format(zone.name[:-1]))