From fbfc3f8bb9c8d1f597089a1ba31e941990ae93f2 Mon Sep 17 00:00:00 2001 From: Andy Hawkins Date: Fri, 12 Apr 2019 20:40:28 +0100 Subject: [PATCH] Add support for TinyDNS TXT records --- octodns/source/tinydns.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) mode change 100644 => 100755 octodns/source/tinydns.py 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]))