a86274e8eb
During a quick instance rebuild on Nova, it may remove a tap
interface and then plug it in within the agent polling window.
In this scenario the agent will not realize a device has changed
and will therefore not ask the server for info an subsequently
update its status. This will prevent the notification from being
sent back to Nova that the vif plugging has finished so the
VM will never resume state.
This adds a new timestamp collection method to the common agent
manager interface for devices that is used by the common agent
loop to determine if a device has locally changed.
The linux bridge implementation of it checks the timestamps on the
tap interface's 'bridge' directory, which will change whenever
the tap is added to bridge.
Conflicts:
neutron/agent/linux/bridge_lib.py
neutron/plugins/ml2/drivers/agent/_agent_manager_base.py
neutron/plugins/ml2/drivers/agent/_common_agent.py
neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py
neutron/plugins/ml2/drivers/macvtap/agent/macvtap_neutron_agent.py
neutron/tests/functional/agent/linux/test_bridge_lib.py
neutron/tests/unit/plugins/ml2/drivers/agent/test__common_agent.py
(cherry picked from commit
|
||
---|---|---|
.. | ||
agent | ||
api | ||
callbacks | ||
cmd | ||
common | ||
core_extensions | ||
db | ||
debug | ||
extensions | ||
hacking | ||
ipam | ||
locale | ||
notifiers | ||
objects | ||
openstack | ||
pecan_wsgi | ||
plugins | ||
quota | ||
scheduler | ||
server | ||
services | ||
tests | ||
__init__.py | ||
auth.py | ||
context.py | ||
i18n.py | ||
manager.py | ||
neutron_plugin_base_v2.py | ||
policy.py | ||
service.py | ||
version.py | ||
worker.py | ||
wsgi.py |