diff --git a/changelogs/fragments/1384-route53_info-fix-max-items.yml b/changelogs/fragments/1384-route53_info-fix-max-items.yml new file mode 100644 index 00000000000..0b0fb1ed0bd --- /dev/null +++ b/changelogs/fragments/1384-route53_info-fix-max-items.yml @@ -0,0 +1,2 @@ +bugfixes: +- route53_info - fix ``max_items`` parameter when used with non-paginated commands (https://github.com/ansible-collections/community.aws/issues/1383). diff --git a/plugins/modules/route53_info.py b/plugins/modules/route53_info.py index 68b0bb54b73..a331fae9319 100644 --- a/plugins/modules/route53_info.py +++ b/plugins/modules/route53_info.py @@ -519,11 +519,8 @@ def reusable_delegation_set_details(): params = dict() if not module.params.get('delegation_set_id'): - # Set PaginationConfig with max_items if module.params.get('max_items'): - params['PaginationConfig'] = dict( - MaxItems=module.params.get('max_items') - ) + params['MaxItems'] = str(module.params.get('max_items')) if module.params.get('next_marker'): params['Marker'] = module.params.get('next_marker') @@ -581,11 +578,8 @@ def list_hosted_zones_by_name(): if module.params.get('dns_name'): params['DNSName'] = module.params.get('dns_name') - # Set PaginationConfig with max_items if module.params.get('max_items'): - params['PaginationConfig'] = dict( - MaxItems=module.params.get('max_items') - ) + params['MaxItems'] = str(module.params.get('max_items')) return client.list_hosted_zones_by_name(**params) diff --git a/tests/integration/targets/route53/tasks/main.yml b/tests/integration/targets/route53/tasks/main.yml index 62a82f44a31..f453a879e7c 100644 --- a/tests/integration/targets/route53/tasks/main.yml +++ b/tests/integration/targets/route53/tasks/main.yml @@ -79,6 +79,22 @@ - hosted_zones.HostedZone.ResourceRecordSetCount == 2 - hosted_zones.HostedZone.Config.PrivateZone +# Needs CI permissions updated +# # Ensure that we can use the non-paginated list_by_name method with max_items +# - name: Get zone 1 details only +# route53_info: +# query: hosted_zone +# hosted_zone_method: list_by_name +# dns_name: '{{ zone_one }}' +# max_items: 1 +# register: list_by_name_result +# +# - name: Assert that we found exactly one zone when querying by name +# assert: +# that: +# - list_by_name_result.HostedZones | length == 1 +# - list_by_name_result.HostedZones[0].Name == '{{ zone_one }}' + - name: 'Create A record using zone fqdn' route53: state: present