Depends-On: https://review.opendev.org/#/c/658493/ Change-Id: Ia4f4b335295c0e6add79fe0db5dd31b4327fdb54changes/94/658494/2
@ -1,7 +0,0 @@ | |||
[run] | |||
branch = True | |||
source = neutron_lbaas | |||
omit = neutron_lbaas/tests* | |||
[report] | |||
ignore_errors = True |
@ -1,35 +0,0 @@ | |||
AUTHORS | |||
build/* | |||
build-stamp | |||
ChangeLog | |||
cover/ | |||
covhtml/ | |||
dist/ | |||
doc/build | |||
etc/*.sample | |||
*.DS_Store | |||
*.pyc | |||
neutron.egg-info/ | |||
*.egg-info/ | |||
neutron/vcsversion.py | |||
neutron/versioninfo | |||
pbr*.egg/ | |||
run_tests.err.log | |||
run_tests.log | |||
setuptools*.egg/ | |||
subunit.log | |||
tempest.log | |||
.testrepository | |||
*.mo | |||
*.sw? | |||
*~ | |||
/.* | |||
!/.coveragerc | |||
!/.gitignore | |||
!/.gitreview | |||
!/.mailmap | |||
!/.pylintrc | |||
!/.testr.conf | |||
# Files created by releasenotes build | |||
releasenotes/build |
@ -1,11 +0,0 @@ | |||
# Format is: | |||
# <preferred e-mail> <other e-mail 1> | |||
# <preferred e-mail> <other e-mail 2> | |||
lawrancejing <lawrancejing@gmail.com> <liuqing@windawn.com> | |||
Jiajun Liu <jiajun@unitedstack.com> <iamljj@gmail.com> | |||
Zhongyue Luo <zhongyue.nah@intel.com> <lzyeval@gmail.com> | |||
Kun Huang <gareth@unitedstack.com> <academicgareth@gmail.com> | |||
Zhenguo Niu <zhenguo@unitedstack.com> <Niu.ZGlinux@gmail.com> | |||
Isaku Yamahata <isaku.yamahata@intel.com> <isaku.yamahata@gmail.com> | |||
Isaku Yamahata <isaku.yamahata@intel.com> <yamahata@private.email.ne.jp> | |||
Morgan Fainberg <morgan.fainberg@gmail.com> <m@metacloud.com> |
@ -1,93 +0,0 @@ | |||
# The format of this file isn't really documented; just use --generate-rcfile | |||
[MASTER] | |||
# Add <file or directory> to the black list. It should be a base name, not a | |||
# path. You may set this option multiple times. | |||
# | |||
ignore=.git,tests | |||
[MESSAGES CONTROL] | |||
# NOTE(gus): This is a long list. A number of these are important and | |||
# should be re-enabled once the offending code is fixed (or marked | |||
# with a local disable) | |||
disable= | |||
# "F" Fatal errors that prevent further processing | |||
import-error, | |||
# "E" Error for important programming issues (likely bugs) | |||
no-member, | |||
too-many-function-args, | |||
# "W" Warnings for stylistic problems or minor programming issues | |||
abstract-method, | |||
broad-except, | |||
expression-not-assigned, | |||
fixme, | |||
global-statement, | |||
no-init, | |||
protected-access, | |||
redefined-builtin, | |||
star-args, | |||
unused-argument, | |||
# "C" Coding convention violations | |||
bad-continuation, | |||
invalid-name, | |||
missing-docstring, | |||
# "R" Refactor recommendations | |||
abstract-class-little-used, | |||
abstract-class-not-used, | |||
duplicate-code, | |||
interface-not-implemented, | |||
no-self-use, | |||
too-few-public-methods, | |||
too-many-ancestors, | |||
too-many-arguments, | |||
too-many-branches, | |||
too-many-instance-attributes, | |||
too-many-lines, | |||
too-many-locals, | |||
too-many-public-methods, | |||
too-many-return-statements, | |||
too-many-statements | |||
[BASIC] | |||
# Variable names can be 1 to 31 characters long, with lowercase and underscores | |||
variable-rgx=[a-z_][a-z0-9_]{0,30}$ | |||
# Argument names can be 2 to 31 characters long, with lowercase and underscores | |||
argument-rgx=[a-z_][a-z0-9_]{1,30}$ | |||
# Method names should be at least 3 characters long | |||
# and be lowercased with underscores | |||
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$ | |||
# 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_-]+))$ | |||
# Don't require docstrings on tests. | |||
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$ | |||
[FORMAT] | |||
# Maximum number of characters on a single line. | |||
max-line-length=79 | |||
[VARIABLES] | |||
# List of additional names supposed to be defined in builtins. Remember that | |||
# you should avoid to define new builtins when possible. | |||
# _ is used by our localization | |||
additional-builtins=_ | |||
[CLASSES] | |||
# List of interface methods to ignore, separated by a comma. | |||
ignore-iface-methods= | |||
[IMPORTS] | |||
# Deprecated modules which should not be used, separated by a comma | |||
deprecated-modules= | |||
# should use oslo_serialization.jsonutils | |||
json | |||
[TYPECHECK] | |||
# List of module names for which member attributes should not be checked | |||
ignored-modules=six.moves,_MovedItems | |||
[REPORTS] | |||
# Tells whether to display a full report or only the messages | |||
reports=no |
@ -1,3 +0,0 @@ | |||
[DEFAULT] | |||
test_path=${OS_TEST_PATH:-./neutron_lbaas/tests/unit} | |||
top_dir=./ |
@ -1,8 +0,0 @@ | |||
.. warning:: | |||
Neutron-lbaas is now deprecated. Please see the FAQ: https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation | |||
New features will not be accepted on this project. | |||
Please see the Neutron CONTRIBUTING.rst file for how to contribute to | |||
neutron-lbaas: | |||
`Neutron CONTRIBUTING.rst <http://git.openstack.org/cgit/openstack/neutron/tree/CONTRIBUTING.rst>`_ |
@ -1,7 +0,0 @@ | |||
Neutron LBaaS Style Commandments | |||
================================ | |||
Please see the Neutron HACKING.rst file for style commandments for | |||
neutron-lbaas: | |||
`Neutron HACKING.rst <http://git.openstack.org/cgit/openstack/neutron/tree/HACKING.rst>`_ |
@ -1,176 +0,0 @@ | |||
Apache License | |||
Version 2.0, January 2004 | |||
http://www.apache.org/licenses/ | |||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | |||
1. Definitions. | |||
"License" shall mean the terms and conditions for use, reproduction, | |||
and distribution as defined by Sections 1 through 9 of this document. | |||
"Licensor" shall mean the copyright owner or entity authorized by | |||
the copyright owner that is granting the License. | |||
"Legal Entity" shall mean the union of the acting entity and all | |||
other entities that control, are controlled by, or are under common | |||
control with that entity. For the purposes of this definition, | |||
"control" means (i) the power, direct or indirect, to cause the | |||
direction or management of such entity, whether by contract or | |||
otherwise, or (ii) ownership of fifty percent (50%) or more of the | |||
outstanding shares, or (iii) beneficial ownership of such entity. | |||
"You" (or "Your") shall mean an individual or Legal Entity | |||
exercising permissions granted by this License. | |||
"Source" form shall mean the preferred form for making modifications, | |||
including but not limited to software source code, documentation | |||
source, and configuration files. | |||
"Object" form shall mean any form resulting from mechanical | |||
transformation or translation of a Source form, including but | |||
not limited to compiled object code, generated documentation, | |||
and conversions to other media types. | |||
"Work" shall mean the work of authorship, whether in Source or | |||
Object form, made available under the License, as indicated by a | |||
copyright notice that is included in or attached to the work | |||
(an example is provided in the Appendix below). | |||
"Derivative Works" shall mean any work, whether in Source or Object | |||
form, that is based on (or derived from) the Work and for which the | |||
editorial revisions, annotations, elaborations, or other modifications | |||
represent, as a whole, an original work of authorship. For the purposes | |||
of this License, Derivative Works shall not include works that remain | |||
separable from, or merely link (or bind by name) to the interfaces of, | |||
the Work and Derivative Works thereof. | |||
"Contribution" shall mean any work of authorship, including | |||
the original version of the Work and any modifications or additions | |||
to that Work or Derivative Works thereof, that is intentionally | |||
submitted to Licensor for inclusion in the Work by the copyright owner | |||
or by an individual or Legal Entity authorized to submit on behalf of | |||
the copyright owner. For the purposes of this definition, "submitted" | |||
means any form of electronic, verbal, or written communication sent | |||
to the Licensor or its representatives, including but not limited to | |||
communication on electronic mailing lists, source code control systems, | |||
and issue tracking systems that are managed by, or on behalf of, the | |||
Licensor for the purpose of discussing and improving the Work, but | |||
excluding communication that is conspicuously marked or otherwise | |||
designated in writing by the copyright owner as "Not a Contribution." | |||
"Contributor" shall mean Licensor and any individual or Legal Entity | |||
on behalf of whom a Contribution has been received by Licensor and | |||
subsequently incorporated within the Work. | |||
2. Grant of Copyright License. Subject to the terms and conditions of | |||
this License, each Contributor hereby grants to You a perpetual, | |||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |||
copyright license to reproduce, prepare Derivative Works of, | |||
publicly display, publicly perform, sublicense, and distribute the | |||
Work and such Derivative Works in Source or Object form. | |||
3. Grant of Patent License. Subject to the terms and conditions of | |||
this License, each Contributor hereby grants to You a perpetual, | |||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |||
(except as stated in this section) patent license to make, have made, | |||
use, offer to sell, sell, import, and otherwise transfer the Work, | |||
where such license applies only to those patent claims licensable | |||
by such Contributor that are necessarily infringed by their | |||
Contribution(s) alone or by combination of their Contribution(s) | |||
with the Work to which such Contribution(s) was submitted. If You | |||
institute patent litigation against any entity (including a | |||
cross-claim or counterclaim in a lawsuit) alleging that the Work | |||
or a Contribution incorporated within the Work constitutes direct | |||
or contributory patent infringement, then any patent licenses | |||
granted to You under this License for that Work shall terminate | |||
as of the date such litigation is filed. | |||
4. Redistribution. You may reproduce and distribute copies of the | |||
Work or Derivative Works thereof in any medium, with or without | |||
modifications, and in Source or Object form, provided that You | |||
meet the following conditions: | |||
(a) You must give any other recipients of the Work or | |||
Derivative Works a copy of this License; and | |||
(b) You must cause any modified files to carry prominent notices | |||
stating that You changed the files; and | |||
(c) You must retain, in the Source form of any Derivative Works | |||
that You distribute, all copyright, patent, trademark, and | |||
attribution notices from the Source form of the Work, | |||
excluding those notices that do not pertain to any part of | |||
the Derivative Works; and | |||
(d) If the Work includes a "NOTICE" text file as part of its | |||
distribution, then any Derivative Works that You distribute must | |||
include a readable copy of the attribution notices contained | |||
within such NOTICE file, excluding those notices that do not | |||
pertain to any part of the Derivative Works, in at least one | |||
of the following places: within a NOTICE text file distributed | |||
as part of the Derivative Works; within the Source form or | |||
documentation, if provided along with the Derivative Works; or, | |||
within a display generated by the Derivative Works, if and | |||
wherever such third-party notices normally appear. The contents | |||
of the NOTICE file are for informational purposes only and | |||
do not modify the License. You may add Your own attribution | |||
notices within Derivative Works that You distribute, alongside | |||
or as an addendum to the NOTICE text from the Work, provided | |||
that such additional attribution notices cannot be construed | |||
as modifying the License. | |||
You may add Your own copyright statement to Your modifications and | |||
may provide additional or different license terms and conditions | |||
for use, reproduction, or distribution of Your modifications, or | |||
for any such Derivative Works as a whole, provided Your use, | |||
reproduction, and distribution of the Work otherwise complies with | |||
the conditions stated in this License. | |||
5. Submission of Contributions. Unless You explicitly state otherwise, | |||
any Contribution intentionally submitted for inclusion in the Work | |||
by You to the Licensor shall be under the terms and conditions of | |||
this License, without any additional terms or conditions. | |||
Notwithstanding the above, nothing herein shall supersede or modify | |||
the terms of any separate license agreement you may have executed | |||
with Licensor regarding such Contributions. | |||
6. Trademarks. This License does not grant permission to use the trade | |||
names, trademarks, service marks, or product names of the Licensor, | |||
except as required for reasonable and customary use in describing the | |||
origin of the Work and reproducing the content of the NOTICE file. | |||
7. Disclaimer of Warranty. Unless required by applicable law or | |||
agreed to in writing, Licensor provides the Work (and each | |||
Contributor provides its Contributions) on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | |||
implied, including, without limitation, any warranties or conditions | |||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | |||
PARTICULAR PURPOSE. You are solely responsible for determining the | |||
appropriateness of using or redistributing the Work and assume any | |||
risks associated with Your exercise of permissions under this License. | |||
8. Limitation of Liability. In no event and under no legal theory, | |||
whether in tort (including negligence), contract, or otherwise, | |||
unless required by applicable law (such as deliberate and grossly | |||
negligent acts) or agreed to in writing, shall any Contributor be | |||
liable to You for damages, including any direct, indirect, special, | |||
incidental, or consequential damages of any character arising as a | |||
result of this License or out of the use or inability to use the | |||
Work (including but not limited to damages for loss of goodwill, | |||
work stoppage, computer failure or malfunction, or any and all | |||
other commercial damages or losses), even if such Contributor | |||
has been advised of the possibility of such damages. | |||
9. Accepting Warranty or Additional Liability. While redistributing | |||
the Work or Derivative Works thereof, You may choose to offer, | |||
and charge a fee for, acceptance of support, warranty, indemnity, | |||
or other liability obligations and/or rights consistent with this | |||
License. However, in accepting such obligations, You may act only | |||
on Your own behalf and on Your sole responsibility, not on behalf | |||
of any other Contributor, and only if You agree to indemnify, | |||
defend, and hold each Contributor harmless for any liability | |||
incurred by, or claims asserted against, such Contributor by reason | |||
of your accepting any such warranty or additional liability. | |||
@ -0,0 +1,15 @@ | |||
This project is no longer maintained. | |||
The contents of this repository are still available in the Git | |||
source code management system. To see the contents of this | |||
repository before it reached its end of life, please check out the | |||
previous commit with "git checkout HEAD^1". | |||
The new official OpenStack LBaaS project is Octavia. See the following | |||
resources for more details: | |||
https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation | |||
https://governance.openstack.org/tc/reference/projects/octavia.html | |||
For any further questions, please email | |||
openstack-discuss@lists.openstack.org or join #openstack-dev on | |||
Freenode. |
@ -1,33 +0,0 @@ | |||
======================== | |||
Team and repository tags | |||
======================== | |||
.. image:: https://governance.openstack.org/tc/badges/neutron-lbaas.svg | |||
:target: https://governance.openstack.org/tc/reference/tags/index.html | |||
.. Change things from this point on | |||
.. warning:: | |||
Neutron-lbaas is now deprecated. Please see the FAQ: https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation | |||
Welcome! | |||
======== | |||
This package contains the code for the Neutron Load Balancer as a | |||
Service (LBaaS) service. This includes third-party drivers. This package | |||
requires Neutron to run. | |||
External Resources: | |||
=================== | |||
The homepage for Octavia LBaaS is: https://launchpad.net/octavia. Use this | |||
site for asking for help, and filing bugs. | |||
Code is available on git.openstack.org at: | |||
<http://git.openstack.org/cgit/openstack/neutron-lbaas>. | |||
Please refer to Neutron documentation for more information: | |||
`Neutron README.rst <http://git.openstack.org/cgit/openstack/neutron/tree/README.rst>`_ | |||
Release notes for the project can be found at: | |||
<https://docs.openstack.org/releasenotes/neutron-lbaas/index.html>. |
@ -1,8 +0,0 @@ | |||
Testing Neutron LBaaS | |||
===================== | |||
Please see the TESTING.rst file for the Neutron project itself. This will have | |||
the latest up to date instructions for how to test Neutron, and will | |||
be applicable to neutron-lbaas as well: | |||
`Neutron TESTING.rst <http://git.openstack.org/cgit/openstack/neutron/tree/TESTING.rst>`_ |
@ -1,2 +0,0 @@ | |||
[python: **.py] | |||
@ -1,88 +0,0 @@ | |||
This directory contains the neutron-lbaas devstack plugin. To | |||
configure the neutron load balancer, in the [[local|localrc]] section, | |||
you will need to enable the neutron-lbaas devstack plugin and enable | |||
the LBaaS service by editing the [[local|localrc]] section of your | |||
local.conf file. | |||
Octavia is the LBaaS V2 reference service provider and is used in the | |||
examples below. Enabling another service provider, such as the agent | |||
Haproxy driver, can be done by enabling its driver plugin, if | |||
applicable, and setting the appropriate service provider value for | |||
NEUTRON_LBAAS_SERVICE_PROVIDERV2, like the following: | |||
NEUTRON_LBAAS_SERVICE_PROVIDERV2="LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default" | |||
In addition, you can enable multiple | |||
service providers by enabling the applicable driver plugins and | |||
space-delimiting the service provider values in | |||
NEUTRON_LBAAS_SERVICE_PROVIDERV2. | |||
1) Enable the plugins | |||
To enable the plugin, add a line of the form: | |||
enable_plugin neutron-lbaas <neutron-lbaas GITURL> [GITREF] | |||
enable_plugin octavia <octavia GITURL> [GITREF] | |||
where | |||
<neutron-lbaas GITURL> is the URL of a neutron-lbaas repository | |||
<octavia GITURL> is the URL of a octavia repository | |||
[GITREF] is an optional git ref (branch/ref/tag). The default is | |||
master. | |||
For example | |||
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas stable/liberty | |||
enable_plugin octavia https://git.openstack.org/openstack/octavia stable/liberty | |||
"q-lbaasv2" is the default service enabled with neutron-lbaas plugin. | |||
2) Enable the LBaaS services | |||
To enable the LBaaS services, add lines in the form: | |||
ENABLED_SERVICES+=<LBAAS-FLAG> | |||
ENABLED_SERVICES+=<OCTAVIA-FLAGS> | |||
where | |||
<LBAAS-FLAG> is "q-lbaasv2" for LBaaS Version 2. | |||
<OCTAVIA-FLAGS> are "octavia" the Octavia driver, | |||
"o-cw" the Octavia Controller Worker, | |||
"o-hk" the Octavia housekeeping manager, | |||
"o-hm" the Octavia Health Manager, | |||
and "o-api" the Octavia API service. | |||
to the [[local|localrc]] section of local.conf | |||
For example | |||
# For LBaaS V2 | |||
ENABLED_SERVICES+=,q-lbaasv2 | |||
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api | |||
3) Enable the dashboard of LBaaS V2 | |||
If using LBaaS V2 and you want to add horizon support, add lines in the form: | |||
enable_plugin neutron-lbaas-dashboard <neutron-lbaas-dashboard GITURL> [GITREF] | |||
where | |||
<neutron-lbaas-dashboard GITURL> is the URL of a neutron-lbaas-dashboard repository | |||
[GITREF] is an optional git ref (branch/ref/tag). The default is | |||
master. | |||
For example | |||
enable_plugin neutron-lbaas-dashboard https://git.openstack.org/openstack/neutron-lbaas-dashboard stable/liberty | |||
Once you enable the neutron-lbaas-dashboard plugin in your local.conf, ensure ``horizon`` and | |||
``q-lbaasv2`` services are enabled. If both of them are enabled, | |||
neutron-lbaas-dashboard will be enabled automatically | |||
For more information, see the "Plugin Interface" section of | |||
https://docs.openstack.org/devstack/latest/plugins.html |
@ -1,36 +0,0 @@ | |||
global | |||
daemon | |||
log /dev/log local0 | |||
log /dev/log local1 notice | |||
defaults | |||
log global | |||
retries 3 | |||
option redispatch | |||
timeout connect 5000 | |||
timeout client 50000 | |||
timeout server 50000 | |||
frontend neutron-frontend-api | |||
option httplog | |||
bind 0.0.0.0:NEUTRON_ALTERNATE_API_PORT | |||
mode http | |||
acl url_lbaas path_beg /v2.0/lbaas | |||
use_backend octavia-backend-api if url_lbaas | |||
default_backend neutron-backend-api | |||
backend octavia-backend-api | |||
mode http | |||
balance roundrobin | |||
option forwardfor | |||
reqrep ^([^\ :]*)\ /v2.0/lbaas/(.*) \1\ /load-balancer/v2.0/\2 | |||
server octavia-1 127.0.0.1:80 weight 1 | |||
backend neutron-backend-api | |||
mode http | |||
balance roundrobin | |||
option forwardfor | |||
# the devstack plugin will add an entry here looking like: | |||
# server neutron-1 <IP>:<PORT> weight 1 |
@ -1 +0,0 @@ | |||
software-properties-common |
@ -1,180 +0,0 @@ | |||
# function definitions for neutron-lbaas devstack plugin | |||
function neutron_lbaas_install { | |||
setup_develop $NEUTRON_LBAAS_DIR | |||
neutron_agent_lbaas_install_agent_packages | |||
} | |||
function neutron_agent_lbaas_install_agent_packages { | |||
if is_ubuntu; then | |||
if [[ ${OFFLINE} == False && ${os_CODENAME} =~ (trusty|precise) ]]; then | |||
# Check for specific version of Ubuntu that requires backports repository for haproxy 1.5.14 or greater | |||
BACKPORT="deb http://archive.ubuntu.com/ubuntu ${os_CODENAME}-backports main restricted universe multiverse" | |||
BACKPORT_EXISTS=$(grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep "${BACKPORT}") || true | |||
if [[ -z "${BACKPORT_EXISTS}" ]]; then | |||
sudo add-apt-repository "${BACKPORT}" -y | |||
fi | |||
sudo apt-get update | |||
sudo apt-get install haproxy -t ${os_CODENAME}-backports | |||
elif [[ ${OFFLINE} == False ]]; then | |||
install_package haproxy | |||
fi | |||
fi | |||
if is_fedora || is_suse; then | |||
install_package haproxy | |||
fi | |||
} | |||
function neutron_lbaas_configure_common { | |||
cp $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf.sample $NEUTRON_LBAAS_CONF | |||
cp $NEUTRON_LBAAS_DIR/etc/services_lbaas.conf.sample $SERVICES_LBAAS_CONF | |||
inicomment $NEUTRON_LBAAS_CONF service_providers service_provider | |||
iniadd $NEUTRON_LBAAS_CONF service_providers service_provider $NEUTRON_LBAAS_SERVICE_PROVIDERV2 | |||
neutron_server_config_add $NEUTRON_LBAAS_CONF | |||
neutron_service_plugin_class_add $LBAASV2_PLUGIN | |||
# Ensure config is set up properly for authentication neutron-lbaas | |||
iniset $NEUTRON_LBAAS_CONF service_auth auth_url $OS_AUTH_URL$AUTH_ENDPOINT | |||
iniset $NEUTRON_LBAAS_CONF service_auth admin_tenant_name $ADMIN_TENANT_NAME | |||
iniset $NEUTRON_LBAAS_CONF service_auth admin_user $ADMIN_USER | |||
iniset $NEUTRON_LBAAS_CONF service_auth admin_password $ADMIN_PASSWORD | |||
iniset $NEUTRON_LBAAS_CONF service_auth auth_version $AUTH_VERSION | |||
# Ensure config is set up properly for authentication neutron | |||
iniset $NEUTRON_CONF service_auth auth_url $OS_AUTH_URL$AUTH_ENDPOINT | |||
iniset $NEUTRON_CONF service_auth admin_tenant_name $ADMIN_TENANT_NAME | |||
iniset $NEUTRON_CONF service_auth admin_user $ADMIN_USER | |||
iniset $NEUTRON_CONF service_auth admin_password $ADMIN_PASSWORD | |||
iniset $NEUTRON_CONF service_auth auth_version $AUTH_VERSION | |||
neutron_deploy_rootwrap_filters $NEUTRON_LBAAS_DIR | |||
# If user enable the Neutron service_name like "q-*", | |||
# the "Q_PLUGIN_CONF_FILE" would be the ml2 config path | |||
# But if user enable the Neutron service name like "neutron-*", | |||
# the same value will be stored into "NEUTRON_CORE_PLUGIN_CONF" | |||
COMPATIBLE_NEUTRON_CORE_PLUGIN_CONF=`[ -n "$Q_PLUGIN_CONF_FILE" ] && echo $Q_PLUGIN_CONF_FILE || echo $NEUTRON_CORE_PLUGIN_CONF` | |||
$NEUTRON_BIN_DIR/neutron-db-manage --subproject neutron-lbaas --config-file $NEUTRON_CONF --config-file /$COMPATIBLE_NEUTRON_CORE_PLUGIN_CONF upgrade head | |||
} | |||
function neutron_lbaas_configure_agent { | |||
if [ -z "$1" ]; then | |||
mkdir -p $LBAAS_AGENT_CONF_PATH | |||
fi | |||
conf=${1:-$LBAAS_AGENT_CONF_FILENAME} | |||
cp $NEUTRON_LBAAS_DIR/etc/lbaas_agent.ini.sample $conf | |||
if is_neutron_legacy_enabled; then | |||
# ovs_use_veth needs to be set before the plugin configuration | |||
# occurs to allow plugins to override the setting. | |||
iniset $conf DEFAULT ovs_use_veth $Q_OVS_USE_VETH | |||
fi | |||
neutron_plugin_setup_interface_driver $conf | |||
if is_fedora; then | |||
iniset $conf DEFAULT user_group "nobody" | |||
iniset $conf haproxy user_group "nobody" | |||
fi | |||
} | |||
function configure_neutron_api_haproxy { | |||
echo "Configuring neutron API haproxy for l7" | |||
install_package haproxy | |||
cp ${NEUTRON_LBAAS_DIR}/devstack/etc/neutron/haproxy.cfg ${NEUTRON_CONF_DIR}/lbaas-haproxy.cfg | |||
sed -i.bak "s/NEUTRON_ALTERNATE_API_PORT/${NEUTRON_ALTERNATE_API_PORT}/" ${NEUTRON_CONF_DIR}/lbaas-haproxy.cfg | |||
NEUTRON_API_PORT=9696 | |||
echo " server neutron-1 ${HOST_IP}:${NEUTRON_API_PORT} weight 1" >> ${NEUTRON_CONF_DIR}/lbaas-haproxy.cfg | |||
/usr/sbin/haproxy -c -f ${NEUTRON_CONF_DIR}/lbaas-haproxy.cfg | |||
run_process $NEUTRON_API_HAPROXY "/usr/sbin/haproxy -db -V -f ${NEUTRON_CONF_DIR}/lbaas-haproxy.cfg" | |||
# Fix the endpoint | |||
NEUTRON_ENDPOINT_ID=$(openstack endpoint list --service neutron -f value -c ID) | |||
openstack endpoint set --url 'http://127.0.0.1:9695/' $NEUTRON_ENDPOINT_ID | |||
} | |||
function neutron_lbaas_generate_config_files { | |||
# Uses oslo config generator to generate LBaaS sample configuration files | |||
(cd $NEUTRON_LBAAS_DIR && exec ./tools/generate_config_file_samples.sh) | |||
} | |||
function neutron_lbaas_start { | |||
local is_run_process=True | |||
if is_neutron_legacy_enabled; then | |||
LBAAS_VERSION="q-lbaasv2" | |||
else | |||
LBAAS_VERSION="neutron-lbaasv2" | |||
fi | |||
AGENT_LBAAS_BINARY=${AGENT_LBAASV2_BINARY} | |||
# Octavia doesn't need the LBaaS V2 service running. If Octavia is the | |||
# only provider then don't run the process. | |||
if [[ "$NEUTRON_LBAAS_SERVICE_PROVIDERV2" == "$NEUTRON_LBAAS_SERVICE_PROVIDERV2_OCTAVIA" ]]; then | |||
is_run_process=False | |||
fi | |||
if [[ "$is_run_process" == "True" ]] ; then | |||
run_process $LBAAS_VERSION "$AGENT_LBAAS_BINARY --config-file $NEUTRON_CONF --config-file $NEUTRON_LBAAS_CONF --config-file=$LBAAS_AGENT_CONF_FILENAME" | |||
fi | |||
} | |||
function neutron_lbaas_stop { | |||
pids=$(ps aux | awk '/haproxy/ { print $2 }') | |||
[ ! -z "$pids" ] && sudo kill $pids | |||
} | |||
function neutron_lbaas_cleanup { | |||
# delete all namespaces created by neutron-lbaas | |||
for ns in $(sudo ip netns list | grep -o -E '(qlbaas|nlbaas)-[0-9a-f-]*'); do | |||
sudo ip netns delete ${ns} | |||
done | |||
} | |||
# check for service enabled | |||
if is_service_enabled $LBAAS_ANY; then | |||
if ! is_service_enabled q-svc neutron-api; then | |||
die "The neutron-api/q-svc service must be enabled to use $LBAAS_ANY" | |||
fi | |||
if [[ "$1" == "stack" && "$2" == "install" ]]; then | |||
# Perform installation of service source | |||
echo_summary "Installing neutron-lbaas" | |||
neutron_lbaas_install | |||
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then | |||
# Configure after the other layer 1 and 2 services have been configured | |||
echo_summary "Configuring neutron-lbaas" | |||
if [[ "$PROXY_OCTAVIA" == "True" ]]; then | |||
configure_neutron_api_haproxy | |||
else | |||
neutron_lbaas_generate_config_files | |||
neutron_lbaas_configure_common | |||
neutron_lbaas_configure_agent | |||
fi | |||
elif [[ "$1" == "stack" && "$2" == "extra" && "$PROXY_OCTAVIA" != "True" ]]; then | |||
# Initialize and start the LBaaS service | |||
echo_summary "Initializing neutron-lbaas" | |||
neutron_lbaas_start | |||
fi | |||
fi | |||
if [[ "$1" == "unstack" ]]; then | |||
# Shut down LBaaS services | |||
neutron_lbaas_stop | |||
fi | |||
if [[ "$1" == "clean" ]]; then | |||
# Remove state and transient data | |||
# Remember clean.sh first calls unstack.sh | |||
neutron_lbaas_cleanup | |||
fi |
@ -1,37 +0,0 @@ | |||
This file describes how to use Vagrant (http://www.vagrantup.com) to | |||
create a devstack virtual machine that contains two nova instances | |||
running a simple web server and a working Neutron LBaaS Version 2 load | |||
balancer. | |||
1) Install vagrant on your host machine. Vagrant is available for | |||
Windows, Mac OS, and most Linux distributions. Download and install | |||
the package appropriate for your system. On Ubuntu, simply type: | |||
sudo apt-get install vagrant | |||
2) copy 'Vagrantfile' from this directory to any appropriate directory | |||
and run 'vagrant up': | |||
mkdir $HOME/lbaas-vagrant # or any other appropriate directory | |||
cp Vagrantfile $HOME/lbaas-vagrant | |||
cd $HOME/lbaas-vagrant | |||
vagrant up | |||
3) Wait for the vagrant VM to boot and install, typically 20-30 minutes | |||
4) SSH into the vagrant box | |||
vagrant ssh | |||
5) Determine the loadbalancer IP: | |||
source openrc admin admin | |||
neutron lbaas-loadbalancer-show lb1 | grep vip_address | |||
6) make HTTP requests to test your load balancer: | |||
curl <LB_IP> | |||
where <LB_IP> is the VIP address for lb1. The subsequent invocations of | |||
"curl <LB_IP>" should demonstrate that the load balancer is alternating | |||
between two member nodes. |
@ -1,31 +0,0 @@ | |||
This directory contains sample files for configuring neutron LBaaS using | |||
devstack. By copying these files into the main devstack directory (not the | |||
neutron-lbaas/devstack directory directly above this one), and running | |||
stack.sh, you will create a fully functioning OpenStack installation running | |||
a neutron-lbaas load balancer. | |||
1) Copy the files into place: | |||
cp local.conf local.sh webserver.sh <DEVSTACK_DIR> | |||
where | |||
<DEVSTCK_DIR> is the main devstack directory. Note: this is not | |||
neutron-lbaas/devstack. | |||
2) Build your devstack: | |||
cd <DEVSTACK_DIR> | |||
./stack.sh | |||
3) Test your loadbalancer: | |||
a) Determine the loadbalancer IP: | |||
source openrc admin admin | |||
neutron lbaas-loadbalancer-show lb1 | grep vip_address | |||
curl <LB_IP> | |||
where <LB_IP> is the VIP address for lb1. The subsequent invocations of | |||
"curl <LB_IP>" should demonstrate that the load balancer is alternating | |||
between two member nodes. |
@ -1,84 +0,0 @@ | |||
# -*- mode: ruby -*- | |||
# vi: set ft=ruby : | |||
# All Vagrant configuration is done below. The "2" in Vagrant.configure | |||
# configures the configuration version (we support older styles for | |||
# backwards compatibility). Please don't change it unless you know what | |||
# you're doing. | |||
Vagrant.configure(2) do |config| | |||
# The most common configuration options are documented and commented below. | |||
# For a complete reference, please see the online documentation at | |||
# https://docs.vagrantup.com. | |||
# Every Vagrant development environment requires a box. You can search for | |||
# boxes at https://atlas.hashicorp.com/search. | |||
config.vm.box = "ubuntu/trusty64" | |||
# Disable automatic box update checking. If you disable this, then | |||
# boxes will only be checked for updates when the user runs | |||
# `vagrant box outdated`. This is not recommended. | |||
# config.vm.box_check_update = false | |||
# Create a forwarded port mapping which allows access to a specific port | |||
# within the machine from a port on the host machine. In the example below, | |||
# accessing "localhost:8080" will access port 80 on the guest machine. | |||
#config.vm.network "forwarded_port", guest: 80, host: 8080 | |||
# Create a private network, which allows host-only access to the machine | |||
# using a specific IP. | |||
# config.vm.network "private_network", ip: "192.168.33.10" | |||
# Create a public network, which generally matched to bridged network. | |||
# Bridged networks make the machine appear as another physical device on | |||
# your network. | |||
# config.vm.network "public_network" | |||
# Share an additional folder to the guest VM. The first argument is | |||
# the path on the host to the actual folder. The second argument is | |||
# the path on the guest to mount the folder. And the optional third | |||
# argument is a set of non-required options. | |||
# config.vm.synced_folder "../data", "/vagrant_data" | |||
# Provider-specific configuration so you can fine-tune various | |||
# backing providers for Vagrant. These expose provider-specific options. | |||
# Example for VirtualBox: | |||
# | |||
config.vm.provider "virtualbox" do |vb| | |||
# Display the VirtualBox GUI when booting the machine | |||
vb.gui = true | |||
# Customize the amount of memory on the VM: | |||
vb.memory = "8192" | |||
end | |||
# | |||
# View the documentation for the provider you are using for more | |||
# information on available options | |||
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies | |||
# such as FTP and Heroku are also available. See the documentation at | |||
# https://docs.vagrantup.com/v2/push/atlas.html for more information. | |||
# config.push.define "atlas" do |push| | |||
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" | |||
# end | |||
# Enable provisioning with a shell script. Additional provisioners such as | |||
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the | |||
# documentation for more information about their specific syntax and use. | |||
config.vm.provision "shell", privileged: false, inline: <<-SHELL | |||
#!/usr/bin/env bash | |||
sudo apt-get update | |||
sudo apt-get -y upgrade | |||
sudo apt-get -y install git | |||
git clone https://git.openstack.org/openstack-dev/devstack | |||
git clone https://git.openstack.org/openstack/neutron-lbaas | |||
git clone https://github.com/openstack/octavia | |||
cd neutron-lbaas/devstack/samples | |||
cp local.* webserver.sh ~/devstack | |||
cd ~/devstack | |||
./stack.sh | |||
SHELL | |||
end |
@ -1,86 +0,0 @@ | |||
# Sample ``local.conf`` that builds a devstack with neutron LBaaS Version 2 | |||
# NOTE: Copy this file to the root DevStack directory for it to work properly. | |||
# ``local.conf`` is a user-maintained settings file that is sourced from ``stackrc``. | |||
# This gives it the ability to override any variables set in ``stackrc``. | |||
# Also, most of the settings in ``stack.sh`` are written to only be set if no | |||
# value has already been set; this lets ``local.conf`` effectively override the | |||
# default values. | |||
# The ``localrc`` section replaces the old ``localrc`` configuration file. | |||
# Note that if ``localrc`` is present it will be used in favor of this section. | |||
[[local|localrc]] | |||
# The name of the RECLONE environment variable is a bit misleading. It doesn't actually | |||
# reclone repositories, rather it uses git fetch to make sure the repos are current. | |||
RECLONE=True | |||
# Load Barbican (optional) | |||
# enable_plugin barbican https://review.openstack.org/openstack/barbican | |||
# Load the external LBaaS plugin. | |||
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas | |||
enable_plugin octavia https://github.com/openstack/octavia | |||
LIBS_FROM_GIT+=python-neutronclient | |||
DATABASE_PASSWORD=password | |||
ADMIN_PASSWORD=password | |||
SERVICE_PASSWORD=password | |||
SERVICE_TOKEN=password | |||
RABBIT_PASSWORD=password | |||
# Enable Logging | |||
LOGFILE=$DEST/logs/stack.sh.log | |||
VERBOSE=True | |||
LOG_COLOR=True | |||
# Pre-requisite | |||
ENABLED_SERVICES=rabbit,mysql,key | |||
# Horizon | |||
ENABLED_SERVICES+=,horizon | |||
# Nova | |||
ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch | |||
IMAGE_URLS+=",http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img" | |||
ENABLED_SERVICES+=,g-api,g-reg | |||
# Neutron | |||
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta | |||
# Enable LBaaS V2 | |||
ENABLED_SERVICES+=,q-lbaasv2 | |||
# Cinder | |||
ENABLED_SERVICES+=,c-api,c-vol,c-sch | |||
# Octavia | |||
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api | |||
# enable DVR | |||
Q_PLUGIN=ml2 | |||
Q_ML2_TENANT_NETWORK_TYPE=vxlan | |||
Q_DVR_MODE=dvr_snat | |||
LOGFILE=$DEST/logs/stack.sh.log | |||
# Old log files are automatically removed after 7 days to keep things neat. Change | |||
# the number of days by setting ``LOGDAYS``. | |||
LOGDAYS=2 | |||
# Swift | |||
# ----- | |||
# Swift is now used as the back-end for the S3-like object store. If Nova's | |||
# objectstore (``n-obj`` in ``ENABLED_SERVICES``) is enabled, it will NOT | |||
# run if Swift is enabled. Setting the hash value is required and you will | |||
# be prompted for it if Swift is enabled so just set it to something already: | |||
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5 | |||
# For development purposes the default of 3 replicas is usually not required. | |||
# Set this to 1 to save some resources: | |||
SWIFT_REPLICAS=1 | |||
# The data for Swift is stored by default in (``$DEST/data/swift``), | |||
# or (``$DATA_DIR/swift``) if ``DATA_DIR`` has been set, and can be | |||
# moved by setting ``SWIFT_DATA_DIR``. The directory will be created | |||
# if it does not exist. | |||
SWIFT_DATA_DIR=$DEST/data |
@ -1,101 +0,0 @@ | |||
#!/usr/bin/env bash | |||
# Sample ``local.sh`` that configures two simple webserver instances and sets | |||
# up a Neutron LBaaS Version 2 loadbalancer. | |||
# Keep track of the DevStack directory | |||
TOP_DIR=$(cd $(dirname "$0") && pwd) | |||
BOOT_DELAY=60 | |||
# Import common functions | |||
source ${TOP_DIR}/functions | |||
# Use openrc + stackrc for settings | |||
source ${TOP_DIR}/stackrc | |||
# Destination path for installation ``DEST`` | |||
DEST=${DEST:-/opt/stack} | |||
# Additional Variables | |||
IMAGE_NAME="cirros" | |||
SUBNET_NAME="private-subnet" | |||
if is_service_enabled nova; then | |||
# Get OpenStack demo user auth | |||
source ${TOP_DIR}/openrc demo demo | |||
# Create an SSH key to use for the instances | |||
HOST=$(echo $HOSTNAME | cut -d"." -f1) | |||
DEVSTACK_LBAAS_SSH_KEY_NAME=${HOST}_DEVSTACK_LBAAS_SSH_KEY_RSA | |||
DEVSTACK_LBAAS_SSH_KEY_DIR=${TOP_DIR} | |||
DEVSTACK_LBAAS_SSH_KEY=${DEVSTACK_LBAAS_SSH_KEY_DIR}/${DEVSTACK_LBAAS_SSH_KEY_NAME} | |||
rm -f ${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY} | |||
ssh-keygen -b 2048 -t rsa -f ${DEVSTACK_LBAAS_SSH_KEY} -N "" | |||
nova keypair-add --pub-key=${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY_NAME} | |||
# Add tcp/22,80 and icmp to default security group | |||
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 | |||
nova secgroup-add-rule default tcp 80 80 0.0.0.0/0 | |||
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 | |||
# Get Image id | |||
IMAGE_ID=$(glance image-list | awk -v image=${IMAGE_NAME} '$0 ~ image {print $2}' | head -1) | |||
# Get Network id | |||
NET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/network_id/ {print $4}') | |||
# Boot some instances | |||
NOVA_BOOT_ARGS="--key-name ${DEVSTACK_LBAAS_SSH_KEY_NAME} --image ${IMAGE_ID} --flavor 1 --nic net-id=$NET_ID" | |||
nova boot ${NOVA_BOOT_ARGS} node1 | |||
nova boot ${NOVA_BOOT_ARGS} node2 | |||
echo "Waiting ${BOOT_DELAY} seconds for instances to boot" | |||
sleep ${BOOT_DELAY} | |||
# Get Instances IP Addresses | |||
SUBNET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/ id / {print $4}') | |||
IP1=$(neutron port-list --device_owner compute:None -c fixed_ips | grep ${SUBNET_ID} | cut -d'"' -f8 | sed -n 1p) | |||
IP2=$(neutron port-list --device_owner compute:None -c fixed_ips | grep ${SUBNET_ID} | cut -d'"' -f8 | sed -n 2p) | |||
ssh-keygen -R ${IP1} | |||
ssh-keygen -R ${IP2} | |||
# Run a simple web server on the instances | |||
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${IP1}:webserver.sh | |||
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${IP2}:webserver.sh | |||
screen_process node1 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${IP1} ./webserver.sh" | |||
screen_process node2 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${IP2} ./webserver.sh" | |||
fi | |||
function wait_for_lb_active { | |||
echo "Waiting for $1 to become ACTIVE..." | |||
status=$(neutron lbaas-loadbalancer-show $1 | awk '/provisioning_status/ {print $4}') | |||
while [ "$status" != "ACTIVE" ] | |||
do | |||
sleep 2 | |||
status=$(neutron lbaas-loadbalancer-show $1 | awk '/provisioning_status/ {print $4}') | |||
if [ $status == "ERROR" ] | |||
then | |||
echo "$1 ERRORED. Exiting." | |||
exit 1; | |||
fi | |||
done | |||
} | |||
if is_service_enabled q-lbaasv2; then | |||
neutron lbaas-loadbalancer-create --name lb1 ${SUBNET_NAME} | |||
wait_for_lb_active "lb1" | |||
neutron lbaas-listener-create --loadbalancer lb1 --protocol HTTP --protocol-port 80 --name listener1 | |||
sleep 10 | |||
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1 | |||
sleep 10 | |||
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP1} --protocol-port 80 pool1 | |||
sleep 10 | |||
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP2} --protocol-port 80 pool1 | |||
fi |
@ -1,9 +0,0 @@ | |||
#!/bin/sh | |||
MYIP=$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F: '{print $2}'| awk '{print $1}'); | |||
OUTPUT_STR="Welcome to $MYIP\r" | |||
OUTPUT_LEN=${#OUTPUT_STR} | |||
while true; do | |||
echo -e "HTTP/1.0 200 OK\r\nContent-Length: ${OUTPUT_LEN}\r\n\r\n${OUTPUT_STR}" | sudo nc -l -p 80 | |||
done |
@ -1,40 +0,0 @@ | |||
# settings for LBaaS devstack pluginlib/neutron_plugins/services/loadbalancer | |||
AGENT_LBAASV2_BINARY="$NEUTRON_BIN_DIR/neutron-lbaasv2-agent" | |||
LBAAS_ANY="q-lbaasv2 neutron-lbaasv2" | |||
# turn on lbaasv2 service by default | |||
if is_neutron_legacy_enabled; then | |||
enable_service q-lbaasv2 | |||
else | |||
enable_service neutron-lbaasv2 | |||
fi | |||
BARBICAN="barbican-svc" | |||
ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-"admin"} | |||
ADMIN_USER=${ADMIN_USER:-"admin"} | |||
ADMIN_PASSWORD=${ADMIN_PASSWORD:-"password"} | |||
AUTH_VERSION=${AUTH_VERSION:-"3"} | |||
AUTH_ENDPOINT=${AUTH_ENDPOINT:-"/v3"} | |||
LBAAS_AGENT_CONF_PATH=/etc/neutron/services/loadbalancer/haproxy | |||
LBAAS_AGENT_CONF_FILENAME=$LBAAS_AGENT_CONF_PATH/lbaas_agent.ini | |||
LBAASV2_PLUGIN=${LBAASV2_PLUGIN:-"lbaasv2"} | |||
NEUTRON_LBAAS_DIR=$DEST/neutron-lbaas | |||
NEUTRON_LBAAS_CONF_FILE=neutron_lbaas.conf | |||
SERVICES_LBAAS_CONF_FILE=services_lbaas.conf | |||
NEUTRON_LBAAS_CONF=$NEUTRON_CONF_DIR/$NEUTRON_LBAAS_CONF_FILE | |||
SERVICES_LBAAS_CONF=$NEUTRON_CONF_DIR/$SERVICES_LBAAS_CONF_FILE | |||
NEUTRON_LBAAS_SERVICE_PROVIDERV2_OCTAVIA=${NEUTRON_LBAAS_SERVICE_PROVIDERV2_OCTAVIA:-"LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver:default"} | |||
NEUTRON_LBAAS_SERVICE_PROVIDERV2=${NEUTRON_LBAAS_SERVICE_PROVIDERV2:-${NEUTRON_LBAAS_SERVICE_PROVIDERV2_OCTAVIA}} | |||
NEUTRON_ALTERNATE_API_PORT=9695 | |||
NEUTRON_API_HAPROXY="q-api-ha" |
@ -1,3 +0,0 @@ | |||
sphinx>=1.6.2 # BSD | |||
openstackdocstheme>=1.17.0 # Apache-2.0 | |||
reno>=2.5.0 # Apache-2.0 |
@ -1,242 +0,0 @@ | |||
# -*- coding: utf-8 -*- | |||
# Copyright (c) 2010 OpenStack Foundation. | |||
# | |||
# 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. | |||
# | |||
# Keystone documentation build configuration file, created by | |||
# sphinx-quickstart on Tue May 18 13:50:15 2010. | |||
# | |||
# This file is execfile()'d with the current directory set to it's containing | |||
# dir. | |||
# | |||
# Note that not all possible configuration values are present in this | |||
# autogenerated file. | |||
# | |||
# All configuration values have a default; values that are commented out | |||
# serve to show the default. | |||
import os | |||
import subprocess | |||
import sys | |||
import warnings | |||
# If extensions (or modules to document with autodoc) are in another directory, | |||
# 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__)) | |||
ROOT_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "..")) | |||
sys.path.insert(0, ROOT_DIR) | |||
# -- General configuration --------------------------------------------------- | |||
# Add any Sphinx extension module names here, as strings. They can be | |||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | |||
extensions = ['sphinx.ext.autodoc', | |||
'sphinx.ext.coverage', | |||
'sphinx.ext.ifconfig', | |||
'sphinx.ext.graphviz', | |||
'sphinx.ext.todo', | |||
'openstackdocstheme'] | |||
todo_include_todos = True | |||
# Add any paths that contain templates here, relative to this directory. | |||
templates_path = [] | |||
# The suffix of source filenames. | |||
source_suffix = '.rst' | |||
# The encoding of source files. | |||
#source_encoding = 'utf-8' | |||
# The master toctree document. | |||
master_doc = 'index' | |||
# General information about the project. | |||
project = u'Neutron LBaaS' | |||
copyright = u'2011-present, OpenStack Foundation.' | |||
# The version info for the project you're documenting, acts as replacement for | |||
# |version| and |release|, also used in various other places throughout the | |||
# built documents. | |||
# | |||
# Version info | |||
from neutron_lbaas.version import version_info as neutron_lbaas_version | |||
release = neutron_lbaas_version.release_string() | |||
# The short X.Y version. | |||
version = neutron_lbaas_version.version_string() | |||
# The language for content autogenerated by Sphinx. Refer to documentation | |||
# for a list of supported languages. | |||
#language = None | |||
# There are two options for replacing |today|: either, you set today to some | |||
# non-false value, then it is used: | |||
#today = '' | |||
# Else, today_fmt is used as the format for a strftime call. | |||
#today_fmt = '%B %d, %Y' | |||
# List of documents that shouldn't be included in the build. | |||
# unused_docs = [] | |||
# List of directories, relative to source directory, that shouldn't be searched | |||
# for source files. | |||
exclude_trees = [] | |||
# The reST default role (for this markup: `text`) to use for all documents. | |||
#default_role = None | |||
# If true, '()' will be appended to :func: etc. cross-reference text. | |||
#add_function_parentheses = True | |||
# If true, the current module name will be prepended to all description | |||
# unit titles (such as .. function::). | |||
#add_module_names = True | |||
# If true, sectionauthor and moduleauthor directives will be shown in the | |||
# output. They are ignored by default. | |||
show_authors = True | |||
# The name of the Pygments (syntax highlighting) style to use. | |||
pygments_style = 'sphinx' | |||
# A list of ignored prefixes for module index sorting. | |||
modindex_common_prefix = ['neutron_lbaas.'] | |||
# -- Options for man page output -------------------------------------------- | |||
# Grouping the document tree for man pages. | |||
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' | |||
#man_pages = [ | |||
# ('man/neutron-server', 'neutron-server', u'Neutron Server', | |||
# [u'OpenStack'], 1) | |||
#] | |||
# -- Options for HTML output ------------------------------------------------- | |||
# The theme to use for HTML and HTML Help pages. Major themes that come with | |||
# Sphinx are currently 'default' and 'sphinxdoc'. | |||
# html_theme_path = ["."] | |||
# html_theme = '_theme' | |||
# Theme options are theme-specific and customize the look and feel of a theme | |||
# further. For a list of options available for each theme, see the | |||
# documentation. | |||
#html_theme_options = {} | |||
# Add any paths that contain custom themes here, relative to this directory. | |||
#html_theme_path = ['_theme'] | |||
# The name for this set of Sphinx documents. If None, it defaults to | |||
# "<project> v<release> documentation". | |||
#html_title = None | |||
# A shorter title for the navigation bar. Default is the same as html_title. | |||
#html_short_title = None | |||
# The name of an image file (relative to this directory) to place at the top | |||
# of the sidebar. | |||
#html_logo = None | |||
# The name of an image file (within the static path) to use as favicon of the | |||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 | |||
# pixels large. | |||
#html_favicon = None | |||
# Add any paths that contain custom static files (such as style sheets) here, | |||
# relative to this directory. They are copied after the builtin static files, | |||
# so a file named "default.css" will overwrite the builtin "default.css". | |||
# html_static_path = ['_static'] | |||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, | |||
# using the given strftime format. | |||
#html_last_updated_fmt = '%b %d, %Y' | |||
git_cmd = ["git", "log", "--pretty=format:'%ad, commit %h'", "--date=local", | |||
"-n1"] | |||
try: | |||
html_last_updated_fmt = subprocess.check_output(git_cmd).decode('utf-8') | |||
except Exception: | |||
warnings.warn('Cannot get last updated time from git repository. ' | |||
'Not setting "html_last_updated_fmt".') | |||
# If true, SmartyPants will be used to convert quotes and dashes to | |||
# typographically correct entities. | |||
#html_use_smartypants = True | |||
# Custom sidebar templates, maps document names to template names. | |||
#html_sidebars = {} | |||
# Additional templates that should be rendered to pages, maps page names to | |||
# template names. | |||
#html_additional_pages = {} | |||
# If false, no module index is generated. | |||
#html_use_modindex = True | |||
# If false, no index is generated. | |||
#html_use_index = True | |||
# If true, the index is split into individual pages for each letter. | |||
#html_split_index = False | |||
# If true, links to the reST sources are added to the pages. | |||
#html_show_sourcelink = True | |||
# If true, an OpenSearch description file will be output, and all pages will | |||
# contain a <link> tag referring to it. The value of this option must be the | |||
# base URL from which the finished HTML is served. | |||
#html_use_opensearch = '' | |||
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). | |||
#html_file_suffix = '' | |||
# Output file base name for HTML help builder. | |||
#htmlhelp_basename = 'neutrondoc' | |||
# -- Options for LaTeX output ------------------------------------------------ | |||
# The paper size ('letter' or 'a4'). | |||
#latex_paper_size = 'letter' | |||
# The font size ('10pt', '11pt' or '12pt'). | |||
#latex_font_size = '10pt' | |||
# Grouping the document tree into LaTeX files. List of tuples | |||
# (source start file, target name, title, author, | |||
# documentclass [howto/manual]). | |||
#latex_documents = [ | |||
# ('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 | |||
# the title page. | |||
#latex_logo = None | |||
# For "manual" documents, if this is true, then toplevel headings are parts, | |||
# not chapters. | |||
#latex_use_parts = False | |||
# Additional stuff for the LaTeX preamble. | |||
#latex_preamble = '' | |||
# Documents to append as an appendix to all manuals. | |||
#latex_appendices = [] | |||
# If false, no module index is generated. | |||
#latex_use_modindex = True |
@ -1,17 +0,0 @@ | |||
Neutron LBaaS Check Pipeline Thumbnails | |||
======================================= | |||
Click to see full size figure. | |||
.. raw:: html | |||
<table border="1"> | |||
<tr> | |||
<td align="center" width=50%> | |||
Failure Percentage - Last 10 Days - V2 API and Scenario Jobs <br> | |||
<a href="http://graphite.openstack.org/render/?title=Failure Percentage - Last 10 Days - V2 API and Scenario Jobs&from=-10days&height=500&until=now&width=1200&bgcolor=ffffff&fgcolor=000000&yMax=100&yMin=0&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-loadbalancer.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-loadbalancer.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-loadbalancer'),'green')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-listener.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-listener.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-listener'),'pink')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-pool.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-pool.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-pool'),'brown')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-member.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-member.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-member'),'blue')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-healthmonitor.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-healthmonitor.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-healthmonitor'),'orange')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-minimal.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-minimal.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-minimal'),'yellow')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-scenario.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-scenario.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-scenario'),'red')&drawNullAsZero=true"> | |||
<img src="http://graphite.openstack.org/render/?from=-10days&height=500&until=now&width=1200&bgcolor=ffffff&fgcolor=000000&yMax=100&yMin=0&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-loadbalancer.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-loadbalancer.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-loadbalancer'),'green')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-listener.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-listener.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-listener'),'pink')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-pool.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-pool.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-pool'),'brown')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-member.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-member.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-member'),'blue')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-healthmonitor.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-healthmonitor.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-healthmonitor'),'orange')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-minimal.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-minimal.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-minimal'),'yellow')&target=color(alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-scenario.FAILURE),transformNull(sum(stats_counts.zuul.pipeline.check.job.gate-neutron-lbaasv2-dsvm-scenario.{SUCCESS,FAILURE}))),'36hours'),%20'gate-neutron-lbaasv2-dsvm-scenario'),'red')&drawNullAsZero=true" width="400"></a> | |||
</td> | |||
</tr> | |||
</table> |
@ -1,7 +0,0 @@ | |||
Neutron LBaaS Graphite Pages | |||
============================ | |||
.. toctree:: | |||
:maxdepth: 1 | |||
check.dashboard |
@ -1,19 +0,0 @@ | |||
.. documentation master file | |||
Neutron LBaaS Documentation | |||
=========================== | |||
.. warning:: | |||
Neutron-lbaas is now deprecated. Please see the FAQ: https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation | |||
Dashboards | |||
========== | |||
There is a collection of dashboards to help developers and reviewers | |||
located here. | |||
.. toctree:: | |||
:maxdepth: 2 | |||
dashboards/index |
@ -1,9 +0,0 @@ | |||
To generate the sample neutron LBaaS configuration files, run the following | |||
command from the top level of the neutron LBaaS directory: | |||
tox -e genconfig | |||
If a 'tox' environment is unavailable, then you can run the following script | |||
instead to generate the configuration files: | |||
./tools/generate_config_file_samples.sh |
@ -1,25 +0,0 @@ | |||
{ | |||
"context_is_admin": "role:admin", | |||
"context_is_advsvc": "role:advsvc", | |||
"default": "rule:admin_or_owner", | |||
"create_loadbalancer": "", | |||
"update_loadbalancer": "", | |||
"get_loadbalancer": "", | |||
"delete_loadbalancer": "", | |||
"create_listener": "", | |||
"get_listener": "", | |||
"delete_listener": "", | |||
"update_listener": "", | |||
"create_pool": "", | |||
"get_pool": "", | |||
"delete_pool": "", | |||
"update_pool": "", | |||
"create_healthmonitor": "", | |||
"get_healthmonitor": "", | |||
"update_healthmonitor": "", | |||
"delete_healthmonitor": "", | |||
"create_pool_member": "", | |||
"get_pool_member": "", | |||
"update_pool_member": "", | |||
"delete_pool_member": "" | |||
} |
@ -1,26 +0,0 @@ | |||
# 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 | |||
# format seems to be | |||
# cmd-name: filter-name, raw-command, user, args | |||
[Filters] | |||
# haproxy | |||
haproxy: CommandFilter, haproxy, root | |||
# lbaas-agent uses kill as well, that's handled by the generic KillFilter | |||
kill_haproxy_usr: KillFilter, root, /usr/sbin/haproxy, -9, -HUP | |||
ovs-vsctl: CommandFilter, ovs-vsctl, root | |||
mm-ctl: CommandFilter, mm-ctl, root | |||
# ip_lib | |||
ip: IpFilter, ip, root | |||
ip_exec: IpNetnsExecFilter, ip, root | |||
route: CommandFilter, route, root | |||
# arping | |||
arping: CommandFilter, arping, root |
@ -1,6 +0,0 @@ | |||
[DEFAULT] | |||
output_file = etc/lbaas_agent.ini.sample | |||
wrap_width = 79 | |||
namespace = neutron.lbaas.agent | |||
namespace = oslo.log |
@ -1,5 +0,0 @@ | |||
[DEFAULT] | |||
output_file = etc/neutron_lbaas.conf.sample | |||
wrap_width = 79 | |||
namespace = neutron.lbaas |
@ -1,5 +0,0 @@ | |||
[DEFAULT] | |||
output_file = etc/services_lbaas.conf.sample | |||
wrap_width = 79 | |||
namespace = neutron.lbaas.service |
@ -1,154 +0,0 @@ | |||
alabaster==0.7.10 | |||
alembic==0.8.10 | |||
amqp==2.1.1 | |||
appdirs==1.3.0 | |||
asn1crypto==0.23.0 | |||
Babel==2.3.4 | |||
beautifulsoup4==4.6.0 | |||
cachetools==2.0.0 | |||
cffi==1.7.0 | |||
cliff==2.8.0 | |||
cmd2==0.8.0 | |||
contextlib2==0.4.0 | |||
coverage==4.0 | |||
cryptography==2.1 | |||
debtcollector==1.2.0 | |||
decorator==3.4.0 | |||
deprecation==1.0 | |||
docutils==0.11 | |||
dogpile.cache==0.6.2 | |||
dulwich==0.15.0 | |||
eventlet==0.18.2 | |||
extras==1.0.0 | |||
fasteners==0.7.0 | |||
fixtures==3.0.0 | |||
flake8-import-order==0.12 | |||
flake8==2.5.5 | |||
future==0.16.0 | |||
futurist==1.2.0 | |||
greenlet==0.4.10 | |||
hacking==0.12.0 | |||
httplib2==0.9.1 | |||
idna==2.6 | |||
imagesize==0.7.1 | |||
iso8601==0.1.11 | |||
Jinja2==2.10 | |||
jmespath==0.9.0 | |||
jsonpatch==1.16 | |||
jsonpointer==1.13 | |||
jsonschema==2.6.0 | |||
keystoneauth1==3.4.0 | |||
keystonemiddleware==4.17.0 | |||
kombu==4.0.0 | |||
linecache2==1.0.0 | |||
logutils==0.3.5 | |||
Mako==0.4.0 | |||
MarkupSafe==1.0 | |||
mccabe==0.2.1 | |||
mock==2.0.0 | |||
monotonic==0.6 | |||
mox3==0.20.0 | |||
msgpack-python==0.4.0 | |||
munch==2.1.0 | |||
netaddr==0.7.18 | |||
netifaces==0.10.4 | |||
neutron-lib==1.25.0 | |||
neutron==13.0.0 | |||
openstackdocstheme==1.18.1 | |||
openstacksdk==0.11.2 | |||
os-client-config==1.28.0 | |||
os-service-types==1.2.0 | |||
os-testr==1.0.0 | |||
os-xenapi==0.3.1 | |||
osc-lib==1.8.0 | |||
oslo.cache==1.26.0 | |||
oslo.concurrency==3.26.0 | |||
oslo.config==5.2.0 | |||
oslo.context==2.19.2 | |||
oslo.db==4.37.0 | |||
oslo.i18n==3.15.3 | |||
oslo.log==3.36.0 | |||
oslo.messaging==5.29.0 | |||
oslo.middleware==3.31.0 | |||
oslo.policy==1.30.0 | |||
oslo.privsep==1.23.0 | |||
oslo.reports==1.18.0 | |||
oslo.rootwrap==5.8.0 | |||
oslo.serialization==2.18.0 | |||
oslo.service==1.24.0 | |||
oslo.utils==3.33.0 | |||
oslo.versionedobjects==1.31.2 | |||
oslotest==3.2.0 | |||
osprofiler==1.4.0 | |||
ovs==2.8.0 | |||
ovsdbapp==0.10.0 | |||
paramiko==2.0.0 | |||
Paste==2.0.2 | |||
PasteDeploy==1.5.0 | |||
pbr==2.0.0 | |||
pecan==1.0.0 | |||
pep8==1.5.7 | |||
pika-pool==0.1.3 | |||
pika==0.10.0 | |||
positional==1.2.1 | |||
prettytable==0.7.2 | |||
psutil==3.2.2 | |||
pyasn1-modules==0.0.6 | |||
pyasn1==0.1.8 | |||
pycadf==1.1.0 | |||
pycodestyle==2.3.1 | |||
pycparser==2.18 | |||
pyflakes==0.8.1 | |||
Pygments==2.2.0 | |||
pyinotify==0.9.6 | |||
PyMySQL==0.7.6 | |||
pyOpenSSL==17.1.0 | |||
pyparsing==2.1.0 | |||
pyperclip==1.5.27 | |||
pyroute2==0.4.21 | |||
python-barbicanclient==4.5.2 | |||
python-dateutil==2.5.3 | |||
python-designateclient==2.7.0 | |||
python-editor==1.0.3 | |||
python-keystoneclient==3.8.0 | |||
python-mimeparse==1.6.0 | |||
python-neutronclient==6.7.0 | |||
python-novaclient==9.1.0 | |||
python-subunit==1.0.0 | |||
pytz==2013.6 | |||
PyYAML==3.12 | |||
reno==2.5.0 | |||
repoze.lru==0.7 | |||
requests-mock==1.2.0 | |||
requests==2.14.2 | |||
requestsexceptions==1.2.0 | |||
rfc3986==0.3.1 | |||
Routes==2.3.1 | |||
ryu==4.14 | |||
simplejson==3.5.1 | |||
six==1.10.0 | |||
snowballstemmer==1.2.1 | |||
Sphinx==1.6.2 | |||
sphinxcontrib-websupport==1.0.1 | |||
sqlalchemy-migrate==0.11.0 | |||
SQLAlchemy==1.2.0 | |||
sqlparse==0.2.2 | |||
statsd==3.2.1 | |||
stestr==1.0.0 | |||
stevedore==1.20.0 | |||
tempest==17.1.0 | |||
Tempita==0.5.2 | |||
tenacity==3.2.1 | |||
testrepository==0.0.18 | |||
testresources==2.0.0 | |||
testscenarios==0.4 | |||
testtools==2.2.0 | |||
tinyrpc==0.6 | |||
traceback2==1.4.0 | |||
unittest2==1.1.0 | |||
urllib3==1.21.1 | |||
vine==1.1.4 | |||
waitress==1.1.0 | |||
WebOb==1.7.1 | |||
WebTest==2.0.27 | |||
wrapt==1.7.0 |
@ -1,32 +0,0 @@ | |||
# 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 oslo_i18n | |||
DOMAIN = "neutron_lbaas" | |||
_translators = oslo_i18n.TranslatorFactory(domain=DOMAIN) | |||
# The primary translation function using the well-known name "_" | |||
_ = _translators.primary | |||
# The contextual translation function using the name "_C" | |||
_C = _translators.contextual_form | |||
# The plural translation function using the name "_P" | |||
_P = _translators.plural_form | |||
def get_available_languages(): | |||
return oslo_i18n.get_available_languages(DOMAIN) |
@ -1,79 +0,0 @@ | |||
# Copyright 2013 New Dream Network, LLC (DreamHost) | |||
# Copyright 2015 Rackspace | |||
# | |||
# 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 sys | |||
from neutron.common import config as common_config | |||
from neutron.conf.agent import common as config | |||
from neutron_lib import rpc as n_rpc | |||
from oslo_config import cfg | |||
from oslo_log import log as logging | |||
from oslo_service import service | |||
from neutron_lbaas._i18n import _ | |||
from neutron_lbaas.agent import agent_manager as manager | |||
from neutron_lbaas.services.loadbalancer import constants | |||
LOG = logging.getLogger(__name__) | |||
OPTS = [ | |||
cfg.IntOpt( | |||
'periodic_interval', | |||
default=10, | |||
deprecated_for_removal=True, | |||
deprecated_since='Queens', | |||
deprecated_reason='The neutron-lbaas project is now deprecated. ' | |||
'See: https://wiki.openstack.org/wiki/Neutron/LBaaS/' | |||
'Deprecation', | |||
help=_('Seconds between periodic task runs') | |||
) | |||
] | |||
class LbaasAgentService(n_rpc.Service): | |||
def start(self): | |||
super(LbaasAgentService, self).start() | |||
self.tg.add_timer( | |||
cfg.CONF.periodic_interval, | |||
self.manager.run_periodic_tasks, | |||
None, | |||
None | |||
) | |||
def main(): | |||
cfg.CONF.register_opts(OPTS) | |||
cfg.CONF.register_opts(manager.OPTS) | |||
# import interface options just in case the driver uses namespaces | |||
config.register_interface_opts(cfg.CONF) | |||
config.register_external_process_opts(cfg.CONF) | |||
config.register_interface_driver_opts_helper(cfg.CONF) | |||
config.register_agent_state_opts_helper(cfg.CONF) | |||
config.register_root_helper(cfg.CONF) | |||
common_config.init(sys.argv[1:]) | |||
config.setup_logging() | |||
config.setup_privsep() | |||
LOG.warning('neutron-lbaas is now deprecated. See: ' | |||
'https://wiki.openstack.org/wiki/Neutron/LBaaS/Deprecation') | |||
mgr = manager.LbaasAgentManager(cfg.CONF) | |||
svc = LbaasAgentService( | |||
host=cfg.CONF.host, | |||
topic=constants.LOADBALANCER_AGENTV2, | |||
manager=mgr | |||