From eb7116006978fe7063601b1c6c74c04abc826e33 Mon Sep 17 00:00:00 2001 From: Clint Byrum Date: Mon, 17 Dec 2012 17:57:30 -0800 Subject: [PATCH] Add support for missing Instance attributes PrivateIp and PublicDnsName. Change-Id: I9d85f00a8ca687ad791be4a9fa6708df3ad67a55 Fixes: bug #1091497 --- heat/engine/resources/instance.py | 6 ++++-- heat/tests/test_instance.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) 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') -- 2.45.2