Route53: allow hosted zone id as well when creating record sets (#833)
* add test that creates r53 record set from hosted zone id (not name) * pass test to enable creating record sets by hosted zone ids
This commit is contained in:
parent
7d75c3ba18
commit
8d737eb59d
@ -213,8 +213,11 @@ class RecordSetGroup(object):
|
|||||||
def create_from_cloudformation_json(cls, resource_name, cloudformation_json, region_name):
|
def create_from_cloudformation_json(cls, resource_name, cloudformation_json, region_name):
|
||||||
properties = cloudformation_json['Properties']
|
properties = cloudformation_json['Properties']
|
||||||
|
|
||||||
zone_name = properties["HostedZoneName"]
|
zone_name = properties.get("HostedZoneName")
|
||||||
|
if zone_name:
|
||||||
hosted_zone = route53_backend.get_hosted_zone_by_name(zone_name)
|
hosted_zone = route53_backend.get_hosted_zone_by_name(zone_name)
|
||||||
|
else:
|
||||||
|
hosted_zone = route53_backend.get_hosted_zone(properties["HostedZoneId"])
|
||||||
record_sets = properties["RecordSets"]
|
record_sets = properties["RecordSets"]
|
||||||
for record_set in record_sets:
|
for record_set in record_sets:
|
||||||
hosted_zone.add_rrset(record_set)
|
hosted_zone.add_rrset(record_set)
|
||||||
|
@ -12,7 +12,7 @@ import sure # noqa
|
|||||||
import tests.backport_assert_raises # noqa
|
import tests.backport_assert_raises # noqa
|
||||||
from nose.tools import assert_raises
|
from nose.tools import assert_raises
|
||||||
|
|
||||||
from moto import mock_cloudformation, mock_s3
|
from moto import mock_cloudformation, mock_s3, mock_route53
|
||||||
from moto.cloudformation import cloudformation_backends
|
from moto.cloudformation import cloudformation_backends
|
||||||
|
|
||||||
dummy_template = {
|
dummy_template = {
|
||||||
@ -69,6 +69,57 @@ def test_create_stack():
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@mock_cloudformation
|
||||||
|
@mock_route53
|
||||||
|
def test_create_stack_hosted_zone_by_id():
|
||||||
|
conn = boto.connect_cloudformation()
|
||||||
|
dummy_template = {
|
||||||
|
"AWSTemplateFormatVersion": "2010-09-09",
|
||||||
|
"Description": "Stack 1",
|
||||||
|
"Parameters": {
|
||||||
|
},
|
||||||
|
"Resources": {
|
||||||
|
"Bar": {
|
||||||
|
"Type" : "AWS::Route53::HostedZone",
|
||||||
|
"Properties" : {
|
||||||
|
"Name" : "foo.bar.baz",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
dummy_template2 = {
|
||||||
|
"AWSTemplateFormatVersion": "2010-09-09",
|
||||||
|
"Description": "Stack 2",
|
||||||
|
"Parameters": {
|
||||||
|
"ZoneId": { "Type": "String" }
|
||||||
|
},
|
||||||
|
"Resources": {
|
||||||
|
"Foo": {
|
||||||
|
"Properties": {
|
||||||
|
"HostedZoneId": {"Ref": "ZoneId"},
|
||||||
|
"RecordSets": []
|
||||||
|
},
|
||||||
|
"Type": "AWS::Route53::RecordSetGroup"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
conn.create_stack(
|
||||||
|
"test_stack",
|
||||||
|
template_body=json.dumps(dummy_template),
|
||||||
|
parameters={}.items()
|
||||||
|
)
|
||||||
|
r53_conn = boto.connect_route53()
|
||||||
|
zone_id = r53_conn.get_zones()[0].id
|
||||||
|
conn.create_stack(
|
||||||
|
"test_stack",
|
||||||
|
template_body=json.dumps(dummy_template2),
|
||||||
|
parameters={"ZoneId": zone_id}.items()
|
||||||
|
)
|
||||||
|
|
||||||
|
stack = conn.describe_stacks()[0]
|
||||||
|
assert stack.list_resources()
|
||||||
|
|
||||||
|
|
||||||
@mock_cloudformation
|
@mock_cloudformation
|
||||||
def test_creating_stacks_across_regions():
|
def test_creating_stacks_across_regions():
|
||||||
west1_conn = boto.cloudformation.connect_to_region("us-west-1")
|
west1_conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||||
|
Loading…
Reference in New Issue
Block a user