diff options
| author | Andrew Bogott <abogott@wikimedia.org> | 2011-12-15 20:37:51 -0600 |
|---|---|---|
| committer | Andrew Bogott <abogott@wikimedia.org> | 2011-12-20 13:06:01 -0600 |
| commit | 711adf2d6d6a0cabfb606db31ca0995aabe856d1 (patch) | |
| tree | c8da8fb912fede5bd458c57f79a0b069db8ff165 | |
| parent | b53a233c89c83072c167492d74e16043bb730d6c (diff) | |
| download | nova-711adf2d6d6a0cabfb606db31ca0995aabe856d1.tar.gz nova-711adf2d6d6a0cabfb606db31ca0995aabe856d1.tar.xz nova-711adf2d6d6a0cabfb606db31ca0995aabe856d1.zip | |
Improve the minidns tests to handle zone matching.
For blueprint public-and-private-dns.
Change-Id: I88e906e2ce031b6cf60ff0d16a20aadfdd515723
| -rw-r--r-- | nova/network/minidns.py | 8 | ||||
| -rw-r--r-- | 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) |
