1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

RackSpace does not escape ;.

This commit is contained in:
Terrence Cole
2017-07-13 15:10:33 -07:00
parent b911fac90e
commit 057f50621e

View File

@@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
from requests import HTTPError, Session, post
from collections import defaultdict
import logging
import string
from ..record import Create, Record
from .base import BaseProvider
@@ -39,6 +40,16 @@ def add_quotes(s):
return '"{}"'.format(s)
def escape_semicolon(s):
assert s
return string.replace(s, ';', '\;')
def unescape_semicolon(s):
assert s
return string.replace(s, '\;', ';')
class RackspaceProvider(BaseProvider):
SUPPORTS_GEO = False
TIMEOUT = 5
@@ -162,15 +173,15 @@ class RackspaceProvider(BaseProvider):
_data_for_CNAME = _data_for_single
_data_for_PTR = _data_for_single
# def _data_for_quoted(self, rrset):
# return {
# 'type': rrset[0]['type'],
# 'values': [strip_quotes(r['data']) for r in rrset],
# 'ttl': rrset[0]['ttl']
# }
def _data_for_textual(self, rrset):
return {
'type': rrset[0]['type'],
'values': [escape_semicolon(r['data']) for r in rrset],
'ttl': rrset[0]['ttl']
}
_data_for_SPF = _data_for_multiple
_data_for_TXT = _data_for_multiple
_data_for_SPF = _data_for_textual
_data_for_TXT = _data_for_textual
def _data_for_MX(self, rrset):
values = []
@@ -304,17 +315,16 @@ class RackspaceProvider(BaseProvider):
_record_for_CNAME = _record_for_named
_record_for_PTR = _record_for_named
# @staticmethod
# def _record_for_quoted(record, value):
# return {
# 'name': record.fqdn,
# 'type': record._type,
# 'data': add_quotes(value),
# 'ttl': max(record.ttl, 300),
# }
_record_for_SPF = _record_for_single
_record_for_TXT = _record_for_single
@staticmethod
def _record_for_textual(record, value):
return {
'name': record.fqdn,
'type': record._type,
'data': unescape_semicolon(value),
'ttl': max(record.ttl, 300),
}
_record_for_SPF = _record_for_textual
_record_for_TXT = _record_for_textual
@staticmethod
def _record_for_MX(record, value):