101 lines
3.2 KiB
Plaintext
101 lines
3.2 KiB
Plaintext
# -- 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.
|
|
|
|
|