+..
+ 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.)
+
+
Testing Neutron
-=============================================================
+===============
Overview
--------
.. _virtualenvs: https://pypi.python.org/pypi/virtualenv
PEP8 and Unit Tests
-===================
++++++++++++++++++++
Running pep8 and unit tests is as easy as executing this in the root
directory of the Neutron source code::
tox -e py27
Functional Tests
-================
+++++++++++++++++
To run functional tests that do not require sudo privileges or
specific-system dependencies::
to deploy Neutron to the target host.
Fullstack Tests
-===============
++++++++++++++++
To run all the full-stack tests, you may use: ::
so that will be a good place to look if your test is failing.
API Tests
-=========
++++++++++
To run the api tests, deploy tempest and neutron with devstack and
then run the following command: ::
Running individual tests
-------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~
For running individual test modules or cases, you just need to pass
the dot-separated path to the module you want as an argument to it.
$ OS_POST_MORTEM_DEBUGGER=pudb ./run_tests.sh -d [test module path]
References
-==========
+~~~~~~~~~~
.. [#pudb] PUDB debugger:
https://pypi.python.org/pypi/pudb
-=================================
+..
+ 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.)
+
+
Client command extension support
-=================================
+================================
The client command extension adds support for extending the neutron client while
considering ease of creation.
The full document can be found in the python-neutronclient repository:
-http://docs.openstack.org/developer/python-neutronclient/devref/client_command_extensions.html
\ No newline at end of file
+http://docs.openstack.org/developer/python-neutronclient/devref/client_command_extensions.html
+..
+ 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.)
+
+
Contributing new extensions to Neutron
======================================
Decomposition Phase II Progress Chart
-=====================================
+-------------------------------------
TBD.
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.)
+
+
Setting Up a Development Environment
====================================
-==========================
-Neutron Full Stack Testing
-==========================
+..
+ 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.)
+
+
+Full Stack Testing
+==================
Why?
-====
+----
The idea behind "fullstack" testing is to fill a gap between unit + functional
tests and Tempest. Tempest tests are expensive to run, difficult to run in
still writing it.
How?
-====
+----
Full stack tests set up their own Neutron processes (Server & agents). They
assume a working Rabbit and MySQL server before the run starts. Instructions
.. image:: images/fullstack-multinode-simulation.png
When?
-=====
+-----
1) You'd like to test the interaction between Neutron components (Server
and agents) and have already tested each component in isolation via unit or
agent during the test.
Short Term Goals
-================
+----------------
* Multinode & Stability:
- Convert the L3 HA failover functional test to a full stack test
the fact as there will probably be something to copy/paste from.
Long Term Goals
-===============
+---------------
* Currently we configure the OVS agent with VLANs segmentation (Only because
it's easier). This allows us to validate most functionality, but we might
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.)
+
+
Developer Guide
===============
+..
+ 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.)
+
+
Neutron public API
==================
+..
+ 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.)
+
+
Official Sub-Projects
=====================
http://governance.openstack.org/reference/projects/neutron.html
Affiliated projects
-===================
+~~~~~~~~~~~~~~~~~~~
This table shows the affiliated projects that integrate with Neutron,
in one form or another. These projects typically leverage the pluggable
+-------------------------------+-----------------------+
Functionality legend
---------------------
+++++++++++++++++++++
- l2: a Layer 2 service;
- ml2: an ML2 mechanism driver;
.. _networking-arista:
Arista
-------
+++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-arista
* Launchpad: https://launchpad.net/networking-arista
.. _networking-bagpipe-l2:
BaGPipe
--------
++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-bagpipe-l2
* Launchpad: https://launchpad.net/bagpipe-l2
.. _networking-bgpvpn:
BGPVPN
--------
+++++++
* Git: https://git.openstack.org/cgit/openstack/networking-bgpvpn
.. _networking-bigswitch:
Big Switch Networks
--------------------
++++++++++++++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-bigswitch
* Pypi: https://pypi.python.org/pypi/bsnstacklib
.. _networking-brocade:
Brocade
--------
++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-brocade
* Launchpad: https://launchpad.net/networking-brocade
.. _networking-cisco:
Cisco
------
++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-cisco
* Launchpad: https://launchpad.net/networking-cisco
.. _dragonflow:
DragonFlow
-----------
+++++++++++
* Git: https://git.openstack.org/cgit/openstack/dragonflow
* Launchpad: https://launchpad.net/dragonflow
.. _networking-edge-vpn:
Edge VPN
---------
+++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-edge-vpn
* Launchpad: https://launchpad.net/edge-vpn
.. _networking-fujitsu:
FUJITSU
--------
++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-fujitsu
* Launchpad: https://launchpad.net/networking-fujitsu
.. _networking-hyperv:
Hyper-V
--------
++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-hyperv
* Launchpad: https://launchpad.net/networking-hyperv
.. _group-based-policy:
Group Based Policy
-------------------
+++++++++++++++++++
* Git: https://git.openstack.org/cgit/stackforge/group-based-policy
* Launchpad: https://launchpad.net/group-based-policy
.. _networking-ibm:
IBM SDNVE
----------
++++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-ibm
* Launchpad: https://launchpad.net/networking-ibm
.. _networking-l2gw:
L2 Gateway
-----------
+++++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-l2gw
* Launchpad: https://launchpad.net/networking-l2gw
.. _networking-midonet:
MidoNet
--------
++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-midonet
* Launchpad: https://launchpad.net/networking-midonet
.. _networking-mlnx:
Mellanox
---------
+++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-mlnx
* Launchpad: https://launchpad.net/networking-mlnx
.. _networking-nec:
NEC
----
++++
* Git: https://git.openstack.org/cgit/stackforge/networking-nec
* Launchpad: https://launchpad.net/networking-nec
.. _nuage-openstack-neutron:
Nuage
------
++++++
* Git: https://github.com/nuage-networks/nuage-openstack-neutron
.. _networking-odl:
OpenDayLight
-------------
+++++++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-odl
* Launchpad: https://launchpad.net/networking-odl
.. _networking-ofagent:
OpenFlow Agent (ofagent)
-------------------------
+++++++++++++++++++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-ofagent
* Launchpad: https://launchpad.net/networking-ofagent
.. _networking-ovn:
Open Virtual Network
---------------------
+++++++++++++++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-ovn
* Launchpad: https://launchpad.net/networking-ovn
.. _networking-ovs-dpdk:
Open DPDK
----------
++++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-ovs-dpdk
* Launchpad: https://launchpad.net/networking-ovs-dpdk
.. _networking-plumgrid:
PLUMgrid
---------
+++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-plumgrid
* Launchpad: https://launchpad.net/networking-plumgrid
.. _neutron-powervm:
PowerVM
--------
++++++++
* Git: https://git.openstack.org/cgit/stackforge/neutron-powervm
* Launchpad: https://launchpad.net/neutron-powervm
.. _networking-portforwarding:
PortForwarding
---------------
+++++++++++++++
* Git: https://git.openstack.org/cgit/stackforge/networking-portforwarding
* Launchpad: https://launchpad.net/networking-portforwarding
.. _networking-sfc:
SFC
----
++++
* Git: https://git.openstack.org/cgit/openstack/networking-sfc
.. _networking-vsphere:
vSphere
--------
++++++++
* Git: https://git.openstack.org/cgit/openstack/networking-vsphere
* Launchpad: https://launchpad.net/networking-vsphere
.. _vmware-nsx:
VMware NSX
-----------
+++++++++++
* Git: https://git.openstack.org/cgit/openstack/vmware-nsx
* Launchpad: https://launchpad.net/vmware-nsx
.. _octavia:
Octavia
--------
++++++++
* Git: https://git.openstack.org/cgit/openstack/octavia
* Launchpad: https://launchpad.net/octavia