1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

add geo support for ns1

This commit is contained in:
Steve Coursen
2017-12-28 16:01:56 -05:00
parent 61a86810ee
commit 481bbe10f6
2 changed files with 21 additions and 9 deletions

View File

@@ -7,12 +7,12 @@ from __future__ import absolute_import, division, print_function, \
from logging import getLogger
from itertools import chain
from nsone import NSONE, Config
from nsone import NSONE
from nsone.rest.errors import RateLimitException, ResourceException
from incf.countryutils import transformations
from time import sleep
from ..record import _GeoMixin, Record
from ..record import Record
from .base import BaseProvider
@@ -202,7 +202,7 @@ class Ns1Provider(BaseProvider):
if hasattr(record, 'geo'):
# purposefully set non-geo answers to have an empty meta,
# so that we know we did this on purpose if/when troubleshooting
params['answers'] = [{"answer": [x], "meta": {}} \
params['answers'] = [{"answer": [x], "meta": {}}
for x in record.values]
for iso_region, target in record.geo.items():
key = 'iso_region_code'

View File

@@ -306,7 +306,8 @@ class TestNs1Provider(TestCase):
None,
None,
]
nsone_zone.loadRecord.side_effect = [mock_record, mock_record, mock_record]
nsone_zone.loadRecord.side_effect = [mock_record, mock_record,
mock_record]
got_n = provider.apply(plan)
self.assertEquals(3, got_n)
nsone_zone.loadRecord.assert_has_calls([
@@ -315,17 +316,28 @@ class TestNs1Provider(TestCase):
call('delete-me', u'A'),
])
mock_record.assert_has_calls([
call.update(answers=[{'answer': [u'1.2.3.4'], 'meta': {}}], ttl=32),
call.update(answers=[{u'answer': [u'1.2.3.4'], u'meta': {}}], ttl=32),
call.update(answers=[{u'answer': [u'101.102.103.104'], u'meta': {}}, {u'answer': [u'101.102.103.105'], u'meta': {}}, {u'answer': [u'201.202.203.204'], u'meta': {u'iso_region_code': [u'NA-US-NY']}}], ttl=34),
call.update(answers=[{'answer': [u'1.2.3.4'], 'meta': {}}],
ttl=32),
call.update(answers=[{u'answer': [u'1.2.3.4'], u'meta': {}}],
ttl=32),
call.update(
answers=[
{u'answer': [u'101.102.103.104'], u'meta': {}},
{u'answer': [u'101.102.103.105'], u'meta': {}},
{
u'answer': [u'201.202.203.204'],
u'meta': {
u'iso_region_code': [u'NA-US-NY']
},
},
],
ttl=34),
call.delete(),
call.delete()
])
def test_escaping(self):
provider = Ns1Provider('test', 'api-key')
record = {
'ttl': 31,
'short_answers': ['foo; bar baz; blip']