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