Rename Quantum to Neutron

This change renames everything to Neutron while providing backwards
compatible adjustments for Grizzly configuration files.

implements blueprint: remove-use-of-quantum

Change-Id: Ie7d07ba7c89857e13d4ddc8f0e9b68de020a3d19
This commit is contained in:
Mark McClain 2013-07-03 19:39:46 -04:00
parent fc52854c1f
commit ee3fe4e836
714 changed files with 4918 additions and 4439 deletions

View File

@ -3,10 +3,15 @@ quantum.egg-info
quantum_tests.sqlite
quantum.sqlite
*.quantum-venv
neutron.egg-info
neutron_tests.sqlite
neutron.sqlite
*.neutron-venv
.venv
dist/
ChangeLog
*.pid
*.log
neutron/vcsversion.py
quantum/vcsversion.py
.ropeproject

3
.gitignore vendored
View File

@ -8,6 +8,9 @@ dist/
doc/build
*.DS_Store
*.pyc
neutron.egg-info/
neutron/vcsversion.py
neutron/versioninfo
quantum.egg-info/
quantum/vcsversion.py
quantum/versioninfo

View File

@ -23,7 +23,8 @@ argument-rgx=[a-z_][a-z0-9_]{1,30}$
# and be lowecased with underscores
method-rgx=([a-z_][a-z0-9_]{2,50}|setUp|tearDown)$
# Module names matching quantum-* are ok (files in bin/)
# Module names matching neutron-* are ok (files in bin/)
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(quantum-[a-z0-9_-]+))$
# Don't require docstrings on tests.

View File

@ -1,4 +1,4 @@
[DEFAULT]
test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 ${PYTHON:-python} -m subunit.run discover -t ./ quantum/tests/unit $LISTOPT $IDOPTION
test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 ${PYTHON:-python} -m subunit.run discover -t ./ neutron/tests/unit $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list

View File

@ -1,4 +1,4 @@
Quantum Style Commandments
Neutron Style Commandments
==========================
- Step 1: Read http://www.python.org/dev/peps/pep-0008/
@ -35,13 +35,13 @@ Example::
The following imports,
from quantum.api import networks
from quantum import wsgi
from neutron.api import networks
from neutron import wsgi
are considered equivalent for ordering purposes to
import quantum.api.networks
import quantum.wsgi
import neutron.api.networks
import neutron.wsgi
- Organize your imports according to the following template
@ -52,7 +52,7 @@ Example::
\n
{{third-party lib imports in human alphabetical order}}
\n
{{quantum imports in human alphabetical order}}
{{neutron imports in human alphabetical order}}
\n
\n
{{begin your code}}
@ -71,13 +71,13 @@ Example::
import testtools
import webob.exc
import quantum.api.networks
from quantum.api import ports
from quantum.db import models
from quantum.extensions import multiport
from quantum.openstack.common import log as logging
import quantum.manager
from quantum import service
import neutron.api.networks
from neutron.api import ports
from neutron.db import models
from neutron.extensions import multiport
from neutron.openstack.common import log as logging
import neutron.manager
from neutron import service
Docstrings
@ -202,8 +202,8 @@ submitted bug fix does have a unit test, be sure to add a new one that fails
without the patch and passes with the patch.
All unittest classes must ultimately inherit from testtools.TestCase. In the
Quantum test suite, this should be done by inheriting from
quantum.tests.base.BaseTestCase.
Neutron test suite, this should be done by inheriting from
neutron.tests.base.BaseTestCase.
All setUp and tearDown methods must upcall using the super() method.
tearDown methods should be avoided and addCleanup calls should be preferred.

View File

@ -2,11 +2,11 @@ include AUTHORS
include README.rst
include ChangeLog
include LICENSE
include quantum/db/migration/README
include quantum/db/migration/alembic.ini
include quantum/db/migration/alembic_migrations/script.py.mako
include quantum/db/migration/alembic_migrations/versions/README
recursive-include quantum/locale *
include neutron/db/migration/README
include neutron/db/migration/alembic.ini
include neutron/db/migration/alembic_migrations/script.py.mako
include neutron/db/migration/alembic_migrations/versions/README
recursive-include neutron/locale *
exclude .gitignore
exclude .gitreview

View File

@ -1,25 +1,25 @@
# -- Welcome!
You have come across a cloud computing network fabric controller. It has
identified itself as "Quantum." It aims to tame your (cloud) networking!
identified itself as "Neutron." It aims to tame your (cloud) networking!
# -- External Resources:
The homepage for Quantum is: http://launchpad.net/quantum . Use this
The homepage for Neutron is: http://launchpad.net/neutron . Use this
site for asking for help, and filing bugs. Code is available on github at
<http://github.com/openstack/quantum>.
<http://github.com/openstack/neutron>.
The latest and most in-depth documentation on how to use Quantum is
The latest and most in-depth documentation on how to use Neutron is
available at: <http://docs.openstack.org>. This includes:
Quantum Administrator Guide
Neutron Administrator Guide
http://docs.openstack.org/trunk/openstack-network/admin/content/
Quantum API Reference:
Neutron API Reference:
http://docs.openstack.org/api/openstack-network/2.0/content/
The start of some developer documentation is available at:
http://wiki.openstack.org/QuantumDevelopment
http://wiki.openstack.org/NeutronDevelopment
For help using or hacking on Quantum, you can send mail to
For help using or hacking on Neutron, you can send mail to
<mailto:openstack-dev@lists.openstack.org>.

12
TESTING
View File

@ -1,11 +1,11 @@
Testing Quantum
Testing Neutron
=============================================================
Overview
The unit tests are meant to cover as much code as possible and should
be executed without the service running. They are designed to test
the various pieces of the quantum tree to make sure any new changes
the various pieces of the neutron tree to make sure any new changes
don't break existing functionality.
Running tests
@ -30,17 +30,17 @@ Running individual tests
class separating it from the module path with a colon.
For example, the following would run only the JSONV2TestCase tests from
quantum/tests/unit/test_api_v2.py:
neutron/tests/unit/test_api_v2.py:
$ ./run_tests.sh quantum.tests.unit.test_api_v2:JSONV2TestCase
$ ./run_tests.sh neutron.tests.unit.test_api_v2:JSONV2TestCase
or
$ ./tox quantum.tests.unit.test_api_v2:JSONV2TestCase
$ ./tox neutron.tests.unit.test_api_v2:JSONV2TestCase
Adding more tests
Quantum has a fast growing code base and there is plenty of areas that
Neutron has a fast growing code base and there is plenty of areas that
need to be covered by unit tests.
To get a grasp of the areas where unit tests are needed, you can check

View File

@ -0,0 +1,20 @@
#!/usr/bin/env python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright (c) 2012 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron.agent.linux import dhcp
dhcp.Dnsmasq.lease_update()

133
bin/neutron-rootwrap Executable file
View File

@ -0,0 +1,133 @@
#!/usr/bin/env python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright (c) 2012 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Root wrapper for Neutron
Filters which commands neutron is allowed to run as another user.
To use this, you should set the following in neutron.conf and the
various .ini files for the agent plugins:
root_helper=sudo neutron-rootwrap /etc/neutron/rootwrap.conf
You also need to let the neutron user run neutron-rootwrap as root in
/etc/sudoers:
neutron ALL = (root) NOPASSWD: /usr/bin/neutron-rootwrap
/etc/neutron/rootwrap.conf *
Filter specs live in /etc/neutron/rootwrap.d/*.filters, or
other locations pointed to by /etc/neutron/rootwrap.conf.
To make allowed commands node-specific, your packaging should only
install apropriate .filters for commands which are needed on each
node.
"""
from __future__ import print_function
import ConfigParser
import logging
import os
import pwd
import signal
import subprocess
import sys
RC_UNAUTHORIZED = 99
RC_NOCOMMAND = 98
RC_BADCONFIG = 97
RC_NOEXECFOUND = 96
def _subprocess_setup():
# Python installs a SIGPIPE handler by default. This is usually not what
# non-Python subprocesses expect.
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
def _exit_error(execname, message, errorcode, log=True):
print("%s: %s" % (execname, message))
if log:
logging.error(message)
sys.exit(errorcode)
if __name__ == '__main__':
# Split arguments, require at least a command
execname = sys.argv.pop(0)
if len(sys.argv) < 2:
_exit_error(execname, "No command specified", RC_NOCOMMAND, log=False)
configfile = sys.argv.pop(0)
userargs = sys.argv[:]
# Add ../ to sys.path to allow running from branch
possible_topdir = os.path.normpath(os.path.join(os.path.abspath(execname),
os.pardir, os.pardir))
if os.path.exists(os.path.join(possible_topdir, "neutron", "__init__.py")):
sys.path.insert(0, possible_topdir)
from neutron.rootwrap import wrapper
# Load configuration
try:
rawconfig = ConfigParser.RawConfigParser()
rawconfig.read(configfile)
config = wrapper.RootwrapConfig(rawconfig)
except ValueError as exc:
msg = "Incorrect value in %s: %s" % (configfile, exc.message)
_exit_error(execname, msg, RC_BADCONFIG, log=False)
except ConfigParser.Error:
_exit_error(execname, "Incorrect configuration file: %s" % configfile,
RC_BADCONFIG, log=False)
if config.use_syslog:
wrapper.setup_syslog(execname,
config.syslog_log_facility,
config.syslog_log_level)
# Execute command if it matches any of the loaded filters
filters = wrapper.load_filters(config.filters_path)
try:
filtermatch = wrapper.match_filter(filters, userargs,
exec_dirs=config.exec_dirs)
if filtermatch:
command = filtermatch.get_command(userargs,
exec_dirs=config.exec_dirs)
if config.use_syslog:
logging.info("(%s > %s) Executing %s (filter match = %s)" % (
os.getlogin(), pwd.getpwuid(os.getuid())[0],
command, filtermatch.name))
obj = subprocess.Popen(command,
stdin=sys.stdin,
stdout=sys.stdout,
stderr=sys.stderr,
preexec_fn=_subprocess_setup,
env=filtermatch.get_environment(userargs))
obj.wait()
sys.exit(obj.returncode)
except wrapper.FilterMatchNotExecutable as exc:
msg = ("Executable not found: %s (filter match = %s)"
% (exc.match.exec_path, exc.match.name))
_exit_error(execname, msg, RC_NOEXECFOUND, log=config.use_syslog)
except wrapper.NoFilterMatched:
msg = ("Unauthorized command: %s (no filter matched)"
% ' '.join(userargs))
_exit_error(execname, msg, RC_UNAUTHORIZED, log=config.use_syslog)

View File

@ -23,7 +23,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.nicira.check_nvp_config import main
from neutron.plugins.nicira.check_nvp_config import main
main(sys.argv)

View File

@ -20,7 +20,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.db.migration.cli import main
from neutron.db.migration.cli import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.debug.shell import main
from neutron.debug.shell import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.dhcp_agent import main
from neutron.agent.dhcp_agent import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.linux import dhcp
from neutron.agent.linux import dhcp
dhcp.Dnsmasq.lease_update()

View File

@ -20,7 +20,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.hyperv.agent.hyperv_quantum_agent import main
from neutron.plugins.hyperv.agent.hyperv_neutron_agent import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.l3_agent import main
from neutron.agent.l3_agent import main
main()

View File

@ -20,7 +20,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.services.loadbalancer.drivers.haproxy.agent import main
from neutron.services.loadbalancer.drivers.haproxy.agent import main
main()

View File

@ -19,6 +19,6 @@
import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.linuxbridge.agent.linuxbridge_quantum_agent import main
from neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.metadata.agent import main
from neutron.agent.metadata.agent import main
main()

View File

@ -19,7 +19,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.mlnx.agent.eswitch_quantum_agent import main
from neutron.plugins.mlnx.agent.eswitch_neutron_agent import main
main()

View File

@ -19,6 +19,6 @@
import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.nec.agent.nec_quantum_agent import main
from neutron.plugins.nec.agent.nec_neutron_agent import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.netns_cleanup_util import main
from neutron.agent.netns_cleanup_util import main
main()

View File

@ -16,5 +16,5 @@
# License for the specific language governing permissions and limitations
# under the License.
from quantum.agent.metadata.namespace_proxy import main
from neutron.agent.metadata.namespace_proxy import main
main()

View File

@ -19,6 +19,6 @@
import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.openvswitch.agent.ovs_quantum_agent import main
from neutron.plugins.openvswitch.agent.ovs_neutron_agent import main
main()

View File

@ -20,7 +20,7 @@ import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.agent.ovs_cleanup_util import main
from neutron.agent.ovs_cleanup_util import main
main()

View File

@ -16,21 +16,21 @@
# License for the specific language governing permissions and limitations
# under the License.
"""Root wrapper for Quantum
"""Root wrapper for Neutron
Filters which commands quantum is allowed to run as another user.
Filters which commands neutron is allowed to run as another user.
To use this, you should set the following in quantum.conf and the
To use this, you should set the following in neutron.conf and the
various .ini files for the agent plugins:
root_helper=sudo quantum-rootwrap /etc/quantum/rootwrap.conf
root_helper=sudo neutron-rootwrap /etc/neutron/rootwrap.conf
You also need to let the quantum user run quantum-rootwrap as root in
You also need to let the neutron user run neutron-rootwrap as root in
/etc/sudoers:
quantum ALL = (root) NOPASSWD: /usr/bin/quantum-rootwrap
/etc/quantum/rootwrap.conf *
neutron ALL = (root) NOPASSWD: /usr/bin/neutron-rootwrap
/etc/neutron/rootwrap.conf *
Filter specs live in /etc/quantum/rootwrap.d/*.filters, or
other locations pointed to by /etc/quantum/rootwrap.conf.
Filter specs live in /etc/neutron/rootwrap.d/*.filters, or
other locations pointed to by /etc/neutron/rootwrap.conf.
To make allowed commands node-specific, your packaging should only
install apropriate .filters for commands which are needed on each
node.
@ -78,10 +78,10 @@ if __name__ == '__main__':
# Add ../ to sys.path to allow running from branch
possible_topdir = os.path.normpath(os.path.join(os.path.abspath(execname),
os.pardir, os.pardir))
if os.path.exists(os.path.join(possible_topdir, "quantum", "__init__.py")):
if os.path.exists(os.path.join(possible_topdir, "neutron", "__init__.py")):
sys.path.insert(0, possible_topdir)
from quantum.rootwrap import wrapper
from neutron.rootwrap import wrapper
# Load configuration
try:

View File

@ -22,19 +22,19 @@ import contextlib
import os
import sys
# If ../quantum/__init__.py exists, add ../ to Python search path, so that
# If ../neutron/__init__.py exists, add ../ to Python search path, so that
# it will override what happens to be installed in /usr/(local/)lib/python...
POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
os.pardir,
os.pardir))
if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'quantum', '__init__.py')):
if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'neutron', '__init__.py')):
sys.path.insert(0, POSSIBLE_TOPDIR)
from oslo.config import cfg
from quantum.openstack.common import log as logging
from quantum.openstack.common import rpc
from quantum.openstack.common.rpc import impl_zmq
from neutron.openstack.common import log as logging
from neutron.openstack.common import rpc
from neutron.openstack.common.rpc import impl_zmq
CONF = cfg.CONF
CONF.register_opts(rpc.rpc_opts)
@ -42,8 +42,8 @@ CONF.register_opts(impl_zmq.zmq_opts)
def main():
CONF(sys.argv[1:], project='quantum')
logging.setup("quantum")
CONF(sys.argv[1:], project='neutron')
logging.setup("neutron")
with contextlib.closing(impl_zmq.ZmqProxy(CONF)) as reactor:
reactor.consume_in_thread()

View File

@ -19,6 +19,6 @@
import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.plugins.ryu.agent.ryu_quantum_agent import main
from neutron.plugins.ryu.agent.ryu_neutron_agent import main
main()

View File

@ -22,6 +22,6 @@ eventlet.monkey_patch()
import os
import sys
sys.path.insert(0, os.getcwd())
from quantum.server import main as server
from neutron.server import main as server
server()

View File

@ -23,17 +23,17 @@ subnets.
from oslo.config import cfg
from quantum import context
from quantum import manager
from quantum.common import config
from quantum.openstack.common.notifier import api as notifier_api
from neutron import context
from neutron import manager
from neutron.common import config
from neutron.openstack.common.notifier import api as notifier_api
if __name__ == '__main__':
cfg.CONF(project='quantum')
cfg.CONF(project='neutron')
config.setup_logging(cfg.CONF)
context = context.get_admin_context()
plugin = manager.QuantumManager.get_plugin()
plugin = manager.NeutronManager.get_plugin()
for network in plugin.get_networks(context):
notifier_api.notify(context,
notifier_api.publisher_id('network'),

View File

@ -92,28 +92,28 @@
<sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>
<postProcess>
<!-- Copies the figures to the correct location for webhelp -->
<copy todir="${basedir}/target/docbkx/webhelp/quantum-api-1.0/figures">
<fileset dir="${basedir}/source/docbkx/quantum-api-1.0/figures">
<copy todir="${basedir}/target/docbkx/webhelp/neutron-api-1.0/figures">
<fileset dir="${basedir}/source/docbkx/neutron-api-1.0/figures">
<include name="**/*.png" />
</fileset>
</copy>
<!-- New stuff -->
<copy
todir="${basedir}/target/docbkx/webhelp/trunk/developer/quantum-api-1.0">
todir="${basedir}/target/docbkx/webhelp/trunk/developer/neutron-api-1.0">
<fileset
dir="${basedir}/target/docbkx/webhelp/quantum-api-1.0/quantum-api-guide/">
dir="${basedir}/target/docbkx/webhelp/neutron-api-1.0/neutron-api-guide/">
<include name="**/*" />
</fileset>
</copy>
<!--Moves PDFs to the needed placement -->
<move failonerror="false"
file="${basedir}/target/docbkx/pdf/quantum-api-1.0/quantum-api-guide.pdf"
tofile="${basedir}/target/docbkx/webhelp/trunk/developer/quantum-api-1.0/quantum-api-guide-trunk.pdf"/>
file="${basedir}/target/docbkx/pdf/neutron-api-1.0/neutron-api-guide.pdf"
tofile="${basedir}/target/docbkx/webhelp/trunk/developer/neutron-api-1.0/neutron-api-guide-trunk.pdf"/>
<!--Deletes leftover uneeded directories -->
<delete
dir="${basedir}/target/docbkx/webhelp/quantum-api-1.0"/>
dir="${basedir}/target/docbkx/webhelp/neutron-api-1.0"/>
</postProcess>
</configuration>
</execution>
@ -123,7 +123,7 @@
<xincludeSupported>true</xincludeSupported>
<sourceDirectory>source/docbkx</sourceDirectory>
<includes>
quantum-api-1.0/quantum-api-guide.xml
neutron-api-1.0/neutron-api-guide.xml
</includes>
<profileSecurity>reviewer</profileSecurity>
<branding>openstack</branding>

View File

@ -34,8 +34,8 @@ import sys
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
QUANTUM_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", ".."))
sys.path.insert(0, QUANTUM_DIR)
NEUTRON_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", ".."))
sys.path.insert(0, NEUTRON_DIR)
# -- General configuration ---------------------------------------------------
@ -68,7 +68,7 @@ source_suffix = '.rst'
master_doc = 'index'
# General information about the project.
project = u'Quantum'
project = u'Neutron'
copyright = u'2011-present, OpenStack Foundation.'
# The version info for the project you're documenting, acts as replacement for
@ -76,10 +76,10 @@ copyright = u'2011-present, OpenStack Foundation.'
# built documents.
#
# Version info
from quantum.version import version_info as quantum_version
release = quantum_version.release_string()
from neutron.version import version_info as neutron_version
release = neutron_version.release_string()
# The short X.Y version.
version = quantum_version.version_string()
version = neutron_version.version_string()
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@ -116,7 +116,7 @@ show_authors = True
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
modindex_common_prefix = ['quantum.']
modindex_common_prefix = ['neutron.']
# -- Options for man page output --------------------------------------------
@ -124,7 +124,7 @@ modindex_common_prefix = ['quantum.']
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual'
man_pages = [
('man/quantum-server', 'quantum-server', u'Quantum Server',
('man/neutron-server', 'neutron-server', u'Neutron Server',
[u'OpenStack'], 1)
]
@ -203,7 +203,7 @@ html_last_updated_fmt = os.popen(git_cmd).read()
#html_file_suffix = ''
# Output file base name for HTML help builder.
htmlhelp_basename = 'quantumdoc'
htmlhelp_basename = 'neutrondoc'
# -- Options for LaTeX output ------------------------------------------------
@ -218,8 +218,8 @@ htmlhelp_basename = 'quantumdoc'
# (source start file, target name, title, author,
# documentclass [howto/manual]).
latex_documents = [
('index', 'Quantum.tex', u'Quantum Documentation',
u'Quantum development team', 'manual'),
('index', 'Neutron.tex', u'Neutron Documentation',
u'Neutron development team', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of

View File

@ -19,7 +19,7 @@ Open Stack Common
=================
A number of modules used are from the openstack-common project.
The imported files are in 'quantum/openstack-common.conf'.
The imported files are in 'neutron/openstack-common.conf'.
More information can be found at `OpenStack Common`_.
.. _`OpenStack Common`: https://launchpad.net/openstack-common

View File

@ -18,6 +18,6 @@
Developer Guide
===============
The `Quantum Wiki`_ is a very good place to start.
The `Neutron Wiki`_ is a very good place to start.
.. _`Quantum wiki`: http://wiki.openstack.org/Quantum
.. _`Neutron wiki`: http://wiki.openstack.org/Neutron

View File

@ -1,7 +1,7 @@
Plugin API
==========
.. automodule:: quantum.quantum_plugin_base_v2
.. automodule:: neutron.neutron_plugin_base_v2
.. autoclass:: QuantumPluginBaseV2
.. autoclass:: NeutronPluginBaseV2
:members:

View File

@ -14,27 +14,27 @@
License for the specific language governing permissions and limitations
under the License.
Welcome to Quantum's developer documentation!
Welcome to Neutron's developer documentation!
=============================================
Quantum is an OpenStack project to provide "network connectivity as a service"
Neutron is an OpenStack project to provide "network connectivity as a service"
between interface devices (e.g., vNICs) managed by other Openstack services
(e.g., nova). It implements the `Quantum API Guide`_.
(e.g., nova). It implements the `Neutron API Guide`_.
.. _`Quantum API Guide`: http://docs.openstack.org/incubation/openstack-network/developer/quantum-api-1.0/content/
.. _`Neutron API Guide`: http://docs.openstack.org/incubation/openstack-network/developer/quantum-api-1.0/content/
This document describes Quantum for contributors of the project, and assumes
that you are already familiar with Quantum from an `end-user perspective`_.
This document describes Neutron for contributors of the project, and assumes
that you are already familiar with Neutron from an `end-user perspective`_.
.. _`end-user perspective`: http://docs.openstack.org/trunk/openstack-network/admin/content/index.html
This documentation is generated by the Sphinx toolkit and lives in the source
tree. Additional documentation on Quantum and other components of OpenStack
can be found on the `OpenStack wiki`_. The `Quantum Development wiki`_ is a very good
tree. Additional documentation on Neutron and other components of OpenStack
can be found on the `OpenStack wiki`_. The `Neutron Development wiki`_ is a very good
place to start.
.. _`OpenStack wiki`: http://wiki.openstack.org
.. _`Quantum Development wiki`: http://wiki.openstack.org/QuantumDevelopment
.. _`Neutron Development wiki`: http://wiki.openstack.org/NeutronDevelopment
Enjoy!
@ -53,4 +53,4 @@ Man Pages
.. toctree::
man/quantum-server
man/neutron-server

View File

@ -1,9 +1,9 @@
==============
quantum-server
neutron-server
==============
--------------
Quantum Server
Neutron Server
--------------
:Author: openstack@lists.launchpad.net
@ -16,13 +16,13 @@ Quantum Server
SYNOPSIS
========
quantum-server [options]
neutron-server [options]
DESCRIPTION
===========
quantum-server provides a webserver that exposes the Quantum API, and
passes all webservice calls to the Quantum plugin for processing.
neutron-server provides a webserver that exposes the Neutron API, and
passes all webservice calls to the Neutron plugin for processing.
OPTIONS
=======
@ -32,12 +32,12 @@ OPTIONS
-v, --verbose Print more verbose output
-d, --debug Print debugging output
--config-file=PATH Path to the config file to use, for example,
/etc/quantum/quantum.conf. When not specified
/etc/neutron/neutron.conf. When not specified
(the default), we generally look at the first argument
specified to be a config file, and if that is also
missing, we search standard directories for a config
file. (/etc/quantum/,
/usr/lib/pythonX/site-packages/quantum/)
file. (/etc/neutron/,
/usr/lib/pythonX/site-packages/neutron/)
Logging Options:
The following configuration options are specific to logging
@ -61,15 +61,15 @@ FILES
========
plugins.ini file contains the plugin information
quantum.conf file contains configuration information in the form of python-gflags.
neutron.conf file contains configuration information in the form of python-gflags.
SEE ALSO
========
* `OpenStack Quantum <http://quantum.openstack.org>`__
* `OpenStack Neutron <http://neutron.openstack.org>`__
BUGS
====
* Quantum is sourced in Launchpad so you can view current bugs at `OpenStack Bugs <https://bugs.launchpad.net/quantum>`__
* Neutron is sourced in Launchpad so you can view current bugs at `OpenStack Bugs <https://bugs.launchpad.net/neutron>`__

View File

@ -1,24 +1,24 @@
[composite:quantum]
[composite:neutron]
use = egg:Paste#urlmap
/: quantumversions
/v2.0: quantumapi_v2_0
/: neutronversions
/v2.0: neutronapi_v2_0
[composite:quantumapi_v2_0]
use = call:quantum.auth:pipeline_factory
noauth = extensions quantumapiapp_v2_0
keystone = authtoken keystonecontext extensions quantumapiapp_v2_0
[composite:neutronapi_v2_0]
use = call:neutron.auth:pipeline_factory
noauth = extensions neutronapiapp_v2_0
keystone = authtoken keystonecontext extensions neutronapiapp_v2_0
[filter:keystonecontext]
paste.filter_factory = quantum.auth:QuantumKeystoneContext.factory
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
[filter:extensions]
paste.filter_factory = quantum.api.extensions:plugin_aware_extension_middleware_factory
paste.filter_factory = neutron.api.extensions:plugin_aware_extension_middleware_factory
[app:quantumversions]
paste.app_factory = quantum.api.versions:Versions.factory
[app:neutronversions]
paste.app_factory = neutron.api.versions:Versions.factory
[app:quantumapiapp_v2_0]
paste.app_factory = quantum.api.v2.router:APIRouter.factory
[app:neutronapiapp_v2_0]
paste.app_factory = neutron.api.v2.router:APIRouter.factory

View File

@ -2,7 +2,7 @@
# Show debugging output in log (sets DEBUG log level output)
# debug = true
# The DHCP agent will resync its state with Quantum to recover from any
# The DHCP agent will resync its state with Neutron to recover from any
# transient notification or rpc errors. The interval is number of
# seconds between attempts.
# resync_interval = 5
@ -11,16 +11,16 @@
# matches you plugin.
# OVS based plugins(OVS, Ryu, NEC, NVP, BigSwitch/Floodlight)
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# OVS based plugins(Ryu, NEC, NVP, BigSwitch/Floodlight) that use OVS
# as OpenFlow switch and check port status
#ovs_use_veth = True
# LinuxBridge
#interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver
#interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
# The agent can use other DHCP drivers. Dnsmasq is the simplest and requires
# no additional setup of the DHCP server.
dhcp_driver = quantum.agent.linux.dhcp.Dnsmasq
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and
# iproute2 package that supports namespaces).
@ -35,7 +35,7 @@ dhcp_driver = quantum.agent.linux.dhcp.Dnsmasq
# Allows for serving metadata requests coming from a dedicated metadata
# access network whose cidr is 169.254.169.254/16 (or larger prefix), and
# is connected to a Quantum router from which the VMs send metadata
# is connected to a Neutron router from which the VMs send metadata
# request. In this case DHCP Option 121 will not be injected in VMs, as
# they will be able to reach 169.254.169.254 through a router.
# This option requires enable_isolated_metadata = True

View File

@ -6,12 +6,12 @@
# matches your plugin.
# OVS based plugins (OVS, Ryu, NEC) that supports L3 agent
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# OVS based plugins(Ryu, NEC) that use OVS
# as OpenFlow switch and check port status
#ovs_use_veth = True
# LinuxBridge
#interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver
#interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and
# iproute2 package that supports namespaces).
@ -30,7 +30,7 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
# Indicates that this L3 agent should also handle routers that do not have
# an external network gateway configured. This option should be True only
# for a single agent in a Quantum deployment, and may be False for all agents
# for a single agent in a Neutron deployment, and may be False for all agents
# if all routers must have an external network gateway
# handle_internal_only_routers = True
@ -38,7 +38,7 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
# empty value for the linux bridge
# external_network_bridge = br-ex
# TCP Port used by Quantum metadata server
# TCP Port used by Neutron metadata server
# metadata_port = 9697
# Send this many gratuitous ARPs for HA setup. Set it below or equal to 0
@ -54,4 +54,4 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
# enable_metadata_proxy, which is true by default, can be set to False
# if the Nova metadata server is not available
# enable_metadata_proxy = True
# enable_metadata_proxy = True

View File

@ -2,22 +2,22 @@
# Show debugging output in log (sets DEBUG log level output)
# debug = true
# The LBaaS agent will resync its state with Quantum to recover from any
# The LBaaS agent will resync its state with Neutron to recover from any
# transient notification or rpc errors. The interval is number of
# seconds between attempts.
# periodic_interval = 10
# OVS based plugins(OVS, Ryu, NEC, NVP, BigSwitch/Floodlight)
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# OVS based plugins(Ryu, NEC, NVP, BigSwitch/Floodlight) that use OVS
# as OpenFlow switch and check port status
# ovs_use_veth = True
# LinuxBridge
# interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver
# interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
# The agent requires a driver to manage the loadbalancer. HAProxy is the
# opensource version.
#device_driver = quantum.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
#device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and
# iproute2 package that supports namespaces).

View File

@ -2,7 +2,7 @@
# Show debugging output in log (sets DEBUG log level output)
# debug = True
# The Quantum user information for accessing the Quantum API.
# The Neutron user information for accessing the Neutron API.
auth_url = http://localhost:35357/v2.0
auth_region = RegionOne
admin_tenant_name = %SERVICE_TENANT_NAME%
@ -18,8 +18,8 @@ admin_password = %SERVICE_PASSWORD%
# TCP Port used by Nova metadata server
# nova_metadata_port = 8775
# When proxying metadata requests, Quantum signs the Instance-ID header with a
# When proxying metadata requests, Neutron signs the Instance-ID header with a
# shared secret to prevent spoofing. You may select any string for a secret,
# but it must match here and in the configuration used by the Nova Metadata
# Server. NOTE: Nova uses a different key: quantum_metadata_proxy_shared_secret
# Server. NOTE: Nova uses a different key: neutron_metadata_proxy_shared_secret
# metadata_proxy_shared_secret =

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user
@ -14,7 +14,7 @@ dnsmasq: DnsmasqFilter, /sbin/dnsmasq, root
dnsmasq_usr: DnsmasqFilter, /usr/sbin/dnsmasq, root
# dhcp-agent uses kill as well, that's handled by the generic KillFilter
# it looks like these are the only signals needed, per
# quantum/agent/linux/dhcp.py
# neutron/agent/linux/dhcp.py
kill_dnsmasq: KillFilter, root, /sbin/dnsmasq, -9, -HUP
kill_dnsmasq_usr: KillFilter, root, /usr/sbin/dnsmasq, -9, -HUP
@ -24,10 +24,12 @@ ovs-vsctl: CommandFilter, ovs-vsctl, root
ivs-ctl: CommandFilter, ivs-ctl, root
# metadata proxy
metadata_proxy: CommandFilter, quantum-ns-metadata-proxy, root
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
metadata_proxy_quantum: CommandFilter, quantum-ns-metadata-proxy, root
# If installed from source (say, by devstack), the prefix will be
# /usr/local instead of /usr/bin.
metadata_proxy_local: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
metadata_proxy_local: CommandFilter, /usr/local/bin/neutron-ns-metadata-proxy, root
metadata_proxy_local_quantum: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
# RHEL invocation of the metadata proxy will report /usr/bin/python
kill_metadata: KillFilter, root, /usr/bin/python, -9
kill_metadata7: KillFilter, root, /usr/bin/python2.7, -9

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user
@ -8,14 +8,14 @@
[Filters]
# quantum/agent/linux/iptables_manager.py
# neutron/agent/linux/iptables_manager.py
# "iptables-save", ...
iptables-save: CommandFilter, iptables-save, root
iptables-restore: CommandFilter, iptables-restore, root
ip6tables-save: CommandFilter, ip6tables-save, root
ip6tables-restore: CommandFilter, ip6tables-restore, root
# quantum/agent/linux/iptables_manager.py
# neutron/agent/linux/iptables_manager.py
# "iptables", "-A", ...
iptables: CommandFilter, iptables, root
ip6tables: CommandFilter, ip6tables, root

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user
@ -16,10 +16,12 @@ sysctl: CommandFilter, sysctl, root
route: CommandFilter, route, root
# metadata proxy
metadata_proxy: CommandFilter, quantum-ns-metadata-proxy, root
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
metadata_proxy_quantum: CommandFilter, quantum-ns-metadata-proxy, root
# If installed from source (say, by devstack), the prefix will be
# /usr/local instead of /usr/bin.
metadata_proxy_local: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
metadata_proxy_local: CommandFilter, /usr/local/bin/neuton-ns-metadata-proxy, root
metadata_proxy_local_quantum: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
# RHEL invocation of the metadata proxy will report /usr/bin/python
kill_metadata: KillFilter, root, /usr/bin/python, -9
kill_metadata7: KillFilter, root, /usr/bin/python2.7, -9

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neuton-rootwrap command filters for nodes on which neuton is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neuton-rootwrap command filters for nodes on which neuton is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neuton-rootwrap command filters for nodes on which neuton is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user
@ -8,5 +8,5 @@
[Filters]
# nec_quantum_agent
# nec_neutron_agent
ovs-vsctl: CommandFilter, ovs-vsctl, root

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user

View File

@ -1,4 +1,4 @@
# quantum-rootwrap command filters for nodes on which quantum is
# neutron-rootwrap command filters for nodes on which neutron is
# expected to control network
#
# This file should be owned by (and only-writeable by) the root user
@ -12,10 +12,10 @@
# unclear whether both variants are necessary, but I'm transliterating
# from the old mechanism
# quantum/plugins/ryu/agent/ryu_quantum_agent.py:
# neutron/plugins/ryu/agent/ryu_neutron_agent.py:
# "ovs-vsctl", "--timeout=2", ...
ovs-vsctl: CommandFilter, ovs-vsctl, root
# quantum/plugins/ryu/agent/ryu_quantum_agent.py:
# neutron/plugins/ryu/agent/ryu_neutron_agent.py:
# "xe", "vif-param-get", ...
xe: CommandFilter, xe, root

1
etc/quantum Symbolic link
View File

@ -0,0 +1 @@
neutron

21
neutron/__init__.py Normal file
View File

@ -0,0 +1,21 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2011 OpenStack Foundation
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import gettext
gettext.install('neutron', unicode=1)

View File

@ -19,8 +19,8 @@ import os
from oslo.config import cfg
from quantum.common import config
from quantum.openstack.common import log as logging
from neutron.common import config
from neutron.openstack.common import log as logging
LOG = logging.getLogger(__name__)