Elastic IP PhysicalResourceId should always be its public IP (#841)

According to the [CloudFormation `Ref` docs][docs], the `Ref` return
value (and physical ID of the resource) for an Elastic IP is its public
IP address.

[docs]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html
This commit is contained in:
Andy Freeland 2017-03-04 19:40:43 -08:00 committed by Steve Pulec
parent a30ba2b597
commit 783242b696
2 changed files with 3 additions and 3 deletions

View File

@ -2836,7 +2836,7 @@ class ElasticAddress(object):
@property
def physical_resource_id(self):
return self.allocation_id if self.allocation_id else self.public_ip
return self.public_ip
def get_cfn_attribute(self, attribute_name):
from moto.cloudformation.exceptions import UnformattedGetAttTemplateException

View File

@ -694,7 +694,7 @@ def test_vpc_single_instance_in_subnet():
subnet_resource.physical_resource_id.should.equal(subnet.id)
eip_resource = [resource for resource in resources if resource.resource_type == 'AWS::EC2::EIP'][0]
eip_resource.physical_resource_id.should.equal(eip.allocation_id)
eip_resource.physical_resource_id.should.equal(eip.public_ip)
@mock_cloudformation()
@mock_ec2()
@ -991,7 +991,7 @@ def test_vpc_eip():
stack = conn.describe_stacks()[0]
resources = stack.describe_resources()
cfn_eip = [resource for resource in resources if resource.resource_type == 'AWS::EC2::EIP'][0]
cfn_eip.physical_resource_id.should.equal(eip.allocation_id)
cfn_eip.physical_resource_id.should.equal(eip.public_ip)
@mock_ec2()