Merge "Periodic update of DNS entries."

This commit is contained in:
Jenkins 2013-01-02 14:30:56 +00:00 committed by Gerrit Code Review
commit f35cd43612
2 changed files with 22 additions and 0 deletions

View File

@ -920,6 +920,15 @@
# l3_lib=nova.network.l3.LinuxNetL3
#### (StrOpt) Indicates underlying L3 management library
# update_dns_entries=false
#### (BoolOpt) If True, when a DNS entry must be updated, it sends a fanout
#### cast to all network hosts to update their DNS entries in multi
#### host mode
# dns_update_periodic_interval=-1
#### (IntOpt) Number of periodic scheduler ticks to wait between runs of
#### updates to DNS entries
######## defined in nova.network.quantumv2.api ########

View File

@ -170,6 +170,10 @@ network_opts = [
help='If True, when a DNS entry must be updated, it sends a '
'fanout cast to all network hosts to update their DNS '
'entries in multi host mode'),
cfg.IntOpt("dns_update_periodic_interval",
default=-1,
help='Number of periodic scheduler ticks to wait between '
'runs of updates to DNS entries.'),
cfg.StrOpt('dhcp_domain',
default='novalocal',
help='domain to use for building the hostnames'),
@ -1946,6 +1950,15 @@ class NetworkManager(manager.SchedulerDependentManager):
return self.db.virtual_interface_get_by_address(context,
mac_address)
@manager.periodic_task(
ticks_between_runs=CONF.dns_update_periodic_interval)
def _periodic_update_dns(self, context):
"""Update local DNS entries of all networks on this host"""
networks = self.db.network_get_all_by_host(context, self.host)
for network in networks:
dev = self.driver.get_dev(network)
self.driver.update_dns(context, dev, network)
def update_dns(self, context, network_ids):
"""Called when fixed IP is allocated or deallocated"""
if CONF.fake_network: