Browse Source

simplified HetznerClient by removing unused pagination handling

pull/691/head
Ricard Bejarano 5 years ago
parent
commit
a0c4e9ecd7
No known key found for this signature in database GPG Key ID: 98E8072CB960073F
1 changed files with 3 additions and 21 deletions
  1. +3
    -21
      octodns/provider/hetzner.py

+ 3
- 21
octodns/provider/hetzner.py View File

@ -30,10 +30,6 @@ class HetznerClientUnauthorized(HetznerClientException):
class HetznerClient(object): class HetznerClient(object):
'''
Hetzner DNS Public API v1 client class.
'''
BASE_URL = 'https://dns.hetzner.com/api/v1' BASE_URL = 'https://dns.hetzner.com/api/v1'
def __init__(self, token): def __init__(self, token):
@ -54,22 +50,9 @@ class HetznerClient(object):
def _do_json(self, method, path, params=None, data=None): def _do_json(self, method, path, params=None, data=None):
return self._do(method, path, params, data).json() return self._do(method, path, params, data).json()
def _do_json_paginate(self, method, path, key, params=None, data=None,
per_page=100):
items = []
params = {**{'page': 1, 'per_page': per_page}, **params}
while True:
response = self._do_json(method, path, params, data)
items += response[key]
if response['meta']['pagination']['page'] >= \
response['meta']['pagination']['last_page']:
break
params['page'] += 1
return items
def zones_get(self, name=None, search_name=None):
params = {'name': name, 'search_name': search_name}
return self._do_json_paginate('GET', '/zones', 'zones', params=params)
def zone_get(self, name):
params = {'name': name}
return self._do_json('GET', '/zones', params)['zones'][0]
def zone_create(self, name, ttl=None): def zone_create(self, name, ttl=None):
data = {'name': name, 'ttl': ttl} data = {'name': name, 'ttl': ttl}
@ -77,7 +60,6 @@ class HetznerClient(object):
def zone_records_get(self, zone_id): def zone_records_get(self, zone_id):
params = {'zone_id': zone_id} params = {'zone_id': zone_id}
# No need to handle pagination as it returns all records by default.
records = self._do_json('GET', '/records', params=params)['records'] records = self._do_json('GET', '/records', params=params)['records']
for record in records: for record in records:
if record['name'] == '@': if record['name'] == '@':


Loading…
Cancel
Save