Create an instance DNS record based on instance UUID.

Previously we created one based on instance name only.  Since
name is not guaranteed to be unique, best to have one based
on uuid as well.  Both point to the same address, of course.

For blueprint public-and-private-dns.

Change-Id: Ibb17f2a49f00b4522205d6b4508f432f6f5b0c5d
This commit is contained in:
Andrew Bogott
2012-01-12 20:01:15 +00:00
parent 521d48d36b
commit 2480d39da0

View File

@@ -285,7 +285,8 @@ class FlatNetworkTestCase(test.TestCase):
mox.IgnoreArg()).AndReturn({'security_groups':
[{'id': 0}]})
db.instance_get(self.context,
1).AndReturn({'display_name': HOST})
1).AndReturn({'display_name': HOST,
'uuid': 'test-00001'})
db.fixed_ip_associate_pool(mox.IgnoreArg(),
mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn('192.168.0.101')
@@ -300,11 +301,11 @@ class FlatNetworkTestCase(test.TestCase):
zone1 = "example.org"
zone2 = "example.com"
driver = self.network.instance_dns_manager
driver.create_entry("hostone", "10.0.0.1", 0, zone1)
driver.create_entry("hosttwo", "10.0.0.2", 0, zone1)
driver.create_entry("hostthree", "10.0.0.3", 0, zone1)
driver.create_entry("hostfour", "10.0.0.4", 0, zone1)
driver.create_entry("hostfive", "10.0.0.5", 0, zone2)
driver.create_entry("hostone", "10.0.0.1", "A", zone1)
driver.create_entry("hosttwo", "10.0.0.2", "A", zone1)
driver.create_entry("hostthree", "10.0.0.3", "A", zone1)
driver.create_entry("hostfour", "10.0.0.4", "A", zone1)
driver.create_entry("hostfive", "10.0.0.5", "A", zone2)
driver.delete_entry("hostone", zone1)
driver.modify_address("hostfour", "10.0.0.1", zone1)
@@ -322,6 +323,13 @@ class FlatNetworkTestCase(test.TestCase):
self.assertEqual(len(addresses), 1)
self.assertIn('10.0.0.2', addresses)
self.assertRaises(exception.InvalidInput,
driver.create_entry,
"hostname",
"10.10.10.10",
"invalidtype",
zone1)
def test_instance_dns(self):
fixedip = '192.168.0.101'
self.mox.StubOutWithMock(db, 'network_get')
@@ -343,17 +351,23 @@ class FlatNetworkTestCase(test.TestCase):
[{'id': 0}]})
db.instance_get(self.context,
1).AndReturn({'display_name': HOST})
1).AndReturn({'display_name': HOST,
'uuid': 'test-00001'})
db.fixed_ip_associate_pool(mox.IgnoreArg(),
mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(fixedip)
db.network_get(mox.IgnoreArg(),
mox.IgnoreArg()).AndReturn(networks[0])
db.network_update(mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg())
self.mox.ReplayAll()
self.network.add_fixed_ip_to_instance(self.context, 1, HOST,
networks[0]['id'])
addresses = self.network.instance_dns_manager.get_entries_by_name(HOST)
instance_manager = self.network.instance_dns_manager
addresses = instance_manager.get_entries_by_name(HOST)
self.assertEqual(len(addresses), 1)
self.assertEqual(addresses[0], fixedip)
addresses = instance_manager.get_entries_by_name('test-00001')
self.assertEqual(len(addresses), 1)
self.assertEqual(addresses[0], fixedip)