Merge "Provide pointer for ML2 extension manager to effective guide"

This commit is contained in:
Jenkins 2016-01-09 04:50:42 +00:00 committed by Gerrit Code Review
commit 8fd6456483
3 changed files with 34 additions and 0 deletions

View File

@ -63,6 +63,8 @@ Document common pitfalls as well as good practices done during plugin developmen
but their strength is also a weakness, as they can introduce `unpredictable <https://review.openstack.org/#/c/121290/>`_
behavior to the `MRO <https://www.python.org/download/releases/2.3/mro/>`_,
amongst other issues.
* In lieu of mixins, if you need to add behavior that is relevant for ML2,
consider using the `extension manager <http://specs.openstack.org/openstack/neutron-specs/specs/juno/neutron-ml2-mechanismdriver-extensions.html>`_.
* If you make changes to the DB class methods, like calling methods that can
be inherited, think about what effect that may have to plugins that have
controller `backends <https://review.openstack.org/#/c/116924/>`_.

View File

@ -54,6 +54,7 @@ Neutron Internals
services_and_agents
api_layer
ml2_ext_manager
quota
api_extensions
plugin-api

View File

@ -0,0 +1,31 @@
..
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
Convention for heading levels in Neutron devref:
======= Heading 0 (reserved for the title in a document)
------- Heading 1
~~~~~~~ Heading 2
+++++++ Heading 3
''''''' Heading 4
(Avoid deeper levels because they do not render well.)
ML2 Extension Manager
=====================
The extension manager for ML2 was introduced in Juno (more details
can be found in the approved `spec <http://specs.openstack.org/openstack/neutron-specs/specs/juno/neutron-ml2-mechanismdriver-extensions.html>`_). The features allows for extending ML2 resources without
actually having to introduce cross cutting concerns to ML2. The
mechanism has been applied for a number of use cases, and extensions
that currently use this frameworks are available under `ml2/extensions <https://github.com/openstack/neutron/tree/master/neutron/plugins/ml2/extensions>`_.