neutron/neutron
Kevin Benton a86274e8eb Check tap bridge timestamps to detect local changes
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 7afbd3a6b8)
Change-Id: If172470e907848556b6a8aff13520f94245919bb
2016-03-24 10:56:04 +01:00
..
agent Check tap bridge timestamps to detect local changes 2016-03-24 10:56:04 +01:00
api Protect 'show' and 'index' with Retry decorator 2016-02-05 11:41:37 +00:00
callbacks Merge "Add support for PluginWorker and Process creation notification" 2015-09-04 05:02:52 +00:00
cmd Fix sanity check --no* BoolOpts 2016-02-25 15:30:30 +00:00
common Add option for nova endpoint type 2016-03-23 09:35:13 +00:00
core_extensions Forbid attaching rules if policy isn't accessible 2015-08-12 09:52:33 +00:00
db Merge "Retry port create/update on duplicate db records" into stable/liberty 2016-03-13 21:01:01 +00:00
debug Deprecate external_network_bridge option in L3 agent 2015-09-01 20:41:54 -07:00
extensions Remove 'validate' key in 'type:dict_or_nodata' type 2016-01-20 16:19:28 +00:00
hacking Restructure agent code in preparation for decomp 2015-06-26 15:06:49 +00:00
ipam Fix for adding gateway with IP outside subnet 2016-02-22 16:32:26 +05:30
locale Imported Translations from Zanata 2016-01-16 06:27:41 +00:00
notifiers Add option for nova endpoint type 2016-03-23 09:35:13 +00:00
objects No network devices on network attached qos policies 2015-09-16 15:11:04 +02:00
openstack Switch to the oslo_utils.fileutils 2015-07-15 08:09:26 +03:00
pecan_wsgi Fix the bug of "Spelling error of a word" 2015-10-16 11:40:21 +00:00
plugins Check tap bridge timestamps to detect local changes 2016-03-24 10:56:04 +01:00
quota Merge "ML2: Add tests to validate quota usage tracking" into stable/liberty 2016-01-05 02:51:10 +00:00
scheduler Don't call add_ha_port inside a transaction 2016-01-13 21:08:22 +00:00
server Merge "Introduce a separate RPC server" into feature/pecan 2015-09-18 16:58:54 +00:00
services Mock oslo policy HTTPCheck instead of urllib 2015-10-13 17:26:23 +02:00
tests Check tap bridge timestamps to detect local changes 2016-03-24 10:56:04 +01:00
__init__.py Allow users to run 'tox -epy34' 2015-05-11 16:09:51 +02:00
auth.py Migrate to oslo.log 2015-03-12 11:22:56 +01:00
context.py Add DB support for resource usage tracking 2015-07-26 15:26:10 -07:00
i18n.py
manager.py Mock oslo policy HTTPCheck instead of urllib 2015-10-13 17:26:23 +02:00
neutron_plugin_base_v2.py Add support for PluginWorker and Process creation notification 2015-09-03 06:40:50 +00:00
policy.py Raise RetryRequest on policy parent not found 2016-01-29 02:15:30 -07:00
service.py Add support for PluginWorker and Process creation notification 2015-09-03 06:40:50 +00:00
version.py
worker.py Add support for PluginWorker and Process creation notification 2015-09-03 06:40:50 +00:00
wsgi.py Add support for PluginWorker and Process creation notification 2015-09-03 06:40:50 +00:00