vmware-nsx/quantum/plugins/brocade
Mark McLoughlin b5990a7bd7 Use oslo-config-2013.1b3
The cfg API is now available via the oslo-config library, so switch to
it and remove the copied-and-pasted version.

Add the 2013.1b3 tarball to tools/pip-requires - this will be changed
to 'oslo-config>=2013.1' when oslo-config is published to pypi. This
will happen in time for grizzly final.

Remove the 'deps = pep8' from tox.ini as it means all the other deps
get installed with easy_install which can't install oslo-config from
the URL.

Retain dummy cfg.py file until keystoneclient middleware has been
updated (I18c450174277c8e2d15ed93879da6cd92074c27a).

Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
2013-02-17 17:33:05 +00:00
..
db Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00
nos Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00
tests Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00
__init__.py Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00
QuantumPlugin.py Use oslo-config-2013.1b3 2013-02-17 17:33:05 +00:00
README.md Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00
vlanbm.py Adds Brocade Plugin implementation 2013-02-14 09:22:38 -08:00

Brocade Openstack Quantum Plugin

Openstack Brocade Quantum Plugin implements the Quantum 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 Quantum plugin implements the Quantum v2.0 API. It uses NETCONF at the backend to configure the Brocade switch.

         +------------+        +------------+          +-------------+
         |            |        |            |          |             |
         |            |        |            |          |   Brocade   |
         | Openstack  |  v2.0  |  Brocade   |  NETCONF |  VCS Switch |
         | Quantum    +--------+  Quantum   +----------+             |
         |            |        |  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/quantum/quantum/plugins/

Within this structure, Brocade plugin resides at:

     /opt/stack/quantum/quantum/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 Quantum that you will be using the Brocade Plugin - this is done by setting the parameter core_plugin in Quantum:

     core_plugin = quantum.plugins.brocade.QuantumPlugin.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/quantum/plugins/brocade/brocade.ini
     [SWITCH]
     username = admin
     password = password
     address  = <switch mgmt ip address>
     ostype   = NOS
    
     [DATABASE]
     sql_connection = mysql://root:pass@localhost/brocade_quantum?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/quantum/plugins/brocade/brocade.ini. This file MUST be edited to suit your setup/environment.

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

Devstack

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

In order to use Brocade Quantum 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,quantum,q-svc,q-agt Q_PLUGIN=brocade

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

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

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