diff --git a/octodns/provider/cloudflare.py b/octodns/provider/cloudflare.py index c94bffb..c79b5ce 100644 --- a/octodns/provider/cloudflare.py +++ b/octodns/provider/cloudflare.py @@ -373,13 +373,13 @@ class CloudflareProvider(BaseProvider): uri = '//' + uri if not uri.startswith('http') else uri parsed_uri = urlsplit(uri) name = zone.hostname_from_fqdn(parsed_uri.netloc) - _path = parsed_uri.path + path = parsed_uri.path _type = 'URLFWD' # assumption, actions will always contain 1 action - _values = record['actions'][0]['value'] - _values['path'] = _path + values = record['actions'][0]['value'] + values['path'] = path # no ttl set by pagerule, creating one - _values['ttl'] = 3600 + values['ttl'] = 3600 values[name][_type].append(_values) # the dns_records branch # elif 'name' in record: @@ -589,10 +589,7 @@ class CloudflareProvider(BaseProvider): # content as things are currently implemented so we need to handle # those explicitly and create unique/hashable strings for them. # AND... for URLFWD/Redirects additional adventures are created. - if 'targets' in data: - _type = 'URLFWD' - else: - _type = data['type'] + _type = data.get('type', 'URLFWD') if _type == 'MX': return '{priority} {content}'.format(**data) elif _type == 'CAA': @@ -621,15 +618,9 @@ class CloudflareProvider(BaseProvider): uri = data['targets'][0]['constraint']['value'] uri = '//' + uri if not uri.startswith('http') else uri parsed_uri = urlsplit(uri) - ret = {} - ret.update(data['actions'][0]['value']) - ret.update({'name': parsed_uri.netloc, 'path': parsed_uri.path}) - urlfwd = ( - '{name}', - '{path}', - '{url}', - '{status_code}') - return ' '.join(urlfwd).format(**ret) + return '{name} {path} {url} {status_code}'.format(name=parsed_uri.netloc, + path=parsed_uri.path, + **data['actions'][0]['value']) return data['content'] def _apply_Create(self, change): @@ -656,13 +647,13 @@ class CloudflareProvider(BaseProvider): uri = '//' + uri if not uri.startswith('http') else uri parsed_uri = urlsplit(uri) name = zone.hostname_from_fqdn(parsed_uri.netloc) - _path = parsed_uri.path + path = parsed_uri.path # assumption, actions will always contain 1 action - _values = record['actions'][0]['value'] - _values['path'] = _path - _values['ttl'] = 3600 - _values['type'] = 'URLFWD' - record.update(_values) + values = record['actions'][0]['value'] + values['path'] = path + values['ttl'] = 3600 + values['type'] = 'URLFWD' + record.update(values) else: name = zone.hostname_from_fqdn(record['name']) # Use the _record_for so that we include all of standard