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