From 6e97bec0069c6a2be8281e049a2477ed24e0e1cb Mon Sep 17 00:00:00 2001 From: Marco Rucci Date: Sun, 28 Jun 2015 17:27:24 +0200 Subject: [PATCH] Add support for alias records in Route53. --- moto/route53/responses.py | 16 +++++++++++----- tests/test_route53/test_route53.py | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/moto/route53/responses.py b/moto/route53/responses.py index 835c41c2..957ddb9c 100644 --- a/moto/route53/responses.py +++ b/moto/route53/responses.py @@ -55,11 +55,15 @@ def rrset_response(request, full_url, headers): action = value['Action'] record_set = value['ResourceRecordSet'] if action == 'CREATE': - resource_records = list(record_set['ResourceRecords'].values())[0] - if not isinstance(resource_records, list): - # Depending on how many records there are, this may or may not be a list - resource_records = [resource_records] - record_set['ResourceRecords'] = [x['Value'] for x in resource_records] + if 'ResourceRecords' in record_set: + resource_records = list(record_set['ResourceRecords'].values())[0] + if not isinstance(resource_records, list): + # Depending on how many records there are, this may or may not be a list + resource_records = [resource_records] + record_values = [x['Value'] for x in resource_records] + elif 'AliasTarget' in record_set: + record_values = [record_set['AliasTarget']['DNSName']] + record_set['ResourceRecords'] = record_values the_zone.add_rrset(record_set) elif action == "DELETE": if 'SetIdentifier' in record_set: @@ -138,7 +142,9 @@ GET_HOSTED_ZONE_RESPONSE = """