mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Refactor GoogleCloudProvider
* in _rrset_for_X functions, use values instead of data attribute. * Small typo fixes and removals of redundant steps etc. * Unset GOOGLE_APPLICATION_CREDENTIALS in coverage script.
This commit is contained in:
@@ -79,7 +79,7 @@ class GoogleCloudProvider(BaseProvider):
|
||||
_rrset_func = getattr(
|
||||
self, '_rrset_for_{}'.format(change.record._type))
|
||||
|
||||
if class_name in 'Create':
|
||||
if class_name == 'Create':
|
||||
gcloud_changes.add_record_set(
|
||||
_rrset_func(gcloud_zone, change.record))
|
||||
elif class_name == 'Delete':
|
||||
@@ -212,17 +212,16 @@ class GoogleCloudProvider(BaseProvider):
|
||||
|
||||
gcloud_zone = self._get_gcloud_zone(zone.name)
|
||||
|
||||
_records = set()
|
||||
if gcloud_zone:
|
||||
for gcloud_record in self._get_gcloud_records(gcloud_zone):
|
||||
if gcloud_record.record_type.upper() in self.SUPPORTS:
|
||||
_records.add(gcloud_record)
|
||||
for gcloud_record in _records:
|
||||
if gcloud_record.record_type.upper() not in self.SUPPORTS:
|
||||
continue
|
||||
|
||||
record_name = gcloud_record.name
|
||||
if record_name.endswith(zone.name):
|
||||
# google cloud always return fqdn. Make relative record
|
||||
# here. "root" records will then get the '' record_name,
|
||||
# which is also the way dyn likes it.
|
||||
# which is also the way octodns likes it.
|
||||
record_name = record_name[:-(len(zone.name) + 1)]
|
||||
typ = gcloud_record.record_type.upper()
|
||||
data = getattr(self, '_data_for_{}'.format(typ))
|
||||
@@ -302,7 +301,8 @@ class GoogleCloudProvider(BaseProvider):
|
||||
def _rrset_for_CAA(self, gcloud_zone, record):
|
||||
return gcloud_zone.resource_record_set(
|
||||
record.fqdn, record._type, record.ttl, [
|
||||
'{flags} {tag} {value}'.format(**record.data['value'])])
|
||||
'{} {} {}'.format(v.flags, v.tag, v.value)
|
||||
for v in record.values])
|
||||
|
||||
def _rrset_for_CNAME(self, gcloud_zone, record):
|
||||
return gcloud_zone.resource_record_set(
|
||||
@@ -311,33 +311,29 @@ class GoogleCloudProvider(BaseProvider):
|
||||
def _rrset_for_MX(self, gcloud_zone, record):
|
||||
return gcloud_zone.resource_record_set(
|
||||
record.fqdn, record._type, record.ttl, [
|
||||
'{preference} {exchange}'.format(**v.data)
|
||||
'{} {}'.format(v.preference, v.exchange)
|
||||
for v in record.values])
|
||||
|
||||
def _rrset_for_NAPTR(self, gcloud_zone, record):
|
||||
return gcloud_zone.resource_record_set(
|
||||
record.fqdn, record._type, record.ttl, [
|
||||
'{order} {preference} "{flags}" "{service}" '
|
||||
'"{regexp}" {replacement}'
|
||||
.format(**v.data) for v in record.values])
|
||||
'{} {} "{}" "{}" "{}" {}'.format(
|
||||
v.order, v.preference, v.flags, v.service,
|
||||
v.regexp, v.replacement) for v in record.values])
|
||||
|
||||
_rrset_for_NS = _rrset_for_A
|
||||
|
||||
_rrset_for_PTR = _rrset_for_CNAME
|
||||
|
||||
def _rrset_for_SPF(self, gcloud_zone, record):
|
||||
if 'values' in record.data:
|
||||
val = record.data['values']
|
||||
else:
|
||||
val = [record.data['value']]
|
||||
|
||||
return gcloud_zone.resource_record_set(
|
||||
record.fqdn, record._type, record.ttl, val)
|
||||
record.fqdn, record._type, record.ttl, record.values)
|
||||
|
||||
def _rrset_for_SRV(self, gcloud_zone, record):
|
||||
return gcloud_zone.resource_record_set(
|
||||
record.fqdn, record._type, record.ttl, [
|
||||
'{priority} {weight} {port} {target}'
|
||||
.format(**v.data) for v in record.values])
|
||||
'{} {} {} {}'
|
||||
.format(v.priority, v.weight, v.port, v.target)
|
||||
for v in record.values])
|
||||
|
||||
_rrset_for_TXT = _rrset_for_SPF
|
||||
|
||||
@@ -24,6 +24,7 @@ export DNSIMPLE_TOKEN=
|
||||
export DYN_CUSTOMER=
|
||||
export DYN_PASSWORD=
|
||||
export DYN_USERNAME=
|
||||
export GOOGLE_APPLICATION_CREDENTIALS=
|
||||
|
||||
coverage run --branch --source=octodns `which nosetests` --with-xunit "$@"
|
||||
coverage html
|
||||
|
||||
@@ -313,8 +313,11 @@ class TestGoogleCloudProvider(TestCase):
|
||||
if not page_token:
|
||||
return DummyIterator([
|
||||
DummyGoogleCloudZone('example.com.'),
|
||||
], page_token="MOCK_PAGE_TOKEN")
|
||||
elif page_token == "MOCK_PAGE_TOKEN":
|
||||
return DummyIterator([
|
||||
DummyGoogleCloudZone('example2.com.'),
|
||||
], page_token="DUMMY_PAGE_TOKEN")
|
||||
], page_token="MOCK_PAGE_TOKEN2")
|
||||
|
||||
return DummyIterator([
|
||||
google_cloud_zone
|
||||
@@ -324,7 +327,12 @@ class TestGoogleCloudProvider(TestCase):
|
||||
if not page_token:
|
||||
return DummyIterator(
|
||||
[DummyResourceRecordSet(*v) for v in
|
||||
resource_record_sets[:5]], page_token="DUMMY_PAGE_TOKEN")
|
||||
resource_record_sets[:3]], page_token="MOCK_PAGE_TOKEN")
|
||||
elif page_token == "MOCK_PAGE_TOKEN":
|
||||
|
||||
return DummyIterator(
|
||||
[DummyResourceRecordSet(*v) for v in
|
||||
resource_record_sets[3:5]], page_token="MOCK_PAGE_TOKEN2")
|
||||
return DummyIterator(
|
||||
[DummyResourceRecordSet(*v) for v in resource_record_sets[5:]])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user