mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Merge pull request #565 from lancehudson/patch-1
Cloudflare: Increase page size
This commit is contained in:
@@ -58,6 +58,10 @@ class CloudflareProvider(BaseProvider):
|
||||
retry_count: 4
|
||||
# Optional. Default: 300. Number of seconds to wait before retrying.
|
||||
retry_period: 300
|
||||
# Optional. Default: 50. Number of zones per page.
|
||||
zones_per_page: 50
|
||||
# Optional. Default: 100. Number of dns records per page.
|
||||
records_per_page: 100
|
||||
|
||||
Note: The "proxied" flag of "A", "AAAA" and "CNAME" records can be managed
|
||||
via the YAML provider like so:
|
||||
@@ -78,7 +82,8 @@ class CloudflareProvider(BaseProvider):
|
||||
TIMEOUT = 15
|
||||
|
||||
def __init__(self, id, email=None, token=None, cdn=False, retry_count=4,
|
||||
retry_period=300, *args, **kwargs):
|
||||
retry_period=300, zones_per_page=50, records_per_page=100,
|
||||
*args, **kwargs):
|
||||
self.log = getLogger('CloudflareProvider[{}]'.format(id))
|
||||
self.log.debug('__init__: id=%s, email=%s, token=***, cdn=%s', id,
|
||||
email, cdn)
|
||||
@@ -99,6 +104,8 @@ class CloudflareProvider(BaseProvider):
|
||||
self.cdn = cdn
|
||||
self.retry_count = retry_count
|
||||
self.retry_period = retry_period
|
||||
self.zones_per_page = zones_per_page
|
||||
self.records_per_page = records_per_page
|
||||
self._sess = sess
|
||||
|
||||
self._zones = None
|
||||
@@ -142,7 +149,10 @@ class CloudflareProvider(BaseProvider):
|
||||
zones = []
|
||||
while page:
|
||||
resp = self._try_request('GET', '/zones',
|
||||
params={'page': page})
|
||||
params={
|
||||
'page': page,
|
||||
'per_page': self.zones_per_page
|
||||
})
|
||||
zones += resp['result']
|
||||
info = resp['result_info']
|
||||
if info['count'] > 0 and info['count'] == info['per_page']:
|
||||
@@ -251,7 +261,8 @@ class CloudflareProvider(BaseProvider):
|
||||
path = '/zones/{}/dns_records'.format(zone_id)
|
||||
page = 1
|
||||
while page:
|
||||
resp = self._try_request('GET', path, params={'page': page})
|
||||
resp = self._try_request('GET', path, params={'page': page,
|
||||
'per_page': self.records_per_page})
|
||||
records += resp['result']
|
||||
info = resp['result_info']
|
||||
if info['count'] > 0 and info['count'] == info['per_page']:
|
||||
|
||||
@@ -426,7 +426,7 @@ class TestCloudflareProvider(TestCase):
|
||||
# get the list of zones, create a zone, add some records, update
|
||||
# something, and delete something
|
||||
provider._request.assert_has_calls([
|
||||
call('GET', '/zones', params={'page': 1}),
|
||||
call('GET', '/zones', params={'page': 1, 'per_page': 50}),
|
||||
call('POST', '/zones', data={
|
||||
'jump_start': False,
|
||||
'name': 'unit.tests'
|
||||
@@ -531,7 +531,7 @@ class TestCloudflareProvider(TestCase):
|
||||
|
||||
# Get zones, create zone, create a record, delete a record
|
||||
provider._request.assert_has_calls([
|
||||
call('GET', '/zones', params={'page': 1}),
|
||||
call('GET', '/zones', params={'page': 1, 'per_page': 50}),
|
||||
call('POST', '/zones', data={
|
||||
'jump_start': False,
|
||||
'name': 'unit.tests'
|
||||
@@ -1302,7 +1302,8 @@ class TestCloudflareProvider(TestCase):
|
||||
provider._request.side_effect = [result]
|
||||
self.assertEquals([], provider.zone_records(zone))
|
||||
provider._request.assert_has_calls([call('GET', '/zones',
|
||||
params={'page': 1})])
|
||||
params={'page': 1,
|
||||
'per_page': 50})])
|
||||
|
||||
# One retry required
|
||||
provider._zones = None
|
||||
@@ -1313,7 +1314,8 @@ class TestCloudflareProvider(TestCase):
|
||||
]
|
||||
self.assertEquals([], provider.zone_records(zone))
|
||||
provider._request.assert_has_calls([call('GET', '/zones',
|
||||
params={'page': 1})])
|
||||
params={'page': 1,
|
||||
'per_page': 50})])
|
||||
|
||||
# Two retries required
|
||||
provider._zones = None
|
||||
@@ -1325,7 +1327,8 @@ class TestCloudflareProvider(TestCase):
|
||||
]
|
||||
self.assertEquals([], provider.zone_records(zone))
|
||||
provider._request.assert_has_calls([call('GET', '/zones',
|
||||
params={'page': 1})])
|
||||
params={'page': 1,
|
||||
'per_page': 50})])
|
||||
|
||||
# # Exhaust our retries
|
||||
provider._zones = None
|
||||
|
||||
Reference in New Issue
Block a user