OpenStack Networking (Neutron)
Go to file
Bence Romsics 9e8e987e6c Placement reporting service plugin
This service plugin synchronizes ML2 mechanism driver agents' resource
information to Placement. To use this service an agent must add
'resource_provider_bandwidths' to the 'configurations' field of its
RPC heartbeat. It also may add 'resource_provider_inventory_defaults'
to fine tune Placement inventory parameters. Again to use this service a
mechanism driver must implement get_standrd_device_mappings() and allocate
a UUID as mechanism driver property 'resource_provider_uuid5_namespace'.

The synchronization is triggered by:
* any new agent object in the DB
* restart of an agent (via 'start_flag' in the RPC heartbeat)
* if an agent's 'resources_synced' attribute is not True (None/False)

The latter should autoheal transient errors of the synchronization
process. That is if a sync attemp fails then we store
resources_synced=False which triggers a sync retry at each new heartbeat
message until a sync attempt finally succeeds and we can set
resources_synced=True.

Since this code functionally depends on ML2 we can also consider making
it part of ML2, but at the moment it is a service plugin for better
decoupling. Even if you load the service plugin the logic gracefully
degrades for heartbeat messages not containing resource provider info.

If needed the sync can be forced in multiple ways. First, if you restart
an agent then the RPs belonging to that agent will be re-synced. You may
also delete the agent by 'openstack network agent delete' and let the
next heartbeat message re-create the agent object. On re-creation the
RPs belonging to that agent will be re-synced. On the other hand a
neutron-server restart does not trigger a re-sync in any way. Depending
on the trade-off between the admin's needs to force re-syncs and the
performance of (not absolutely necessary) Placement updates re-sync
conditions may be further fine tuned.

Example config for neutron-server:

neutron.conf:
[DEFAULT]
service_plugins = placement

Change-Id: Ia1ff6f7559ab77913ddb9c3b134420a401b8eb43
Co-Authored-By: Lajos Katona <lajos.katona@ericsson.com>
Depends-On: https://review.openstack.org/586567
Partial-Bug: #1578989
See-Also: https://review.openstack.org/502306 (nova spec)
See-Also: https://review.openstack.org/508149 (neutron spec)
2019-03-01 15:37:48 +01:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Use os-xenapi for neutron when XenServer as hypervisor 2017-03-30 18:33:37 +00:00
devstack Delete virtual interface "ovs-system" before load openvswitch module 2019-01-25 20:00:14 +09:00
doc Merge "doc: replace nova security_group_api option with use_neutron" 2019-02-12 08:50:26 +00:00
etc Rename README.policy.json.txt 2019-01-07 12:45:15 -05:00
neutron Placement reporting service plugin 2019-03-01 15:37:48 +01:00
playbooks/legacy Switch multinode grenade jobs to python3 2019-02-19 10:53:55 +01:00
rally-jobs Merge "Enhance rally-job for sec group rules to creates multiple rules" 2019-02-16 05:51:46 +00:00
releasenotes Add dependency for service plugin 2019-02-16 00:17:53 +08:00
tools Merge "Remove unnecessary 'set -x' at EOL in genconfig script" 2018-12-15 14:09:19 +00:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore [Configuration] Clean up .gitignore references to personal tools 2019-01-31 16:17:38 +01:00
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Disable some pylint checks 2018-10-03 08:41:56 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
.zuul.yaml Merge "Switch default functional tests to python3, add job for python2" 2019-02-03 15:38:30 +00:00
CONTRIBUTING.rst Update link for contribution 2017-08-31 16:44:51 +02:00
HACKING.rst Update the documentation link for doc migration 2017-07-22 18:46:13 +09:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Update mailinglist from dev to discuss 2018-12-12 12:44:12 +08:00
TESTING.rst doc: Small clearances for fullstack testing 2018-09-05 09:40:07 +02:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
bindep.txt Add libffi-dev to bindep.txt 2017-06-13 19:26:49 +00:00
lower-constraints.txt Bump pyroute2 version to 0.5.3 2019-02-15 18:28:33 +00:00
requirements.txt Bump pyroute2 version to 0.5.3 2019-02-15 18:28:33 +00:00
setup.cfg Placement reporting service plugin 2019-03-01 15:37:48 +01:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Upgrade pylint to a version that works with python3 2018-10-04 18:03:25 +00:00
tox.ini Switch default functional tests to python3, add job for python2 2019-01-30 13:31:29 +00:00

README.rst

Team and repository tags

image

Welcome!

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute:

CONTRIBUTING.rst