From 12470a324f70e8cb11b45e1f239f26b326b57f9c Mon Sep 17 00:00:00 2001 From: Andrew Bogott Date: Wed, 18 Jan 2012 18:13:47 -0600 Subject: Removed references to FLAGS.floating_ip_dns_domains. Now the availabable floating_ip_dns zones can be modified dynamically, and determined from the DNS driver and nova database. Change-Id: I0e02858e95085c868e8891f8f21d204472c46d33 --- nova/flags.py | 3 --- nova/network/ldapdns.py | 13 ++++++++++++- nova/tests/test_network.py | 6 ++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index eea632d62..cf02c9715 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -375,9 +375,6 @@ DEFINE_string('instance_dns_domain', '', DEFINE_string('floating_ip_dns_manager', 'nova.network.dns_driver.DNSDriver', 'DNS Manager for floating IPs') -DEFINE_multistring('floating_ip_dns_zones', '', - 'DNS zones for floating IPs.' - 'e.g. "example.org"') DEFINE_string('network_manager', 'nova.network.manager.VlanManager', 'Manager for network') DEFINE_string('volume_manager', 'nova.volume.manager.VolumeManager', diff --git a/nova/network/ldapdns.py b/nova/network/ldapdns.py index f36b7fd35..59405e47b 100644 --- a/nova/network/ldapdns.py +++ b/nova/network/ldapdns.py @@ -93,6 +93,17 @@ class DNSEntry(object): (domain, entry)) return entry[0] + @classmethod + def _get_all_domains(cls, lobj): + entries = lobj.search_s(flags.FLAGS.ldap_dns_base_dn, + ldap.SCOPE_SUBTREE, "(sOARecord=*)") + domains = [] + for entry in entries: + domain = entry[1].get('associatedDomain') + if domain: + domains.append(domain[0]) + return domains + def _set_tuple(self, tuple): self.ldap_tuple = tuple @@ -291,7 +302,7 @@ class LdapDNS(object): flags.FLAGS.ldap_dns_password) def get_domains(self): - return flags.FLAGS.floating_ip_dns_domains + return DomainEntry._get_all_domains(self.lobj) def create_entry(self, name, address, type, domain): if type.lower() != 'a': diff --git a/nova/tests/test_network.py b/nova/tests/test_network.py index f0decc233..573a308e1 100644 --- a/nova/tests/test_network.py +++ b/nova/tests/test_network.py @@ -1502,12 +1502,10 @@ class LdapDNSTestCase(test.TestCase): self.driver.delete_domain(domain2) def test_ldap_dns_domains(self): - flags.FLAGS.floating_ip_dns_domains = [domain1, domain2] - domains = self.driver.get_domains() self.assertEqual(len(domains), 2) - self.assertEqual(domains[0], domain1) - self.assertEqual(domains[1], domain2) + self.assertIn(domain1, domains) + self.assertIn(domain2, domains) def test_ldap_dns_create_conflict(self): address1 = "10.10.10.11" -- cgit