Makes FlatDHCPManager clean up old fixed_ips like VlanManager.
This commit is contained in:
+15
-12
@@ -110,6 +110,7 @@ class NetworkManager(manager.Manager):
|
||||
|
||||
This class must be subclassed to support specific topologies.
|
||||
"""
|
||||
timeout_fixed_ips = True
|
||||
|
||||
def __init__(self, network_driver=None, *args, **kwargs):
|
||||
if not network_driver:
|
||||
@@ -138,6 +139,19 @@ class NetworkManager(manager.Manager):
|
||||
self.driver.ensure_floating_forward(floating_ip['address'],
|
||||
fixed_address)
|
||||
|
||||
def periodic_tasks(self, context=None):
|
||||
"""Tasks to be run at a periodic interval."""
|
||||
super(NetworkManager, self).periodic_tasks(context)
|
||||
if self.timeout_fixed_ips:
|
||||
now = utils.utcnow()
|
||||
timeout = FLAGS.fixed_ip_disassociate_timeout
|
||||
time = now - datetime.timedelta(seconds=timeout)
|
||||
num = self.db.fixed_ip_disassociate_all_by_timeout(context,
|
||||
self.host,
|
||||
time)
|
||||
if num:
|
||||
LOG.debug(_("Dissassociated %s stale fixed ip(s)"), num)
|
||||
|
||||
def set_network_host(self, context, network_id):
|
||||
"""Safely sets the host of the network."""
|
||||
LOG.debug(_("setting network host"), context=context)
|
||||
@@ -306,6 +320,7 @@ class FlatManager(NetworkManager):
|
||||
not do any setup in this mode, it must be done manually. Requests to
|
||||
169.254.169.254 port 80 will need to be forwarded to the api server.
|
||||
"""
|
||||
timeout_fixed_ips = False
|
||||
|
||||
def allocate_fixed_ip(self, context, instance_id, *args, **kwargs):
|
||||
"""Gets a fixed ip from the pool."""
|
||||
@@ -457,18 +472,6 @@ class VlanManager(NetworkManager):
|
||||
instances in its subnet.
|
||||
"""
|
||||
|
||||
def periodic_tasks(self, context=None):
|
||||
"""Tasks to be run at a periodic interval."""
|
||||
super(VlanManager, self).periodic_tasks(context)
|
||||
now = datetime.datetime.utcnow()
|
||||
timeout = FLAGS.fixed_ip_disassociate_timeout
|
||||
time = now - datetime.timedelta(seconds=timeout)
|
||||
num = self.db.fixed_ip_disassociate_all_by_timeout(context,
|
||||
self.host,
|
||||
time)
|
||||
if num:
|
||||
LOG.debug(_("Dissassociated %s stale fixed ip(s)"), num)
|
||||
|
||||
def init_host(self):
|
||||
"""Do any initialization that needs to be run if this is a
|
||||
standalone service.
|
||||
|
||||
Reference in New Issue
Block a user