Browse Source

Retiring neutron-lbaas

Depends-On: https://review.opendev.org/#/c/658493/
Change-Id: Ia4f4b335295c0e6add79fe0db5dd31b4327fdb54
changes/94/658494/2
Adam Harwell 1 year ago
parent
commit
f8d023fbfe
312 changed files with 15 additions and 42594 deletions
  1. +0
    -7
      .coveragerc
  2. +0
    -35
      .gitignore
  3. +0
    -11
      .mailmap
  4. +0
    -93
      .pylintrc
  5. +0
    -3
      .stestr.conf
  6. +0
    -8
      CONTRIBUTING.rst
  7. +0
    -7
      HACKING.rst
  8. +0
    -176
      LICENSE
  9. +15
    -0
      README
  10. +0
    -33
      README.rst
  11. +0
    -8
      TESTING.rst
  12. +0
    -2
      babel.cfg
  13. +0
    -88
      devstack/README.md
  14. +0
    -36
      devstack/etc/neutron/haproxy.cfg
  15. +0
    -1
      devstack/files/debs/neutron-lbaas
  16. +0
    -180
      devstack/plugin.sh
  17. +0
    -37
      devstack/samples/README-Vagrant.md
  18. +0
    -31
      devstack/samples/README.md
  19. +0
    -84
      devstack/samples/Vagrantfile
  20. +0
    -86
      devstack/samples/local.conf
  21. +0
    -101
      devstack/samples/local.sh
  22. +0
    -9
      devstack/samples/webserver.sh
  23. +0
    -40
      devstack/settings
  24. +0
    -3
      doc/requirements.txt
  25. +0
    -242
      doc/source/conf.py
  26. +0
    -17
      doc/source/dashboards/check.dashboard.rst
  27. +0
    -7
      doc/source/dashboards/index.rst
  28. +0
    -19
      doc/source/index.rst
  29. +0
    -9
      etc/README.txt
  30. +0
    -25
      etc/neutron/policy.json.sample
  31. +0
    -26
      etc/neutron/rootwrap.d/lbaas-haproxy.filters
  32. +0
    -6
      etc/oslo-config-generator/lbaas_agent.ini
  33. +0
    -5
      etc/oslo-config-generator/neutron_lbaas.conf
  34. +0
    -5
      etc/oslo-config-generator/services_lbaas.conf
  35. +0
    -154
      lower-constraints.txt
  36. +0
    -0
      neutron_lbaas/__init__.py
  37. +0
    -32
      neutron_lbaas/_i18n.py
  38. +0
    -0
      neutron_lbaas/agent/__init__.py
  39. +0
    -79
      neutron_lbaas/agent/agent.py
  40. +0
    -72
      neutron_lbaas/agent/agent_api.py
  41. +0
    -109
      neutron_lbaas/agent/agent_device_driver.py
  42. +0
    -416
      neutron_lbaas/agent/agent_manager.py
  43. +0
    -157
      neutron_lbaas/agent_scheduler.py
  44. +0
    -30
      neutron_lbaas/cmd/__init__.py
  45. +0
    -17
      neutron_lbaas/cmd/lbaasv2_agent.py
  46. +0
    -0
      neutron_lbaas/common/__init__.py
  47. +0
    -53
      neutron_lbaas/common/cert_manager/__init__.py
  48. +0
    -0
      neutron_lbaas/common/cert_manager/barbican_auth/__init__.py
  49. +0
    -47
      neutron_lbaas/common/cert_manager/barbican_auth/barbican_acl.py
  50. +0
    -28
      neutron_lbaas/common/cert_manager/barbican_auth/common.py
  51. +0
    -212
      neutron_lbaas/common/cert_manager/barbican_cert_manager.py
  52. +0
    -100
      neutron_lbaas/common/cert_manager/cert_manager.py
  53. +0
    -205
      neutron_lbaas/common/cert_manager/local_cert_manager.py
  54. +0
    -80
      neutron_lbaas/common/exceptions.py
  55. +0
    -218
      neutron_lbaas/common/keystone.py
  56. +0
    -0
      neutron_lbaas/common/tls_utils/__init__.py
  57. +0
    -177
      neutron_lbaas/common/tls_utils/cert_parser.py
  58. +0
    -0
      neutron_lbaas/db/__init__.py
  59. +0
    -0
      neutron_lbaas/db/loadbalancer/__init__.py
  60. +0
    -1072
      neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py
  61. +0
    -555
      neutron_lbaas/db/loadbalancer/models.py
  62. +0
    -0
      neutron_lbaas/db/migration/__init__.py
  63. +0
    -1
      neutron_lbaas/db/migration/alembic_migrations/README
  64. +0
    -0
      neutron_lbaas/db/migration/alembic_migrations/__init__.py
  65. +0
    -99
      neutron_lbaas/db/migration/alembic_migrations/env.py
  66. +0
    -36
      neutron_lbaas/db/migration/alembic_migrations/script.py.mako
  67. +0
    -40
      neutron_lbaas/db/migration/alembic_migrations/versions/364f9b6064f0_agentv2.py
  68. +0
    -38
      neutron_lbaas/db/migration/alembic_migrations/versions/4b6d8d5310b8_add_index_tenant_id.py
  69. +0
    -62
      neutron_lbaas/db/migration/alembic_migrations/versions/4ba00375f715_edge_driver.py
  70. +0
    -77
      neutron_lbaas/db/migration/alembic_migrations/versions/4deef6d81931_add_provisioning_and_operating_statuses.py
  71. +0
    -1
      neutron_lbaas/db/migration/alembic_migrations/versions/CONTRACT_HEAD
  72. +0
    -1
      neutron_lbaas/db/migration/alembic_migrations/versions/EXPAND_HEAD
  73. +0
    -29
      neutron_lbaas/db/migration/alembic_migrations/versions/kilo_release.py
  74. +0
    -153
      neutron_lbaas/db/migration/alembic_migrations/versions/lbaasv2.py
  75. +0
    -54
      neutron_lbaas/db/migration/alembic_migrations/versions/lbaasv2_tls.py
  76. +0
    -37
      neutron_lbaas/db/migration/alembic_migrations/versions/liberty/contract/130ebfdef43_initial.py
  77. +0
    -37
      neutron_lbaas/db/migration/alembic_migrations/versions/liberty/expand/3345facd0452_initial.py
  78. +0
    -39
      neutron_lbaas/db/migration/alembic_migrations/versions/mitaka/expand/3426acbc12de_add_flavor_id.py
  79. +0
    -76
      neutron_lbaas/db/migration/alembic_migrations/versions/mitaka/expand/3543deab1547_add_l7_tables.py
  80. +0
    -35
      neutron_lbaas/db/migration/alembic_migrations/versions/mitaka/expand/4a408dd491c2_UpdateName.py
  81. +0
    -41
      neutron_lbaas/db/migration/alembic_migrations/versions/mitaka/expand/62deca5010cd_add_tenant_id_index_for_l7_tables.py
  82. +0
    -90
      neutron_lbaas/db/migration/alembic_migrations/versions/mitaka/expand/6aee0434f911_independent_pools.py
  83. +0
    -158
      neutron_lbaas/db/migration/alembic_migrations/versions/newton/contract/4b4dc6d5d843_rename_tenant_to_project.py
  84. +0
    -47
      neutron_lbaas/db/migration/alembic_migrations/versions/newton/contract/e6417a8b114d_drop_v1_tables.py
  85. +0
    -41
      neutron_lbaas/db/migration/alembic_migrations/versions/newton/expand/844352f9fe6f_add_healthmonitor_max_retries_down.py
  86. +0
    -30
      neutron_lbaas/db/migration/alembic_migrations/versions/start_neutron_lbaas.py
  87. +0
    -0
      neutron_lbaas/db/models/__init__.py
  88. +0
    -22
      neutron_lbaas/db/models/head.py
  89. +0
    -0
      neutron_lbaas/drivers/__init__.py
  90. +0
    -0
      neutron_lbaas/drivers/a10networks/__init__.py
  91. +0
    -130
      neutron_lbaas/drivers/a10networks/driver_v2.py
  92. +0
    -12
      neutron_lbaas/drivers/brocade/README
  93. +0
    -0
      neutron_lbaas/drivers/brocade/__init__.py
  94. +0
    -167
      neutron_lbaas/drivers/brocade/driver_v2.py
  95. +0
    -0
      neutron_lbaas/drivers/common/__init__.py
  96. +0
    -214
      neutron_lbaas/drivers/common/agent_callbacks.py
  97. +0
    -416
      neutron_lbaas/drivers/common/agent_driver_base.py
  98. +0
    -192
      neutron_lbaas/drivers/driver_base.py
  99. +0
    -236
      neutron_lbaas/drivers/driver_mixins.py
  100. +0
    -0
      neutron_lbaas/drivers/f5/__init__.py

+ 0
- 7
.coveragerc View File

@ -1,7 +0,0 @@
[run]
branch = True
source = neutron_lbaas
omit = neutron_lbaas/tests*
[report]
ignore_errors = True

+ 0
- 35
.gitignore View File

@ -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

+ 0
- 11
.mailmap View File

@ -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>

+ 0
- 93
.pylintrc View File

@ -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

+ 0
- 3
.stestr.conf View File

@ -1,3 +0,0 @@
[DEFAULT]
test_path=${OS_TEST_PATH:-./neutron_lbaas/tests/unit}
top_dir=./

+ 0
- 8
CONTRIBUTING.rst View File

@ -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>`_

+ 0
- 7
HACKING.rst View File

@ -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>`_

+ 0
- 176
LICENSE View File

@ -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.

+ 15
- 0
README View File

@ -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.

+ 0
- 33
README.rst View File

@ -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>.

+ 0
- 8
TESTING.rst View File

@ -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>`_

+ 0
- 2
babel.cfg View File

@ -1,2 +0,0 @@
[python: **.py]

+ 0
- 88
devstack/README.md View File

@ -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

+ 0
- 36
devstack/etc/neutron/haproxy.cfg View File

@ -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

+ 0
- 1
devstack/files/debs/neutron-lbaas View File

@ -1 +0,0 @@
software-properties-common

+ 0
- 180
devstack/plugin.sh View File

@ -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

+ 0
- 37
devstack/samples/README-Vagrant.md View File

@ -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.

+ 0
- 31
devstack/samples/README.md View File

@ -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.

+ 0
- 84
devstack/samples/Vagrantfile View File

@ -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

+ 0
- 86
devstack/samples/local.conf View File

@ -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

+ 0
- 101
devstack/samples/local.sh View File

@ -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

+ 0
- 9
devstack/samples/webserver.sh View File

@ -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

+ 0
- 40
devstack/settings View File

@ -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"

+ 0
- 3
doc/requirements.txt View File

@ -1,3 +0,0 @@
sphinx>=1.6.2 # BSD
openstackdocstheme>=1.17.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0

+ 0
- 242
doc/source/conf.py View File

@ -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

+ 0
- 17
doc/source/dashboards/check.dashboard.rst View File

@ -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>

+ 0
- 7
doc/source/dashboards/index.rst View File

@ -1,7 +0,0 @@
Neutron LBaaS Graphite Pages
============================
.. toctree::
:maxdepth: 1
check.dashboard

+ 0
- 19
doc/source/index.rst View File

@ -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

+ 0
- 9
etc/README.txt View File

@ -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

+ 0
- 25
etc/neutron/policy.json.sample View File

@ -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": ""
}

+ 0
- 26
etc/neutron/rootwrap.d/lbaas-haproxy.filters View File

@ -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

+ 0
- 6
etc/oslo-config-generator/lbaas_agent.ini View File

@ -1,6 +0,0 @@
[DEFAULT]
output_file = etc/lbaas_agent.ini.sample
wrap_width = 79
namespace = neutron.lbaas.agent
namespace = oslo.log

+ 0
- 5
etc/oslo-config-generator/neutron_lbaas.conf View File

@ -1,5 +0,0 @@
[DEFAULT]
output_file = etc/neutron_lbaas.conf.sample
wrap_width = 79
namespace = neutron.lbaas

+ 0
- 5
etc/oslo-config-generator/services_lbaas.conf View File

@ -1,5 +0,0 @@
[DEFAULT]
output_file = etc/services_lbaas.conf.sample
wrap_width = 79
namespace = neutron.lbaas.service

+ 0
- 154
lower-constraints.txt View File

@ -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

+ 0
- 0
neutron_lbaas/__init__.py View File


+ 0
- 32
neutron_lbaas/_i18n.py View File

@ -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)

+ 0
- 0
neutron_lbaas/agent/__init__.py View File


+ 0
- 79
neutron_lbaas/agent/agent.py View File

@ -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