neutron/neutron/plugins/brocade
Ihar Hrachyshka 089e60a68b Migrate to oslo.context
That's just a matter of adding requirements.txt entry, fixing imports,
and dropping the corresponding oslo-incubator module from the tree.

While at it, made all imports to import the module into 'oslo_context' and
not just 'context', so that we don't override the module locally in
multiple methods that receive their context arguments with the same
name, making the library inaccessible from inside those methods.

Change-Id: Ie62af970b3b7f225de453e56c01abc4b12af8f5e
Closes-Bug: #1401054
2014-12-11 20:49:11 +01:00
..
db Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
nos Update i18n translation for Brocade plugin log msg's 2014-12-03 12:02:23 -08:00
tests Remove @author(s) from copyright statements 2014-09-15 21:40:09 +09:00
NeutronPlugin.py Migrate to oslo.context 2014-12-11 20:49:11 +01:00
README.md Remove last parts of Quantum compatibility shim 2014-03-31 23:31:23 -07:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
vlanbm.py Purge use of "PRED and A or B" poor-mans-ternary 2014-11-08 00:17:12 +11:00

README.md

Brocade Openstack Neutron Plugin

Openstack Brocade Neutron Plugin implements the Neutron v2.0 API.

This plugin is meant to orchestrate Brocade VCS switches running NOS, examples of these are:

  1. VDX 67xx series of switches
  2. VDX 87xx series of switches

Brocade Neutron plugin implements the Neutron v2.0 API. It uses NETCONF at the backend to configure the Brocade switch.

         +------------+        +------------+          +-------------+
         |            |        |            |          |             |
         |            |        |            |          |   Brocade   |
         | Openstack  |  v2.0  |  Brocade   |  NETCONF |  VCS Switch |
         | Neutron    +--------+  Neutron   +----------+             |
         |            |        |  Plugin    |          |  VDX 67xx   |
         |            |        |            |          |  VDX 87xx   |
         |            |        |            |          |             |
         |            |        |            |          |             |
         +------------+        +------------+          +-------------+

Directory Structure

Normally you will have your Openstack directory structure as follows:

     /opt/stack/nova/
     /opt/stack/horizon/
     ...
     /opt/stack/neutron/neutron/plugins/

Within this structure, Brocade plugin resides at:

     /opt/stack/neutron/neutron/plugins/brocade

Prerequsites

This plugin requires installation of the python netconf client (ncclient) library:

ncclient v0.3.1 - Python library for NETCONF clients available at http://github.com/brocade/ncclient

% git clone https://www.github.com/brocade/ncclient % cd ncclient; sudo python ./setup.py install

Configuration

  1. Specify to Neutron that you will be using the Brocade Plugin - this is done by setting the parameter core_plugin in Neutron:

     core_plugin = neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2
    
  2. Physical switch configuration parameters and Brocade specific database configuration is specified in the configuration file specified in the brocade.ini files:

     % cat /etc/neutron/plugins/brocade/brocade.ini
     [SWITCH]
     username = admin
     password = password
     address  = <switch mgmt ip address>
     ostype   = NOS
    
     [database]
     connection = mysql://root:pass@localhost/brocade_neutron?charset=utf8
    
     (please see list of more configuration parameters in the brocade.ini file)
    

Running Setup.py

Running setup.py with appropriate permissions will copy the default configuration file to /etc/neutron/plugins/brocade/brocade.ini. This file MUST be edited to suit your setup/environment.

  % cd /opt/stack/neutron/neutron/plugins/brocade
  % python setup.py

Devstack

Please see special notes for devstack at: http://wiki.openstack.org/brocade-neutron-plugin

In order to use Brocade Neutron Plugin, add the following lines in localrc, if localrc file doe not exist create one:

ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,neutron,q-svc,q-agt Q_PLUGIN=brocade

As part of running devstack/stack.sh, the configuration files is copied as:

% cp /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini /etc/neutron/plugins/brocade/brocade.ini

(hence it is important to make any changes to the configuration in: /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini)