From 27a3d6d85d8bd0821af544c59ee8b9c651ba9c3e Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Thu, 4 May 2023 08:43:51 +1200 Subject: [PATCH] dnsimple_info: minor refactor (#6440) * dns_simple: minor refactor * add changelog frag --- .../fragments/6440-dnsimple-info-refactor.yml | 2 ++ plugins/modules/dnsimple_info.py | 30 ++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 changelogs/fragments/6440-dnsimple-info-refactor.yml diff --git a/changelogs/fragments/6440-dnsimple-info-refactor.yml b/changelogs/fragments/6440-dnsimple-info-refactor.yml new file mode 100644 index 0000000000..f94b3de440 --- /dev/null +++ b/changelogs/fragments/6440-dnsimple-info-refactor.yml @@ -0,0 +1,2 @@ +minor_changes: + - dnsimple_info - minor refactor in the code (https://github.com/ansible-collections/community.general/pull/6440). diff --git a/plugins/modules/dnsimple_info.py b/plugins/modules/dnsimple_info.py index 52fd53303f..796ff8689c 100644 --- a/plugins/modules/dnsimple_info.py +++ b/plugins/modules/dnsimple_info.py @@ -239,9 +239,9 @@ with deps.declare("requests"): def build_url(account, key, is_sandbox): headers = {'Accept': 'application/json', - 'Authorization': 'Bearer ' + key} - url = 'https://api{sandbox}.dnsimple.com/'.format( - sandbox=".sandbox" if is_sandbox else "") + 'v2/' + account + 'Authorization': 'Bearer {0}'.format(key)} + sandbox = '.sandbox' if is_sandbox else '' + url = 'https://api{sandbox}.dnsimple.com/v2/{account}'.format(sandbox=sandbox, account=account) req = Request(url=url, headers=headers) prepped_request = req.prepare() return prepped_request @@ -250,19 +250,21 @@ def build_url(account, key, is_sandbox): def iterate_data(module, request_object): base_url = request_object.url response = Session().send(request_object) - if 'pagination' in response.json(): - data = response.json()["data"] - pages = response.json()["pagination"]["total_pages"] - if int(pages) > 1: - for page in range(1, pages): - page = page + 1 - request_object.url = base_url + '&page=' + str(page) - new_results = Session().send(request_object) - data = data + new_results.json()["data"] - return data - else: + if 'pagination' not in response.json(): module.fail_json('API Call failed, check ID, key and sandbox values') + data = response.json()["data"] + total_pages = response.json()["pagination"]["total_pages"] + page = 1 + + while page < total_pages: + page = page + 1 + request_object.url = '{url}&page={page}'.format(url=base_url, page=page) + new_results = Session().send(request_object) + data = data + new_results.json()['data'] + + return data + def record_info(dnsimple_mod, req_obj): req_obj.url, req_obj.method = req_obj.url + '/zones/' + dnsimple_mod.params["name"] + '/records?name=' + dnsimple_mod.params["record"], 'GET'