|
|
|
@ -28,14 +28,13 @@ def unescape_semicolon(s): |
|
|
|
return s.replace('\\;', ';') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def azure_chunked_value(val): |
|
|
|
CHUNK_SIZE = 255 |
|
|
|
val_replace = val.replace('"', '\\"') |
|
|
|
value = unescape_semicolon(val_replace) |
|
|
|
if len(val) > CHUNK_SIZE: |
|
|
|
vs = [value[i:i + CHUNK_SIZE] |
|
|
|
for i in range(0, len(value), CHUNK_SIZE)] |
|
|
|
for i in range(0, len(value), CHUNK_SIZE)] |
|
|
|
else: |
|
|
|
vs = value |
|
|
|
return vs |
|
|
|
@ -47,6 +46,7 @@ def azure_chunked_values(s): |
|
|
|
values.append(azure_chunked_value(v)) |
|
|
|
return values |
|
|
|
|
|
|
|
|
|
|
|
class _AzureRecord(object): |
|
|
|
'''Wrapper for OctoDNS record for AzureProvider to make dns_client calls. |
|
|
|
|
|
|
|
@ -112,9 +112,6 @@ class _AzureRecord(object): |
|
|
|
self.params = self.params(record.data, key_name, azure_class) |
|
|
|
self.params['ttl'] = record.ttl |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _params_for_A(self, data, key_name, azure_class): |
|
|
|
try: |
|
|
|
values = data['values'] |
|
|
|
@ -185,9 +182,8 @@ class _AzureRecord(object): |
|
|
|
values = [data['value']] |
|
|
|
return {key_name: [azure_class(ptrdname=v) for v in values]} |
|
|
|
|
|
|
|
|
|
|
|
def _params_for_TXT(self, data, key_name, azure_class): |
|
|
|
|
|
|
|
|
|
|
|
params = [] |
|
|
|
try: # API for TxtRecord has list of str, even for singleton |
|
|
|
values = [v for v in azure_chunked_values(data['values'])] |
|
|
|
@ -201,7 +197,6 @@ class _AzureRecord(object): |
|
|
|
params.append(azure_class(value=[v])) |
|
|
|
return {key_name: params} |
|
|
|
|
|
|
|
|
|
|
|
def _equals(self, b): |
|
|
|
'''Checks whether two records are equal by comparing all fields. |
|
|
|
:param b: Another _AzureRecord object |
|
|
|
|