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(
 | 
					            _rrset_func = getattr(
 | 
				
			||||||
                self, '_rrset_for_{}'.format(change.record._type))
 | 
					                self, '_rrset_for_{}'.format(change.record._type))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if class_name in 'Create':
 | 
					            if class_name == 'Create':
 | 
				
			||||||
                gcloud_changes.add_record_set(
 | 
					                gcloud_changes.add_record_set(
 | 
				
			||||||
                    _rrset_func(gcloud_zone, change.record))
 | 
					                    _rrset_func(gcloud_zone, change.record))
 | 
				
			||||||
            elif class_name == 'Delete':
 | 
					            elif class_name == 'Delete':
 | 
				
			||||||
@@ -212,17 +212,16 @@ class GoogleCloudProvider(BaseProvider):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        gcloud_zone = self._get_gcloud_zone(zone.name)
 | 
					        gcloud_zone = self._get_gcloud_zone(zone.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _records = set()
 | 
					 | 
				
			||||||
        if gcloud_zone:
 | 
					        if gcloud_zone:
 | 
				
			||||||
            for gcloud_record in self._get_gcloud_records(gcloud_zone):
 | 
					            for gcloud_record in self._get_gcloud_records(gcloud_zone):
 | 
				
			||||||
                if gcloud_record.record_type.upper() in self.SUPPORTS:
 | 
					                if gcloud_record.record_type.upper() not in self.SUPPORTS:
 | 
				
			||||||
                    _records.add(gcloud_record)
 | 
					                    continue
 | 
				
			||||||
            for gcloud_record in _records:
 | 
					
 | 
				
			||||||
                record_name = gcloud_record.name
 | 
					                record_name = gcloud_record.name
 | 
				
			||||||
                if record_name.endswith(zone.name):
 | 
					                if record_name.endswith(zone.name):
 | 
				
			||||||
                    # google cloud always return fqdn. Make relative record
 | 
					                    # google cloud always return fqdn. Make relative record
 | 
				
			||||||
                    # here. "root" records will then get the '' record_name,
 | 
					                    # 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)]
 | 
					                    record_name = record_name[:-(len(zone.name) + 1)]
 | 
				
			||||||
                typ = gcloud_record.record_type.upper()
 | 
					                typ = gcloud_record.record_type.upper()
 | 
				
			||||||
                data = getattr(self, '_data_for_{}'.format(typ))
 | 
					                data = getattr(self, '_data_for_{}'.format(typ))
 | 
				
			||||||
@@ -302,7 +301,8 @@ class GoogleCloudProvider(BaseProvider):
 | 
				
			|||||||
    def _rrset_for_CAA(self, gcloud_zone, record):
 | 
					    def _rrset_for_CAA(self, gcloud_zone, record):
 | 
				
			||||||
        return gcloud_zone.resource_record_set(
 | 
					        return gcloud_zone.resource_record_set(
 | 
				
			||||||
            record.fqdn, record._type, record.ttl, [
 | 
					            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):
 | 
					    def _rrset_for_CNAME(self, gcloud_zone, record):
 | 
				
			||||||
        return gcloud_zone.resource_record_set(
 | 
					        return gcloud_zone.resource_record_set(
 | 
				
			||||||
@@ -311,33 +311,29 @@ class GoogleCloudProvider(BaseProvider):
 | 
				
			|||||||
    def _rrset_for_MX(self, gcloud_zone, record):
 | 
					    def _rrset_for_MX(self, gcloud_zone, record):
 | 
				
			||||||
        return gcloud_zone.resource_record_set(
 | 
					        return gcloud_zone.resource_record_set(
 | 
				
			||||||
            record.fqdn, record._type, record.ttl, [
 | 
					            record.fqdn, record._type, record.ttl, [
 | 
				
			||||||
                '{preference} {exchange}'.format(**v.data)
 | 
					                '{} {}'.format(v.preference, v.exchange)
 | 
				
			||||||
                for v in record.values])
 | 
					                for v in record.values])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _rrset_for_NAPTR(self, gcloud_zone, record):
 | 
					    def _rrset_for_NAPTR(self, gcloud_zone, record):
 | 
				
			||||||
        return gcloud_zone.resource_record_set(
 | 
					        return gcloud_zone.resource_record_set(
 | 
				
			||||||
            record.fqdn, record._type, record.ttl, [
 | 
					            record.fqdn, record._type, record.ttl, [
 | 
				
			||||||
                '{order} {preference} "{flags}" "{service}" '
 | 
					                '{} {} "{}" "{}" "{}" {}'.format(
 | 
				
			||||||
                '"{regexp}" {replacement}'
 | 
					                    v.order, v.preference, v.flags, v.service,
 | 
				
			||||||
                .format(**v.data) for v in record.values])
 | 
					                    v.regexp, v.replacement) for v in record.values])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _rrset_for_NS = _rrset_for_A
 | 
					    _rrset_for_NS = _rrset_for_A
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _rrset_for_PTR = _rrset_for_CNAME
 | 
					    _rrset_for_PTR = _rrset_for_CNAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _rrset_for_SPF(self, gcloud_zone, record):
 | 
					    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(
 | 
					        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):
 | 
					    def _rrset_for_SRV(self, gcloud_zone, record):
 | 
				
			||||||
        return gcloud_zone.resource_record_set(
 | 
					        return gcloud_zone.resource_record_set(
 | 
				
			||||||
            record.fqdn, record._type, record.ttl, [
 | 
					            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
 | 
					    _rrset_for_TXT = _rrset_for_SPF
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ export DNSIMPLE_TOKEN=
 | 
				
			|||||||
export DYN_CUSTOMER=
 | 
					export DYN_CUSTOMER=
 | 
				
			||||||
export DYN_PASSWORD=
 | 
					export DYN_PASSWORD=
 | 
				
			||||||
export DYN_USERNAME=
 | 
					export DYN_USERNAME=
 | 
				
			||||||
 | 
					export GOOGLE_APPLICATION_CREDENTIALS=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
coverage run --branch --source=octodns `which nosetests` --with-xunit "$@"
 | 
					coverage run --branch --source=octodns `which nosetests` --with-xunit "$@"
 | 
				
			||||||
coverage html
 | 
					coverage html
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -313,8 +313,11 @@ class TestGoogleCloudProvider(TestCase):
 | 
				
			|||||||
            if not page_token:
 | 
					            if not page_token:
 | 
				
			||||||
                return DummyIterator([
 | 
					                return DummyIterator([
 | 
				
			||||||
                    DummyGoogleCloudZone('example.com.'),
 | 
					                    DummyGoogleCloudZone('example.com.'),
 | 
				
			||||||
 | 
					                ], page_token="MOCK_PAGE_TOKEN")
 | 
				
			||||||
 | 
					            elif page_token == "MOCK_PAGE_TOKEN":
 | 
				
			||||||
 | 
					                return DummyIterator([
 | 
				
			||||||
                    DummyGoogleCloudZone('example2.com.'),
 | 
					                    DummyGoogleCloudZone('example2.com.'),
 | 
				
			||||||
                ], page_token="DUMMY_PAGE_TOKEN")
 | 
					                ], page_token="MOCK_PAGE_TOKEN2")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return DummyIterator([
 | 
					            return DummyIterator([
 | 
				
			||||||
                google_cloud_zone
 | 
					                google_cloud_zone
 | 
				
			||||||
@@ -324,7 +327,12 @@ class TestGoogleCloudProvider(TestCase):
 | 
				
			|||||||
            if not page_token:
 | 
					            if not page_token:
 | 
				
			||||||
                return DummyIterator(
 | 
					                return DummyIterator(
 | 
				
			||||||
                    [DummyResourceRecordSet(*v) for v in
 | 
					                    [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(
 | 
					            return DummyIterator(
 | 
				
			||||||
                [DummyResourceRecordSet(*v) for v in resource_record_sets[5:]])
 | 
					                [DummyResourceRecordSet(*v) for v in resource_record_sets[5:]])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user