summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Bogott <abogott@wikimedia.org>2011-12-15 20:37:51 -0600
committerAndrew Bogott <abogott@wikimedia.org>2011-12-20 13:06:01 -0600
commit711adf2d6d6a0cabfb606db31ca0995aabe856d1 (patch)
treec8da8fb912fede5bd458c57f79a0b069db8ff165
parentb53a233c89c83072c167492d74e16043bb730d6c (diff)
downloadnova-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.py8
-rw-r--r--nova/tests/test_network.py29
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)