neutron/neutron
Sławek Kapłoński 39b9197f6f Don't set administratively disabled ports as ACTIVE
There was a race condition during port update to disable it.
In case when neutron-server receives port update call to set
admin_state_down on port, it sends PORT_UPDATE notification
to agents.

Then both L2 and DHCP agents start doing their job with port.
L2 agent asks neutron-server about device details and during
processing this call server sets port's status to DOWN if
its admin_state_up = False.
Problem is that sometimes just after that, DHCP agent will send
to neutron server notification that provisioning for this port
is finished.
As there is no any other provisioning block in db (because it
is just port update) neutron-server is setting port's status
to ACTIVE.

This patch fixes this issue by allowing to transition to
ACTIVE only ports which are administratively enabled.

Change-Id: If506e0ff68fc49748f19618470c85901339a419b
Closes-Bug: #1757089
(cherry picked from commit 2a1319ab7a)
2018-06-21 07:40:49 +00:00
..
agent Pass parameters when create eventlet.wsgi server 2018-02-02 19:11:17 +00:00
api Call update_all_ha_network_port_statuses on agent start 2017-12-06 07:53:06 +00:00
callbacks Merge "Routed networks IPv4 inventory in Nova GRP" 2017-01-24 22:37:41 +00:00
cmd More efficiently clean up OVS ports 2018-01-29 08:15:55 -06:00
common Fix eventlet imports issue 2018-06-02 09:57:26 +00:00
conf Revert "Linux Bridge: driver support for QoS egress minimum bandwidth" 2017-02-10 04:34:21 +00:00
core_extensions Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
db Merge "Always pass device_owner to _ipam_get_subnets()" into stable/ocata 2018-03-17 01:38:19 +00:00
debug Replace device owners hard coded strings to neutron_lib constants 2016-07-12 04:11:35 -04:00
extensions Enhance tag mechanism 2017-02-06 10:09:05 +00:00
hacking Register sqlalchemy events through hook for UT cleanup 2017-01-20 04:15:01 -08:00
ipam Always pass device_owner to _ipam_get_subnets() 2018-02-17 18:32:21 +00:00
locale Imported Translations from Zanata 2017-10-31 07:43:29 +00:00
notifiers Turn nova notifier into a proper rate limiter 2017-03-20 20:48:58 +00:00
objects Ensure _get_changed_synthetic_fields() return updatable fields 2018-06-08 08:34:31 +00:00
pecan_wsgi [Pecan] Fix custom tenant_id project_id matching 2017-06-14 16:47:09 +00:00
plugins Don't set administratively disabled ports as ACTIVE 2018-06-21 07:40:49 +00:00
privileged Do not raise an error deleting neighbour entry 2017-01-26 16:22:20 -05:00
quota Register sqlalchemy events through hook for UT cleanup 2017-01-20 04:15:01 -08:00
scheduler Avoid redundant HA port creation during migration 2017-09-11 19:57:01 +00:00
server neutron-rpc-server fails with no plugins loaded 2017-06-14 11:01:52 +00:00
services Don't create new QoS policy during update operation 2017-11-27 20:21:29 +00:00
tests Don't set administratively disabled ports as ACTIVE 2018-06-21 07:40:49 +00:00
__init__.py Hacking rule to check i18n usage 2016-03-30 21:28:37 -04:00
_i18n.py Move i18n to _i18n, as per oslo_i18n guidelines 2015-12-01 19:29:10 -07:00
auth.py
context.py Correctly set project_name 2017-01-20 16:11:00 -05:00
manager.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
neutron_plugin_base_v2.py Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
opts.py XenAPI: Support daemon mode for rootwrap 2017-01-19 07:33:43 +00:00
policy.py Neutron server was not compatible with member actions 2017-06-19 10:32:48 +02:00
service.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
version.py
worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
wsgi.py Pass parameters when create eventlet.wsgi server 2018-02-02 19:11:17 +00:00