|
|
@ -7,7 +7,7 @@ from __future__ import absolute_import, division, print_function, \ |
|
|
|
|
|
|
|
|
from logging import getLogger |
|
|
from logging import getLogger |
|
|
from itertools import chain |
|
|
from itertools import chain |
|
|
from collections import OrderedDict |
|
|
|
|
|
|
|
|
from collections import OrderedDict, defaultdict |
|
|
from nsone import NSONE |
|
|
from nsone import NSONE |
|
|
from nsone.rest.errors import RateLimitException, ResourceException |
|
|
from nsone.rest.errors import RateLimitException, ResourceException |
|
|
from incf.countryutils import transformations |
|
|
from incf.countryutils import transformations |
|
|
@ -40,7 +40,7 @@ class Ns1Provider(BaseProvider): |
|
|
def _data_for_A(self, _type, record): |
|
|
def _data_for_A(self, _type, record): |
|
|
# record meta (which would include geo information is only |
|
|
# record meta (which would include geo information is only |
|
|
# returned when getting a record's detail, not from zone detail |
|
|
# returned when getting a record's detail, not from zone detail |
|
|
geo = {} |
|
|
|
|
|
|
|
|
geo = defaultdict(list) |
|
|
data = { |
|
|
data = { |
|
|
'ttl': record['ttl'], |
|
|
'ttl': record['ttl'], |
|
|
'type': _type, |
|
|
'type': _type, |
|
|
@ -62,23 +62,15 @@ class Ns1Provider(BaseProvider): |
|
|
cn = transformations.cc_to_cn(cntry) |
|
|
cn = transformations.cc_to_cn(cntry) |
|
|
con = transformations.cn_to_ctca2(cn) |
|
|
con = transformations.cn_to_ctca2(cn) |
|
|
key = '{}-{}'.format(con, cntry) |
|
|
key = '{}-{}'.format(con, cntry) |
|
|
if key not in geo: |
|
|
|
|
|
geo[key] = [] |
|
|
|
|
|
geo[key].extend(answer['answer']) |
|
|
geo[key].extend(answer['answer']) |
|
|
for state in us_state: |
|
|
for state in us_state: |
|
|
key = 'NA-US-{}'.format(state) |
|
|
key = 'NA-US-{}'.format(state) |
|
|
if key not in geo: |
|
|
|
|
|
geo[key] = [] |
|
|
|
|
|
geo[key].extend(answer['answer']) |
|
|
geo[key].extend(answer['answer']) |
|
|
for province in ca_province: |
|
|
for province in ca_province: |
|
|
key = 'NA-CA-{}'.format(province) |
|
|
key = 'NA-CA-{}'.format(province) |
|
|
if key not in geo: |
|
|
|
|
|
geo[key] = [] |
|
|
|
|
|
geo[key].extend(answer['answer']) |
|
|
geo[key].extend(answer['answer']) |
|
|
for code in meta.get('iso_region_code', []): |
|
|
for code in meta.get('iso_region_code', []): |
|
|
key = code |
|
|
key = code |
|
|
if key not in geo: |
|
|
|
|
|
geo[key] = [] |
|
|
|
|
|
geo[key].extend(answer['answer']) |
|
|
geo[key].extend(answer['answer']) |
|
|
else: |
|
|
else: |
|
|
values.extend(answer['answer']) |
|
|
values.extend(answer['answer']) |
|
|
|