fixed route53 private zone value (#4935)

This commit is contained in:
Macwan Nevil 2022-03-15 18:57:17 +05:30 committed by GitHub
parent c1c423674c
commit 0ed34cbe7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 7 deletions

View File

@ -524,7 +524,7 @@ class Route53Backend(BaseBackend):
"""
zone_list = []
for zone in self.list_hosted_zones():
if zone.private_zone == "true":
if zone.private_zone is True:
this_zone = self.get_hosted_zone(zone.id)
if this_zone.vpcid == vpc_id:
this_id = f"/hostedzone/{zone.id}"

View File

@ -26,6 +26,16 @@ def error_handler(f):
class Route53(BaseResponse):
"""Handler for Route53 requests and responses."""
@staticmethod
def _convert_to_bool(bool_str):
if isinstance(bool_str, bool):
return bool_str
if isinstance(bool_str, str):
return str(bool_str).lower() == "true"
return False
@error_handler
def list_or_create_hostzone_response(self, request, full_url, headers):
self.setup_class(request, full_url, headers)
@ -40,14 +50,19 @@ class Route53(BaseResponse):
if "HostedZoneConfig" in zone_request:
zone_config = zone_request["HostedZoneConfig"]
comment = zone_config["Comment"]
private_zone = zone_config.get("PrivateZone", False)
if zone_request.get("VPC", {}).get("VPCId", None):
private_zone = True
else:
private_zone = self._convert_to_bool(
zone_config.get("PrivateZone", False)
)
else:
comment = None
private_zone = False
# It is possible to create a Private Hosted Zone without
# associating VPC at the time of creation.
if private_zone == "true":
if self._convert_to_bool(private_zone):
if zone_request.get("VPC", None) is not None:
vpcid = zone_request["VPC"].get("VPCId", None)
vpcregion = zone_request["VPC"].get("VPCRegion", None)
@ -500,7 +515,7 @@ GET_HOSTED_ZONE_RESPONSE = """<GetHostedZoneResponse xmlns="https://route53.amaz
{% if zone.comment %}
<Comment>{{ zone.comment }}</Comment>
{% endif %}
<PrivateZone>{{ zone.private_zone }}</PrivateZone>
<PrivateZone>{{ 'true' if zone.private_zone else 'false' }}</PrivateZone>
</Config>
</HostedZone>
<DelegationSet>
@ -527,7 +542,7 @@ CREATE_HOSTED_ZONE_RESPONSE = """<CreateHostedZoneResponse xmlns="https://route5
{% if zone.comment %}
<Comment>{{ zone.comment }}</Comment>
{% endif %}
<PrivateZone>{{ zone.private_zone }}</PrivateZone>
<PrivateZone>{{ 'true' if zone.private_zone else 'false' }}</PrivateZone>
</Config>
</HostedZone>
<DelegationSet>
@ -552,7 +567,7 @@ LIST_HOSTED_ZONES_RESPONSE = """<ListHostedZonesResponse xmlns="https://route53.
{% if zone.comment %}
<Comment>{{ zone.comment }}</Comment>
{% endif %}
<PrivateZone>{{ zone.private_zone }}</PrivateZone>
<PrivateZone>{{ 'true' if zone.private_zone else 'false' }}</PrivateZone>
</Config>
<ResourceRecordSetCount>{{ zone.rrsets|count }}</ResourceRecordSetCount>
</HostedZone>
@ -574,7 +589,7 @@ LIST_HOSTED_ZONES_BY_NAME_RESPONSE = """<ListHostedZonesByNameResponse xmlns="{{
{% if zone.comment %}
<Comment>{{ zone.comment }}</Comment>
{% endif %}
<PrivateZone>{{ zone.private_zone }}</PrivateZone>
<PrivateZone>{{ 'true' if zone.private_zone else 'false' }}</PrivateZone>
</Config>
<ResourceRecordSetCount>{{ zone.rrsets|count }}</ResourceRecordSetCount>
</HostedZone>