From 31edfd615d900a1535c621e4824e5d9eab58f69d Mon Sep 17 00:00:00 2001 From: Mandar Kulkarni Date: Tue, 14 Jun 2022 10:26:28 -0700 Subject: [PATCH] route53_info: Add snake_cased return key,values and a deprecation message (#1236) route53_info: Add snake_cased return key,values and a deprecation message Depends-On: ansible/ansible-zuul-jobs#1564 SUMMARY Add snake_case return values and a deprecation message for existing CamelCase return values. Route53_info currently returns CamelCase values, to have uniformity along all *_info modules in terms of return values, it should return snake_case values instead. Proposed change should make addition of snake_case return values and the deprecation message provides time for users to upgrade their playbooks to avoid breaking existing playbooks due to the proposed change. ISSUE TYPE Bugfix Pull Request COMPONENT NAME route53_info ADDITIONAL INFORMATION This PR is relation to the initiative for having updated developer guidelines for *_info modules specifically related to guidelines for deprecating return values. Reviewed-by: Mark Chappell Reviewed-by: Joseph Torcasso Reviewed-by: Alina Buzachis --- route53_info.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/route53_info.py b/route53_info.py index 7622113c25e..5e40efa4aad 100644 --- a/route53_info.py +++ b/route53_info.py @@ -213,6 +213,7 @@ from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule from ansible_collections.amazon.aws.plugins.module_utils.ec2 import AWSRetry +from ansible_collections.amazon.aws.plugins.module_utils.ec2 import camel_dict_to_snake_dict # Split out paginator to allow for the backoff decorator to function @@ -270,10 +271,17 @@ def list_hosted_zones(): params['DelegationSetId'] = module.params.get('delegation_set_id') zones = _paginated_result('list_hosted_zones', **params)['HostedZones'] + snaked_zones = [camel_dict_to_snake_dict(zone) for zone in zones] + + module.deprecate("The 'CamelCase' return values with key 'HostedZones' and 'list' are deprecated and \ + will be replaced by 'snake_case' return values with key 'hosted_zones'. \ + Both case values are returned for now.", + date='2025-01-01', collection_name='community.aws') return { "HostedZones": zones, "list": zones, + "hosted_zones": snaked_zones, } @@ -367,10 +375,17 @@ def list_health_checks(): ) health_checks = _paginated_result('list_health_checks', **params)['HealthChecks'] + snaked_health_checks = [camel_dict_to_snake_dict(health_check) for health_check in health_checks] + + module.deprecate("The 'CamelCase' return values with key 'HealthChecks' and 'list' are deprecated and \ + will be replaced by 'snake_case' return values with key 'health_checks'. \ + Both case values are returned for now.", + date='2025-01-01', collection_name='community.aws') return { "HealthChecks": health_checks, "list": health_checks, + "health_checks": snaked_health_checks, } @@ -399,10 +414,17 @@ def record_sets_details(): ) record_sets = _paginated_result('list_resource_record_sets', **params)['ResourceRecordSets'] + snaked_record_sets = [camel_dict_to_snake_dict(record_set) for record_set in record_sets] + + module.deprecate("The 'CamelCase' return values with key 'ResourceRecordSets' and 'list' are deprecated and \ + will be replaced by 'snake_case' return values with key 'resource_record_sets'. \ + Both case values are returned for now.", + date='2025-01-01', collection_name='community.aws') return { "ResourceRecordSets": record_sets, "list": record_sets, + "resource_record_sets": snaked_record_sets, }