Add support for missing Instance attributes PrivateIp and PublicDnsName.

Change-Id: I9d85f00a8ca687ad791be4a9fa6708df3ad67a55
Fixes: bug #1091497
This commit is contained in:
Clint Byrum 2012-12-17 17:57:30 -08:00
parent 6e3d20c136
commit eb71160069
2 changed files with 15 additions and 2 deletions

View File

@ -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)

View File

@ -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')