From 2480d39da08ab85baf4906a4211458543c88d843 Mon Sep 17 00:00:00 2001 From: Andrew Bogott Date: Thu, 12 Jan 2012 20:01:15 +0000 Subject: [PATCH] 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 --- nova/tests/test_network.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index bf4c6042..ffc53cf1 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -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)