From: Clint Byrum Date: Tue, 18 Dec 2012 01:57:30 +0000 (-0800) Subject: Add support for missing Instance attributes PrivateIp and PublicDnsName. X-Git-Tag: 2014.1~1063 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=eb7116006978fe7063601b1c6c74c04abc826e33;p=openstack-build%2Fheat-build.git Add support for missing Instance attributes PrivateIp and PublicDnsName. Change-Id: I9d85f00a8ca687ad791be4a9fa6708df3ad67a55 Fixes: bug #1091497 --- diff --git a/heat/engine/resources/instance.py b/heat/engine/resources/instance.py index 9eac3b1b..e2fc2436 100644 --- a/heat/engine/resources/instance.py +++ b/heat/engine/resources/instance.py @@ -142,14 +142,16 @@ class Instance(resource.Resource): res = self.properties['AvailabilityZone'] elif key == 'PublicIp': res = self._ipaddress() + elif key == 'PrivateIp': + res = self._ipaddress() + elif key == 'PublicDnsName': + res = self._ipaddress() elif key == 'PrivateDnsName': res = self._ipaddress() else: raise exception.InvalidTemplateAttribute(resource=self.name, key=key) - # TODO(asalkeld) PrivateDnsName, PublicDnsName & PrivateIp - logger.info('%s.GetAtt(%s) == %s' % (self.name, key, res)) return unicode(res) diff --git a/heat/tests/test_instance.py b/heat/tests/test_instance.py index 603a85da..c4243b77 100644 --- a/heat/tests/test_instance.py +++ b/heat/tests/test_instance.py @@ -122,3 +122,14 @@ class instancesTest(unittest.TestCase): self.assertTrue(instance.resource_id is None) self.assertEqual(instance.state, instance.DELETE_COMPLETE) self.m.VerifyAll() + + AZ = instance.FnGetAtt('AvailabilityZone') + self.assertEqual(AZ, 'nova') + private_ip = instance.FnGetAtt('PublicIp') + self.assertEqual(private_ip, '4.5.6.7') + private_ip = instance.FnGetAtt('PrivateIp') + self.assertEqual(private_ip, '4.5.6.7') + private_ip = instance.FnGetAtt('PrivateDnsName') + self.assertEqual(private_ip, '4.5.6.7') + private_ip = instance.FnGetAtt('PrivateDnsName') + self.assertEqual(private_ip, '4.5.6.7')