~salvatore-orlando/neutron/quantum-api

« back to all changes in this revision

Viewing changes to README

  • Committer: Salvatore Orlando
  • Date: 2011-06-24 13:52:17 UTC
  • mfrom: (6.1.14 quantum-trunk)
  • Revision ID: salvatore.orlando@eu.citrix.com-20110624135217-h6uz1zu3fxxpf3wt
Merge trunk
Resolving conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -- Welcome!
 
2
 
 
3
  You have come across a cloud computing network fabric controller.  It has
 
4
  identified itself as "Quantum."  It aims to tame your (cloud) networking!
 
5
 
 
6
# -- Basics:
 
7
 
 
8
1) Quantum REST API: Quantum supports a REST-ful programmatic interface to
 
9
   manage your cloud networking fabric.
 
10
 
 
11
2) Quantum Plugins: Quantum sports a plug-able architecture that allows
 
12
   Quantum's REST API to be backed by various entities that can create a
 
13
   cloud-class virtual networking fabric.  The advantages of this plug-able
 
14
   architecture is two-folds:
 
15
 
 
16
   a) Allows for ANY open-source project or commercial vendor to write a
 
17
   Quantum plug-in.
 
18
 
 
19
   b) Allows Quantum users to not be tied down to a single Quantum
 
20
   implementation and enables them to switch out a plug-in by simple editing a
 
21
   config file - plugins.ini
 
22
 
 
23
# -- Dependencies
 
24
 
 
25
 The following python packages are required to run quantum.  These can be
 
26
 installed using pip:
 
27
 
 
28
 eventlet>=0.9.12
 
29
 nose
 
30
 Paste
 
31
 PasteDeploy
 
32
 pep8==0.5.0
 
33
 python-gflags
 
34
 routes
 
35
 simplejson
 
36
 webob
 
37
 webtest
 
38
 
 
39
1) Install easy_install (there is probably a distribution specific package for
 
40
this)
 
41
 
 
42
2) Install pip:
 
43
   $ easy_install pip==dev
 
44
3) Install packages with pip:
 
45
   $ pip install <package name>
 
46
 
 
47
# -- Configuring Quantum plug-in
 
48
 
 
49
1) Identify your desired plug-in.  Choose a plugin from one of he options in
 
50
   the quantum/plugins directory.
 
51
 
 
52
2) Update plug-in configuration by editing the quantum/plugins.ini file and
 
53
   modify "provider" property to point to the location of the Quantum plug-in.
 
54
   It should specify the class path to the plugin and the class name (i.e. for
 
55
   a plugin class MyPlugin in quantum/plugins/myplugin/myplugin.py the
 
56
   provider would be: quantum.plugins.myplugin.myplugin.MyPlugin)
 
57
 
 
58
3) Read the plugin specific README, this is usually found in the same
 
59
   directory as your Quantum plug-in, and follow configuration instructions.
 
60
 
 
61
# -- Launching the Quantum Service
 
62
 
 
63
1) Start quantum using the following command [on the quantum service host]:
 
64
~/src/quantum$ PYTHONPATH=.:$PYTHONPATH python bin/quantum etc/quantum.conf
 
65
 
 
66
# -- Making requests against the Quantum Service
 
67
 
 
68
Please refer to sample Web Service client code in:
 
69
 
 
70
../quantum/test_scripts/miniclient.py
 
71
 
 
72
# -- CLI tools to program the Quantum-managed Cloud networking fabric
 
73
 
 
74
Quantum comes with a programmatic CLI that is driven by the Quantum Web
 
75
Service.  You can use the CLI by issuing the following command:
 
76
 
 
77
~/src/quantum$ PYTHONPATH=.:$PYTHONPATH python quantum/cli.py
 
78
 
 
79
This will show help all of the available commands.
 
80
 
 
81
An example session looks like this:
 
82
 
 
83
$ export TENANT=t1
 
84
$ PYTHONPATH=. python quantum/cli.py -v create_net $TENANT network1
 
85
Created a new Virtual Network with ID:e754e7c0-a8eb-40e5-861a-b182d30c3441
 
86
 
 
87
# -- Writing your own Quantum plug-in
 
88
 
 
89
If you wish the write your own Quantum plugin, please refer to some concrete as
 
90
well as sample plugins available in:
 
91
 
 
92
../quantum/quantum/plugins/.. directory.
 
93
 
 
94
There are a few requirements to writing your own plugin:
 
95
 
 
96
1) Your plugin should implement all methods defined in the
 
97
   quantum/quantum_plugin_base.QuantumPluginBase class
 
98
 
 
99
2) Copy your Quantum plug-in over to the quantum/quantum/plugins/.. directory
 
100
 
 
101
3) The next step is to edit the plugins.ini file in the same directory
 
102
   as QuantumPluginBase class and specify the location of your custom plugin
 
103
   as the "provider"
 
104
 
 
105
4) Launch the Quantum Service, and your plug-in is configured and ready to
 
106
   manage a Cloud Networking Fabric.
 
107
 
 
108