Virtual private network services for OpenStack Neutron.
Go to file
2011-06-21 10:13:07 -07:00
bin Adding serialization/deserilization for network resources. 2011-05-27 17:52:06 +01:00
etc Work in progress on network API 2011-05-24 17:45:16 +01:00
quantum Bug fixes and clean-up, including supporting libvirt 2011-06-21 00:14:14 -07:00
smoketests Copy over miniclient from testscripts and port tests.py to use unittest 2011-06-01 11:00:15 -07:00
test_scripts First working version of Quantum API 2011-05-30 01:08:46 +01:00
tools add example to usage string for batch_config.py 2011-06-21 10:13:07 -07:00
.bzrignore adding /bzrignore to precent checking in pyc files and that sort of stuff... 2011-05-11 14:41:02 -07:00
README Add dependencies to README and fix whitespace 2011-06-07 10:17:56 -07:00

# -- Welcome!

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

# -- Basics:

1) Quantum REST API: Quantum supports a REST-ful programmatic interface to manage your
   cloud networking fabric.

2) Quantum Plugins: Quantum sports a plug-able architecture that allows Quantum's REST API
   to be backed by various entities that can create a cloud-class virtual networking fabric.
   The advantages of this plug-able architecture is two-folds:

   a) Allows for ANY open-source project or commercial vendor to write a Quantum plug-in.

   b) Allows Quantum users to not be tied down to a single Quantum implementation and
      enables them to switch out a plug-in by simple editing a config file - plugins.ini

# -- Dependencies

 The following python packages are required to run quantum.  These can be installed using pip:

 eventlet>=0.9.12
 nose
 Paste
 PasteDeploy
 pep8==0.5.0
 python-gflags
 routes
 simplejson
 webob
 webtest

1) Install easy_install (there is probably a distribution specific package for this)
2) Install pip:
   $ easy_install pip==dev
3) Install packages with pip:
   $ pip install <package name>

# -- Configuring Quantum plug-in

1) Explore sample and real Quantum plug-ins in the quantum.plugins module.

2) Or copy another Quantum plug-in into the quantum.plugins module.

3) Update plug-in configuration by editing plugins.ini file and modify
   "provider" property to point to the location of the Quantum plug-in.

4) Read the plugin specific README, this is usually found in the same
   directory as your Quantum plug-in, and follow configuration instructions.

# -- Launching the Quantum Service

1) Start quantum using the following command [on the quantum service host]:
~/src/quantum$ PYTHONPATH=.:$PYTHONPATH python bin/quantum etc/quantum.conf

# -- Making requests against the Quantum Service

Please refer to sample Web Service client code in:

../quantum/test_scripts/miniclient.py

# -- CLI tools to program the Quantum-managed Cloud networking fabric

Quantum comes with a programmatic CLI that is driven by the Quantum Web Service
You can use the CLI by issuing the following command:

~/src/quantum$ PYTHONPATH=.:$PYTHONPATH python quantum/cli.py

This will show help all of the available commands.

An example session looks like this:

$ export TENANT=t1
$ PYTHONPATH=. python quantum/cli.py -v create_net $TENANT network1
Created a new Virtual Network with ID:e754e7c0-a8eb-40e5-861a-b182d30c3441

# -- Writing your own Quantum plug-in

If you wish the write your own Quantum plugin, please refer to some concrete as
well as sample plugins available in:

../quantum/quantum/plugins/.. directory.

There are a few requirements to writing your own plugin:

1) Your plugin should implement all methods defined in
../quantum/quantum/quantum_plugin_base.QuantumPluginBase class

2) Copy your Quantum plug-in over to the ../quantum/quantum/plugins/.. directory

3) The next step is to edit the plugins.ini file in the same directory
   as QuantumPluginBase class and specify the location of your custom plugin
   as the "provider"

4) Launch the Quantum Service, and your plug-in is configured and ready to manage
   a Cloud Networking Fabric.