From 711adf2d6d6a0cabfb606db31ca0995aabe856d1 Mon Sep 17 00:00:00 2001 From: Andrew Bogott Date: Thu, 15 Dec 2011 20:37:51 -0600 Subject: Improve the minidns tests to handle zone matching. For blueprint public-and-private-dns. Change-Id: I88e906e2ce031b6cf60ff0d16a20aadfdd515723 --- nova/network/minidns.py | 8 +++++--- nova/tests/test_network.py | 29 ++++++++++++++++++----------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/nova/network/minidns.py b/nova/network/minidns.py index 3b9331318..e955ae7bd 100644 --- a/nova/network/minidns.py +++ b/nova/network/minidns.py @@ -41,7 +41,7 @@ class MiniDNS(object): f.close() def get_zones(self): - return ["zone1.example.org", "zone2.example.org", "zone3.example.org"] + return ["example.org", "example.com", "example.gov"] def qualify(self, name, zone): if zone: @@ -109,13 +109,15 @@ class MiniDNS(object): outfile.close() shutil.move(outfile.name, self.filename) - def get_entries_by_address(self, address, _dnszone=""): + def get_entries_by_address(self, address, dnszone=""): entries = [] infile = open(self.filename, 'r') for line in infile: entry = self.parse_line(line) if entry and entry['address'].lower() == address.lower(): - entries.append(entry['name']) + if entry['name'].lower().endswith(dnszone.lower()): + domain_index = entry['name'].lower().find(dnszone.lower()) + entries.append(entry['name'][0:domain_index - 1]) infile.close() return entries diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index dfcc13f45..dc26b0298 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -292,19 +292,26 @@ class FlatNetworkTestCase(test.TestCase): networks[0]['id']) def test_mini_dns_driver(self): + zone1 = "example.org" + zone2 = "example.com" driver = self.network.instance_dns_manager - driver.create_entry("hostone", "10.0.0.1", 0, "foozone") - driver.create_entry("hosttwo", "10.0.0.2", 0, "foozone") - driver.create_entry("hostthree", "10.0.0.3", 0, "foozone") - driver.create_entry("hostfour", "10.0.0.4", 0, "foozone") - driver.delete_entry("hosttwo", "foozone") - driver.rename_entry("10.0.0.3", "hostone", "foozone") - driver.modify_address("hostfour", "10.0.0.1", "foozone") - names = driver.get_entries_by_address("10.0.0.1", "foozone") + 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("hostsix", "10.0.0.6", 0, zone2) + driver.delete_entry("hosttwo", zone1) + driver.rename_entry("10.0.0.3", "hostone", zone1) + driver.modify_address("hostfour", "10.0.0.1", zone1) + names = driver.get_entries_by_address("10.0.0.1", zone1) self.assertEqual(len(names), 2) - self.assertIn('hostone.foozone', names) - self.assertIn('hostfour.foozone', names) - addresses = driver.get_entries_by_name("hostone", "foozone") + self.assertIn('hostone', names) + self.assertIn('hostfour', names) + names = driver.get_entries_by_address("10.0.0.6", zone2) + self.assertEqual(len(names), 1) + self.assertIn('hostsix', names) + addresses = driver.get_entries_by_name("hostone", zone1) self.assertEqual(len(addresses), 2) self.assertIn('10.0.0.1', addresses) self.assertIn('10.0.0.3', addresses) -- cgit