OpenStack Networking (Neutron)
Go to file
Kevin Benton 09c87425fa Prepare retry decorator to move to plugin level
Retrying mutating operations at the API layer caused a
couple of problems. First, when components would call
the core plugin using the neutron manager, they would
have to handle the retriable failures on their own or
undo any work they had done so far and allow retriable
failures to be propagated up to the API. Second, retrying
at the API makes composite operations (e.g. auto allocate,
add_router_interface, etc) painful because they have to
consider if exceptions are retriable before raising
fatal exceptions on failures of core plugin calls.

This patch begins the process of moving them down to the
core operations with a new decorator called
'retry_if_session_inactive', which ensures that the
retry logic isn't triggered if there is an ongoing transaction
since retrying inside of a transaction is normally ineffective.
Follow-up patches apply them to various parts of the code-base.

Additionally, the args and kwargs of the method are automatically
deep copied in retries to ensure that any mangling the methods
do to their arguments don't impact their retriability.

Finally, since we are leaving the API decorators in place for now,
the retry logic will not be triggered by another decorator if an
exception has already been retried. This prevents an exponential
explosion of retries on nested retry decorators.

The ultimate goal will be to get rid of the API decorators entirely
so retries are up to each individual plugin.

Partial-Bug: #1596075
Partial-Bug: #1612798
Change-Id: I7b8a4a105aabfa1b5f5dd7a638099007b0933e66
2016-09-08 14:07:08 -07:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Close XenAPI sessions in neutron-rootwrap-xen-dom0 2016-03-18 13:05:09 -05:00
devstack gate_hook: Compile ovs only with supported kernels 2016-09-06 13:22:43 +00:00
doc Prepare retry decorator to move to plugin level 2016-09-08 14:07:08 -07:00
etc Remove FWaaS policy.json entries 2016-09-06 21:30:41 +00:00
neutron Prepare retry decorator to move to plugin level 2016-09-08 14:07:08 -07:00
rally-jobs Increase rally network/port count and add quotas 2016-08-18 10:51:46 +00:00
releasenotes Standardize release note page ordering 2016-09-08 14:32:37 +08:00
tools Merge "Make milestone-review-dash script pull all Stadium projects" 2016-09-01 11:37:44 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:31:29 +00:00
.gitignore Automatically generate neutron core configuration files 2015-11-27 15:22:59 +00: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 Start using neutron-lib for shared constants and exceptions 2016-02-10 16:41:18 -07:00
.testr.conf .testr.conf: revert workaround of testtools bug 2016-02-19 14:29:07 +01:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst Add a hacking rule for string interpolation at logging 2016-07-11 22:54:56 +00: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
MANIFEST.in Include alembic versions directory to the package 2015-10-21 07:26:24 +00:00
README.rst corrected the link in README.rst 2016-08-01 23:48:05 +08:00
requirements.txt Updated from global requirements 2016-08-27 00:36:40 +00:00
run_tests.sh Remove check for bash usage 2015-04-07 15:15:33 +00:00
setup.cfg Remove FWaaS entries from neutron setup.cfg 2016-08-29 19:09:07 +00:00
setup.py Updated from global requirements 2015-09-21 18:56:49 +00:00
test-requirements.txt Updated from global requirements 2016-09-01 04:58:44 +00:00
TESTING.rst Add information about using file based sqlite for unit tests 2016-07-25 23:54:38 +00:00
tox.ini Add tool to list moved globals 2016-08-18 10:14:42 -04:00

Welcome!

You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!

External Resources:

The homepage for Neutron is: http://launchpad.net/neutron. Use this site for asking for help, and filing bugs. Code is available on git.openstack.org at <http://git.openstack.org/cgit/openstack/neutron>.

The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:

Neutron Administrator Guide

http://docs.openstack.org/admin-guide/networking.html

Neutron Developer Guide

http://docs.openstack.org/developer/neutron/devref/

Networking Guide

http://docs.openstack.org/networking-guide/

Neutron API Reference:

http://developer.openstack.org/api-ref/networking/v2/

Current Neutron developer documentation is available at:

http://wiki.openstack.org/NeutronDevelopment

For help on usage and hacking of Neutron, please send mail to <mailto:openstack-dev@lists.openstack.org>.

For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.