Retire the Tricircle project
Recently the TC has worked on determining the criteria for when an OpenStack project should be retired[1]. During Victoria cycle, there was not a PTL nominee for the Triccirle project, that triggered the TC to review the project health. In TC meeting it was decided to retire the Tricircle project and was announced in the openstack-discuss mailing[2]. This commit retires the repository as per process and if anyone would like to maintain Tricircle again, please revert back this commit and propose the re-adding of Tricircle to governance. The community wishes to express our thanks and appreciation to all of those who have contributed to the Tricircle project over the years. [1] https://governance.openstack.org/tc/reference/dropping-projects.html [2] http://lists.openstack.org/pipermail/openstack-discuss/2020-April/014338.html Depends-On: https://review.opendev.org/#/c/728903/ Needed-By: https://review.opendev.org/#/c/731566/ Change-Id: Ide73af8b7dbbadb49f5d6a6bd068d5d42f501cca
This commit is contained in:
parent
8db8fb30f5
commit
60245a1b49
@ -1,7 +0,0 @@
|
||||
[run]
|
||||
branch = True
|
||||
source = tricircle
|
||||
omit = tricircle/tests/*, tricircle/tempestplugin/*
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
55
.gitignore
vendored
55
.gitignore
vendored
@ -1,55 +0,0 @@
|
||||
*.py[cod]
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Packages
|
||||
*.egg
|
||||
*.egg-info
|
||||
dist
|
||||
build
|
||||
eggs
|
||||
parts
|
||||
var
|
||||
sdist
|
||||
develop-eggs
|
||||
.installed.cfg
|
||||
lib
|
||||
lib64
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
.coverage
|
||||
.tox
|
||||
nosetests.xml
|
||||
.testrepository
|
||||
.venv
|
||||
.stestr
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
|
||||
# Mr Developer
|
||||
.mr.developer.cfg
|
||||
.project
|
||||
.pydevproject
|
||||
.idea
|
||||
|
||||
# Complexity
|
||||
output/*.html
|
||||
output/*/index.html
|
||||
|
||||
# Sphinx
|
||||
doc/build
|
||||
|
||||
# pbr generates these
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
||||
# Editors
|
||||
*~
|
||||
.*.swp
|
||||
.*sw?
|
||||
|
@ -1,3 +0,0 @@
|
||||
[DEFAULT]
|
||||
test_path=./tricircle/tests/unit
|
||||
top_dir=./
|
@ -1,7 +0,0 @@
|
||||
[DEFAULT]
|
||||
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
|
||||
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
|
||||
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
|
||||
${PYTHON:-python} -m subunit.run discover $TRICIRCLE_TEST_DIRECTORY $LISTOPT $IDOPTION
|
||||
test_id_option=--load-list $IDFILE
|
||||
test_list_option=--list
|
74
.zuul.yaml
74
.zuul.yaml
@ -1,74 +0,0 @@
|
||||
- job:
|
||||
name: tricircle-functional-python3
|
||||
parent: legacy-dsvm-base
|
||||
run: playbooks/tricircle-dsvm-functional/run.yaml
|
||||
post-run: playbooks/tricircle-dsvm-functional/post.yaml
|
||||
timeout: 7800
|
||||
required-projects:
|
||||
- openstack/devstack-gate
|
||||
- openstack/tricircle
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
vars:
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
|
||||
- job:
|
||||
name: tricircle-multiregion
|
||||
parent: legacy-dsvm-base-multinode
|
||||
run: playbooks/tricircle-dsvm-multiregion/run.yaml
|
||||
post-run: playbooks/tricircle-dsvm-multiregion/post.yaml
|
||||
timeout: 7800
|
||||
required-projects:
|
||||
- openstack/devstack-gate
|
||||
- openstack/networking-sfc
|
||||
- openstack/tricircle
|
||||
|
||||
- job:
|
||||
name: tricircle-tox-lower-constraints
|
||||
parent: openstack-tox-lower-constraints
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
|
||||
- job:
|
||||
name: tricircle-tox-cover
|
||||
parent: openstack-tox-cover
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
|
||||
|
||||
- project:
|
||||
templates:
|
||||
- openstack-python3-victoria-jobs-neutron
|
||||
- openstack-python3-victoria-jobs
|
||||
- check-requirements
|
||||
- publish-openstack-docs-pti
|
||||
- release-notes-jobs-python3
|
||||
check:
|
||||
jobs:
|
||||
- tricircle-tox-cover
|
||||
- tricircle-tox-lower-constraints
|
||||
- openstack-tox-pep8:
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
- openstack-tox-py36:
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
- tricircle-functional-python3
|
||||
- tricircle-multiregion
|
||||
gate:
|
||||
jobs:
|
||||
- tricircle-tox-lower-constraints
|
||||
- openstack-tox-pep8:
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
- openstack-tox-py36:
|
||||
required-projects:
|
||||
- openstack/neutron
|
||||
- openstack/networking-sfc
|
||||
- tricircle-multiregion
|
@ -1,17 +0,0 @@
|
||||
If you would like to contribute to the development of OpenStack, you should
|
||||
follow the steps in this page:
|
||||
|
||||
https://docs.openstack.org/infra/manual/developers.html
|
||||
|
||||
If you already knew how the OpenStack CI system works and your
|
||||
OpenStack accounts is setup properly, you can start from the development
|
||||
workflow section in that documentation to know how you should commit your
|
||||
patch set for review via the Gerrit tool:
|
||||
|
||||
https://docs.openstack.org/infra/manual/developers.html#development-workflow
|
||||
|
||||
Any pull requests submitted through GitHub will be ignored.
|
||||
|
||||
Any bug should be filed on Launchpad, not GitHub:
|
||||
|
||||
https://bugs.launchpad.net/tricircle
|
@ -1,6 +0,0 @@
|
||||
================================
|
||||
The Tricircle Style Commandments
|
||||
================================
|
||||
|
||||
Please read the OpenStack Style Commandments
|
||||
https://docs.openstack.org/hacking/latest/
|
201
LICENSE
201
LICENSE
@ -1,201 +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.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
63
README.rst
63
README.rst
@ -1,57 +1,10 @@
|
||||
========================
|
||||
Team and repository tags
|
||||
========================
|
||||
This project is no longer maintained.
|
||||
|
||||
.. image:: https://governance.openstack.org/tc/badges/tricircle.svg
|
||||
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
||||
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".
|
||||
|
||||
.. Change things from this point on
|
||||
|
||||
=========
|
||||
Tricircle
|
||||
=========
|
||||
|
||||
The purpose of the Tricircle project is to provide networking automation
|
||||
across Neutron servers in multi-region OpenStack clouds deployment.
|
||||
|
||||
Each OpenStack cloud includes its own Nova, Cinder and Neutron, the Neutron
|
||||
servers in these OpenStack clouds are called local Neutron servers, all these
|
||||
local Neutron servers will be configured with the Tricircle Local Neutron
|
||||
Plugin. A separate Neutron server will be installed and run standalone as
|
||||
the coordinator of networking automation across local Neutron servers, this
|
||||
Neutron server will be configured with the Tricircle Central Neutron Plugin,
|
||||
and is called central Neutron server.
|
||||
|
||||
Leverage the Tricircle Central Neutron Plugin and the Tricircle Local Neutron
|
||||
Plugin configured in these Neutron servers, the Tricircle can ensure the
|
||||
IP address pool, IP/MAC address allocation and network segment allocation
|
||||
being managed globally without conflict, and the Tricircle handles tenant
|
||||
oriented data link layer(Layer2) or network layer(Layer3) networking
|
||||
automation across local Neutron servers, resources like VMs, bare metal or
|
||||
containers of the tenant can communicate with each other via Layer2 or Layer3,
|
||||
no matter in which OpenStack cloud these resources are running on.
|
||||
|
||||
Note: There are some our own definitions of Layer2/Layer3 networking
|
||||
across Neutron. To make sure what they are, please read our design
|
||||
documentation, especially "6.5 L2 Networking across Neutron". The wiki and
|
||||
design documentation are linked below.
|
||||
|
||||
The Tricircle and multi-region OpenStack clouds will use shared
|
||||
KeyStone(with centralized or distributed deployment) or federated KeyStones.
|
||||
|
||||
The Tricircle source code is distributed under the terms of the Apache
|
||||
License, Version 2.0. The full terms and conditions of this license are
|
||||
detailed in the LICENSE file.
|
||||
|
||||
* Free software: Apache license
|
||||
* Design documentation: `Tricircle Design Blueprint <https://docs.google.com/document/d/1zcxwl8xMEpxVCqLTce2-dUOtB-ObmzJTbV1uSQ6qTsY/>`_
|
||||
* Wiki: https://wiki.openstack.org/wiki/tricircle
|
||||
* Installation guide: https://docs.openstack.org/tricircle/latest/install/index.html
|
||||
* Admin guide: https://docs.openstack.org/tricircle/latest/admin/index.html
|
||||
* Configuration guide: https://docs.openstack.org/tricircle/latest/configuration/index.html
|
||||
* Networking guide: https://docs.openstack.org/tricircle/latest/networking/index.html
|
||||
* Source: https://opendev.org/openstack/tricircle
|
||||
* Bugs: https://bugs.launchpad.net/tricircle
|
||||
* Blueprints: https://blueprints.launchpad.net/tricircle
|
||||
* Release notes: https://docs.openstack.org/releasenotes/tricircle
|
||||
* Contributing: https://docs.openstack.org/tricircle/latest/contributor/index.html
|
||||
For any further questions, please email
|
||||
openstack-discuss@lists.openstack.org or join #openstack-dev on
|
||||
Freenode.
|
||||
|
@ -1,9 +0,0 @@
|
||||
export OS_PROJECT_DOMAIN_ID=default
|
||||
export OS_USER_DOMAIN_ID=default
|
||||
export OS_PROJECT_NAME=admin
|
||||
export OS_TENANT_NAME=admin
|
||||
export OS_USERNAME=admin
|
||||
export OS_PASSWORD=password
|
||||
export OS_AUTH_URL=http://127.0.0.1:5000
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
export OS_REGION_NAME=RegionOne
|
@ -1,39 +0,0 @@
|
||||
# apache configuration template for tricircle-api
|
||||
|
||||
Listen %PUBLICPORT%
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %D(us)" tricircle_combined
|
||||
|
||||
<Directory %TRICIRCLE_BIN%>
|
||||
Require all granted
|
||||
</Directory>
|
||||
<VirtualHost *:%PUBLICPORT%>
|
||||
WSGIDaemonProcess tricircle-api processes=%APIWORKERS% threads=1 user=%USER% display-name=%{GROUP} %VIRTUALENV%
|
||||
WSGIProcessGroup tricircle-api
|
||||
WSGIScriptAlias / %PUBLICWSGI%
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
WSGIPassAuthorization On
|
||||
<IfVersion >= 2.4>
|
||||
ErrorLogFormat "%M"
|
||||
</IfVersion>
|
||||
ErrorLog /var/log/%APACHE_NAME%/tricircle-api.log
|
||||
CustomLog /var/log/%APACHE_NAME%/tricircle_access.log tricircle_combined
|
||||
%SSLENGINE%
|
||||
%SSLCERTFILE%
|
||||
%SSLKEYFILE%
|
||||
</VirtualHost>
|
||||
|
||||
%SSLLISTEN%<VirtualHost *:443>
|
||||
%SSLLISTEN% %SSLENGINE%
|
||||
%SSLLISTEN% %SSLCERTFILE%
|
||||
%SSLLISTEN% %SSLKEYFILE%
|
||||
%SSLLISTEN%</VirtualHost>
|
||||
|
||||
Alias /tricircle %PUBLICWSGI%
|
||||
<Location /tricircle>
|
||||
SetHandler wsgi-script
|
||||
Options +ExecCGI
|
||||
|
||||
WSGIProcessGroup tricircle-api
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
WSGIPassAuthorization On
|
||||
</Location>
|
@ -1,63 +0,0 @@
|
||||
#
|
||||
# Sample DevStack local.conf.
|
||||
#
|
||||
# This sample file is intended to be used for your typical Tricircle DevStack
|
||||
# multi-node environment. This file has the configuration values for DevStack
|
||||
# to result in Central Neutron service and Tricircle Admin API service
|
||||
# registered in CentralRegion, and local Neutron service and remaining
|
||||
# services(e. g. Nova, Cinder, etc.) will be placed in RegionOne, but Keystone
|
||||
# will be registered in RegionOne and is shared by services in all the
|
||||
# regions.
|
||||
#
|
||||
# This file works with local.conf.node_2.sample to help you build a two-node
|
||||
# three-region Tricircle environment(Central Region, RegionOne and RegionTwo).
|
||||
#
|
||||
# Some options need to be changed to adapt to your environment, see README.rst
|
||||
# for detail.
|
||||
#
|
||||
|
||||
[[local|localrc]]
|
||||
|
||||
DATABASE_PASSWORD=password
|
||||
RABBIT_PASSWORD=password
|
||||
SERVICE_PASSWORD=password
|
||||
SERVICE_TOKEN=password
|
||||
ADMIN_PASSWORD=password
|
||||
|
||||
HOST_IP=10.250.201.24
|
||||
|
||||
Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=(network_vlan_ranges=bridge:2001:3000,extern:3001:4000)
|
||||
Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS=(vni_ranges=1001:2000)
|
||||
Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS=(flat_networks=bridge,extern)
|
||||
OVS_BRIDGE_MAPPINGS=bridge:br-vlan
|
||||
ML2_L3_PLUGIN=tricircle.network.local_l3_plugin.TricircleL3Plugin
|
||||
|
||||
# Specify Central Region name
|
||||
# CENTRAL_REGION_NAME=CentralRegion
|
||||
|
||||
# Specify port for central Neutron server
|
||||
# TRICIRCLE_NEUTRON_PORT=20001
|
||||
|
||||
# Set to True to integrate Tricircle with Nova cell v2(experiment)
|
||||
# TRICIRCLE_DEPLOY_WITH_CELL=True
|
||||
|
||||
TRICIRCLE_START_SERVICES=True
|
||||
enable_plugin tricircle https://github.com/openstack/tricircle/
|
||||
|
||||
# Configure Neutron LBaaS, which will be removed after tricircle plugin enabling
|
||||
# enable_plugin neutron-lbaas https://github.com/openstack/neutron-lbaas.git
|
||||
# enable_plugin octavia https://github.com/openstack/octavia.git
|
||||
# ENABLED_SERVICES+=,q-lbaasv2
|
||||
# ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api
|
||||
|
||||
disable_service horizon
|
||||
|
||||
# Enable l2population for vxlan network
|
||||
[[post-config|/$Q_PLUGIN_CONF_FILE]]
|
||||
|
||||
[ml2]
|
||||
mechanism_drivers = openvswitch,linuxbridge,l2population
|
||||
|
||||
[agent]
|
||||
tunnel_types=vxlan
|
||||
l2_population=True
|
@ -1,67 +0,0 @@
|
||||
#
|
||||
# Sample DevStack local.conf.
|
||||
#
|
||||
# This sample file is intended to be used for your typical Tricircle DevStack
|
||||
# multi-node environment. As this file has configuration values for DevStack
|
||||
# to result in RegionTwo running original Nova, Cinder and Neutron, and
|
||||
# the local Neutron will be configured with Tricircle Local Neutron Plugin
|
||||
# to work with central Neutron with Tricircle Central Neutron Plugin.
|
||||
#
|
||||
# This file works with local.conf.node_1.sample to help you build a two-node
|
||||
# three-region environment(CentralRegion, RegionOne and RegionTwo). Keystone in
|
||||
# RegionOne is shared by services in all the regions.
|
||||
#
|
||||
# Some options need to be changed to adapt to your environment, see README.rst
|
||||
# for detail.
|
||||
#
|
||||
|
||||
[[local|localrc]]
|
||||
|
||||
DATABASE_PASSWORD=password
|
||||
RABBIT_PASSWORD=password
|
||||
SERVICE_PASSWORD=password
|
||||
SERVICE_TOKEN=password
|
||||
ADMIN_PASSWORD=password
|
||||
|
||||
HOST_IP=10.250.201.25
|
||||
REGION_NAME=RegionTwo
|
||||
KEYSTONE_REGION_NAME=RegionOne
|
||||
SERVICE_HOST=$HOST_IP
|
||||
KEYSTONE_SERVICE_HOST=10.250.201.24
|
||||
KEYSTONE_AUTH_HOST=10.250.201.24
|
||||
|
||||
Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=(network_vlan_ranges=bridge:2001:3000,extern:3001:4000)
|
||||
Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS=(vni_ranges=1001:2000)
|
||||
Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS=(flat_networks=bridge,extern)
|
||||
OVS_BRIDGE_MAPPINGS=bridge:br-vlan,extern:br-ext
|
||||
ML2_L3_PLUGIN=tricircle.network.local_l3_plugin.TricircleL3Plugin
|
||||
|
||||
# Specify Central Region name
|
||||
# CENTRAL_REGION_NAME=CentralRegion
|
||||
|
||||
# Specify port for central Neutron server
|
||||
# TRICIRCLE_NEUTRON_PORT=20001
|
||||
|
||||
# Set to True to integrate Tricircle with Nova cell v2(experiment)
|
||||
# TRICIRCLE_DEPLOY_WITH_CELL=True
|
||||
|
||||
TRICIRCLE_START_SERVICES=False
|
||||
enable_plugin tricircle https://github.com/openstack/tricircle/
|
||||
|
||||
# Configure Neutron LBaaS, which will be removed after tricircle plugin enabling
|
||||
# enable_plugin neutron-lbaas https://github.com/openstack/neutron-lbaas.git
|
||||
# enable_plugin octavia https://github.com/openstack/octavia.git
|
||||
# ENABLED_SERVICES+=,q-lbaasv2
|
||||
# ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api
|
||||
|
||||
disable_service horizon
|
||||
|
||||
# Enable l2population for vxlan network
|
||||
[[post-config|/$Q_PLUGIN_CONF_FILE]]
|
||||
|
||||
[ml2]
|
||||
mechanism_drivers = openvswitch,linuxbridge,l2population
|
||||
|
||||
[agent]
|
||||
tunnel_types=vxlan
|
||||
l2_population=True
|
@ -1,28 +0,0 @@
|
||||
#
|
||||
# Sample DevStack local.conf.
|
||||
#
|
||||
# This sample file is intended to be used for your typical Tricircle DevStack
|
||||
# environment that's running all of OpenStack on a single host.
|
||||
#
|
||||
# No changes to this sample configuration are required for this to work.
|
||||
#
|
||||
|
||||
[[local|localrc]]
|
||||
|
||||
DATABASE_PASSWORD=password
|
||||
RABBIT_PASSWORD=password
|
||||
SERVICE_PASSWORD=password
|
||||
SERVICE_TOKEN=password
|
||||
ADMIN_PASSWORD=password
|
||||
|
||||
HOST_IP=127.0.0.1
|
||||
|
||||
# Specify Central Region name
|
||||
# CENTRAL_REGION_NAME=CentralRegion
|
||||
|
||||
# Specify port for central Neutron server
|
||||
# TRICIRCLE_NEUTRON_PORT=20001
|
||||
|
||||
enable_plugin tricircle https://github.com/openstack/tricircle/
|
||||
|
||||
# disable_service horizon
|
@ -1,476 +0,0 @@
|
||||
# Devstack extras script to install Tricircle
|
||||
|
||||
# Test if any tricircle services are enabled
|
||||
# is_tricircle_enabled
|
||||
function is_tricircle_enabled {
|
||||
[[ ,${ENABLED_SERVICES} =~ ,"t-api" ]] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
# create_tricircle_accounts() - Set up common required tricircle
|
||||
# service accounts in keystone
|
||||
# Project User Roles
|
||||
# -------------------------------------------------------------------------
|
||||
# $SERVICE_TENANT_NAME tricircle service
|
||||
|
||||
function create_tricircle_accounts {
|
||||
if [[ "$ENABLED_SERVICES" =~ "t-api" ]]; then
|
||||
create_service_user "tricircle" "admin"
|
||||
local tricircle_api=$(get_or_create_service "tricircle" \
|
||||
"tricircle" "Cross Neutron Networking Automation Service")
|
||||
|
||||
local tricircle_api_url="$SERVICE_PROTOCOL://$TRICIRCLE_API_HOST/tricircle/v1.0"
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_WSGI" == "False" ]]; then
|
||||
tricircle_api_url="$SERVICE_PROTOCOL://$TRICIRCLE_API_HOST:$TRICIRCLE_API_PORT/v1.0/"
|
||||
fi
|
||||
|
||||
get_or_create_endpoint $tricircle_api \
|
||||
"$CENTRAL_REGION_NAME" \
|
||||
"$tricircle_api_url" \
|
||||
"$tricircle_api_url" \
|
||||
"$tricircle_api_url"
|
||||
fi
|
||||
}
|
||||
|
||||
# create_tricircle_cache_dir() - Set up cache dir for tricircle
|
||||
function create_tricircle_cache_dir {
|
||||
|
||||
# Delete existing dir
|
||||
sudo rm -rf $TRICIRCLE_AUTH_CACHE_DIR
|
||||
sudo mkdir -p $TRICIRCLE_AUTH_CACHE_DIR
|
||||
sudo chown `whoami` $TRICIRCLE_AUTH_CACHE_DIR
|
||||
}
|
||||
|
||||
# common config-file configuration for tricircle services
|
||||
function init_common_tricircle_conf {
|
||||
local conf_file=$1
|
||||
|
||||
touch $conf_file
|
||||
iniset $conf_file DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
|
||||
iniset $conf_file DEFAULT verbose True
|
||||
iniset $conf_file DEFAULT use_syslog $SYSLOG
|
||||
iniset $conf_file DEFAULT tricircle_db_connection `database_connection_url tricircle`
|
||||
|
||||
iniset $conf_file client auth_url http://$KEYSTONE_SERVICE_HOST/identity
|
||||
iniset $conf_file client identity_url http://$KEYSTONE_SERVICE_HOST/identity/v3
|
||||
iniset $conf_file client admin_username admin
|
||||
iniset $conf_file client admin_password $ADMIN_PASSWORD
|
||||
iniset $conf_file client admin_tenant demo
|
||||
iniset $conf_file client auto_refresh_endpoint True
|
||||
iniset $conf_file client top_region_name $CENTRAL_REGION_NAME
|
||||
|
||||
iniset $conf_file oslo_concurrency lock_path $TRICIRCLE_STATE_PATH/lock
|
||||
iniset_rpc_backend tricircle $conf_file
|
||||
}
|
||||
|
||||
function init_local_nova_conf {
|
||||
iniset $NOVA_CONF glance api_servers http://$KEYSTONE_SERVICE_HOST/image
|
||||
iniset $NOVA_CONF placement os_region_name $CENTRAL_REGION_NAME
|
||||
}
|
||||
|
||||
# common config-file configuration for local Neutron(s)
|
||||
function init_local_neutron_conf {
|
||||
|
||||
iniset $NEUTRON_CONF DEFAULT core_plugin tricircle.network.local_plugin.TricirclePlugin
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_CELL" == "True" ]]; then
|
||||
iniset $NEUTRON_CONF nova region_name $CENTRAL_REGION_NAME
|
||||
fi
|
||||
|
||||
iniset $NEUTRON_CONF client auth_url http://$KEYSTONE_SERVICE_HOST/identity
|
||||
iniset $NEUTRON_CONF client identity_url http://$KEYSTONE_SERVICE_HOST/identity/v3
|
||||
iniset $NEUTRON_CONF client admin_username admin
|
||||
iniset $NEUTRON_CONF client admin_password $ADMIN_PASSWORD
|
||||
iniset $NEUTRON_CONF client admin_tenant demo
|
||||
iniset $NEUTRON_CONF client auto_refresh_endpoint True
|
||||
iniset $NEUTRON_CONF client top_pod_name $CENTRAL_REGION_NAME
|
||||
|
||||
iniset $NEUTRON_CONF tricircle real_core_plugin neutron.plugins.ml2.plugin.Ml2Plugin
|
||||
iniset $NEUTRON_CONF tricircle local_region_name $REGION_NAME
|
||||
iniset $NEUTRON_CONF tricircle central_neutron_url http://$KEYSTONE_SERVICE_HOST:$TRICIRCLE_NEUTRON_PORT
|
||||
}
|
||||
|
||||
# Set the environment variables for local Neutron(s)
|
||||
function init_local_neutron_variables {
|
||||
|
||||
export Q_USE_PROVIDERNET_FOR_PUBLIC=True
|
||||
|
||||
Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=${Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS:-}
|
||||
Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS=${Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS:-}
|
||||
# if VLAN options were not set in local.conf, use default VLAN bridge
|
||||
# and VLAN options
|
||||
if [ "$Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS" == "" ]; then
|
||||
|
||||
export TRICIRCLE_ADD_DEFAULT_BRIDGES=True
|
||||
|
||||
local vlan_option="bridge:$TRICIRCLE_DEFAULT_VLAN_RANGE"
|
||||
local ext_option="extern:$TRICIRCLE_DEFAULT_EXT_RANGE"
|
||||
local vlan_ranges=(network_vlan_ranges=$vlan_option,$ext_option)
|
||||
Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=$vlan_ranges
|
||||
Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS="vni_ranges=$TRICIRCLE_DEFAULT_VXLAN_RANGE"
|
||||
Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS="flat_networks=$TRICIRCLE_DEFAULT_FLAT_NETWORKS"
|
||||
|
||||
local vlan_mapping="bridge:$TRICIRCLE_DEFAULT_VLAN_BRIDGE"
|
||||
local ext_mapping="extern:$TRICIRCLE_DEFAULT_EXT_BRIDGE"
|
||||
OVS_BRIDGE_MAPPINGS=$vlan_mapping,$ext_mapping
|
||||
|
||||
fi
|
||||
if [ "$TRICIRCLE_ENABLE_TRUNK" == "True" ]; then
|
||||
_neutron_service_plugin_class_add trunk
|
||||
fi
|
||||
}
|
||||
|
||||
function add_default_bridges {
|
||||
|
||||
if [ "$TRICIRCLE_ADD_DEFAULT_BRIDGES" == "True" ]; then
|
||||
_neutron_ovs_base_add_bridge $TRICIRCLE_DEFAULT_VLAN_BRIDGE
|
||||
_neutron_ovs_base_add_bridge $TRICIRCLE_DEFAULT_EXT_BRIDGE
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_tricircle_api {
|
||||
|
||||
if is_service_enabled t-api ; then
|
||||
echo "Configuring Tricircle API"
|
||||
|
||||
init_common_tricircle_conf $TRICIRCLE_API_CONF
|
||||
|
||||
setup_colorized_logging $TRICIRCLE_API_CONF DEFAULT tenant_name
|
||||
|
||||
if is_service_enabled keystone; then
|
||||
|
||||
create_tricircle_cache_dir
|
||||
|
||||
# Configure auth token middleware
|
||||
configure_auth_token_middleware $TRICIRCLE_API_CONF tricircle \
|
||||
$TRICIRCLE_AUTH_CACHE_DIR
|
||||
|
||||
else
|
||||
iniset $TRICIRCLE_API_CONF DEFAULT auth_strategy noauth
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
# configure_tricircle_api_wsgi() - Set WSGI config files
|
||||
function configure_tricircle_api_wsgi {
|
||||
local tricircle_api_apache_conf
|
||||
local venv_path=""
|
||||
local tricircle_bin_dir=""
|
||||
local tricircle_ssl_listen="#"
|
||||
|
||||
tricircle_bin_dir=$(get_python_exec_prefix)
|
||||
tricircle_api_apache_conf=$(apache_site_config_for tricircle-api)
|
||||
|
||||
if is_ssl_enabled_service "tricircle-api"; then
|
||||
tricircle_ssl_listen=""
|
||||
tricircle_ssl="SSLEngine On"
|
||||
tricircle_certfile="SSLCertificateFile $TRICIRCLE_SSL_CERT"
|
||||
tricircle_keyfile="SSLCertificateKeyFile $TRICIRCLE_SSL_KEY"
|
||||
fi
|
||||
|
||||
# configure venv bin if VENV is used
|
||||
if [[ ${USE_VENV} = True ]]; then
|
||||
venv_path="python-path=${PROJECT_VENV["tricircle"]}/lib/$(python_version)/site-packages"
|
||||
tricircle_bin_dir=${PROJECT_VENV["tricircle"]}/bin
|
||||
fi
|
||||
|
||||
sudo cp $TRICIRCLE_API_APACHE_TEMPLATE $tricircle_api_apache_conf
|
||||
sudo sed -e "
|
||||
s|%TRICIRCLE_BIN%|$tricircle_bin_dir|g;
|
||||
s|%PUBLICPORT%|$TRICIRCLE_API_PORT|g;
|
||||
s|%APACHE_NAME%|$APACHE_NAME|g;
|
||||
s|%PUBLICWSGI%|$tricircle_bin_dir/tricircle-api-wsgi|g;
|
||||
s|%SSLENGINE%|$tricircle_ssl|g;
|
||||
s|%SSLCERTFILE%|$tricircle_certfile|g;
|
||||
s|%SSLKEYFILE%|$tricircle_keyfile|g;
|
||||
s|%SSLLISTEN%|$tricircle_ssl_listen|g;
|
||||
s|%USER%|$STACK_USER|g;
|
||||
s|%VIRTUALENV%|$venv_path|g
|
||||
s|%APIWORKERS%|$API_WORKERS|g
|
||||
" -i $tricircle_api_apache_conf
|
||||
}
|
||||
|
||||
# start_tricircle_api_wsgi() - Start the API processes ahead of other things
|
||||
function start_tricircle_api_wsgi {
|
||||
enable_apache_site tricircle-api
|
||||
restart_apache_server
|
||||
tail_log tricircle-api /var/log/$APACHE_NAME/tricircle-api.log
|
||||
|
||||
echo "Waiting for tricircle-api to start..."
|
||||
if ! wait_for_service $SERVICE_TIMEOUT $TRICIRCLE_API_PROTOCOL://$TRICIRCLE_API_HOST/tricircle; then
|
||||
die $LINENO "tricircle-api did not start"
|
||||
fi
|
||||
}
|
||||
|
||||
# stop_tricircle_api_wsgi() - Disable the api service and stop it.
|
||||
function stop_tricircle_api_wsgi {
|
||||
disable_apache_site tricircle-api
|
||||
restart_apache_server
|
||||
}
|
||||
|
||||
# cleanup_tricircle_api_wsgi() - Remove residual data files, anything left over from previous
|
||||
# runs that a clean run would need to clean up
|
||||
function cleanup_tricircle_api_wsgi {
|
||||
sudo rm -f $(apache_site_config_for tricircle-api)
|
||||
}
|
||||
|
||||
function configure_tricircle_xjob {
|
||||
if is_service_enabled t-job ; then
|
||||
echo "Configuring Tricircle xjob"
|
||||
|
||||
init_common_tricircle_conf $TRICIRCLE_XJOB_CONF
|
||||
|
||||
setup_colorized_logging $TRICIRCLE_XJOB_CONF DEFAULT
|
||||
fi
|
||||
}
|
||||
|
||||
function start_central_nova_server {
|
||||
local local_region=$1
|
||||
local central_region=$2
|
||||
local central_neutron_port=$3
|
||||
|
||||
echo "Configuring Nova API for Tricircle to work with cell V2"
|
||||
|
||||
iniset $NOVA_CONF neutron region_name $central_region
|
||||
iniset $NOVA_CONF neutron url "$Q_PROTOCOL://$SERVICE_HOST:$central_neutron_port"
|
||||
|
||||
# Here we create new endpoints for central region instead of updating the
|
||||
# endpoints in local region because at the end of devstack, the script tries
|
||||
# to query the nova api in local region to check whether the nova-compute
|
||||
# service is running. If we update the endpoint region from local region to
|
||||
# central region, the check will fail and thus devstack fails
|
||||
nova_url=$(openstack endpoint list --service compute --interface public --region $local_region -c URL -f value)
|
||||
get_or_create_endpoint "compute" "$central_region" "$nova_url"
|
||||
nova_legacy_url=$(openstack endpoint list --service compute_legacy --interface public --region $local_region -c URL -f value)
|
||||
get_or_create_endpoint "compute_legacy" "$central_region" "$nova_legacy_url"
|
||||
|
||||
central_image_endpoint_id=$(openstack endpoint list --service image --interface public --region $central_region -c ID -f value)
|
||||
if [[ -z "$central_image_endpoint_id" ]]; then
|
||||
glance_url=$(openstack endpoint list --service image --interface public --region $local_region -c URL -f value)
|
||||
get_or_create_endpoint "image" "$central_region" "$glance_url"
|
||||
fi
|
||||
|
||||
place_endpoint_id=$(openstack endpoint list --service placement --interface public --region $local_region -c ID -f value)
|
||||
openstack endpoint set --region $central_region $place_endpoint_id
|
||||
|
||||
restart_service devstack@n-api
|
||||
restart_apache_server
|
||||
}
|
||||
|
||||
function start_central_neutron_server {
|
||||
local server_index=0
|
||||
local region_name=$1
|
||||
local q_port=$2
|
||||
|
||||
get_or_create_service "neutron" "network" "Neutron Service"
|
||||
get_or_create_endpoint "network" \
|
||||
"$region_name" \
|
||||
"$Q_PROTOCOL://$SERVICE_HOST:$q_port/" \
|
||||
"$Q_PROTOCOL://$SERVICE_HOST:$q_port/" \
|
||||
"$Q_PROTOCOL://$SERVICE_HOST:$q_port/"
|
||||
|
||||
# reconfigure central neutron server to use our own central plugin
|
||||
echo "Configuring central Neutron plugin for Tricircle"
|
||||
|
||||
cp $NEUTRON_CONF $NEUTRON_CONF.$server_index
|
||||
iniset $NEUTRON_CONF.$server_index database connection `database_connection_url $Q_DB_NAME$server_index`
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT bind_port $q_port
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT core_plugin "tricircle.network.central_plugin.TricirclePlugin"
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT service_plugins ""
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT tricircle_db_connection `database_connection_url tricircle`
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT notify_nova_on_port_data_changes False
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT notify_nova_on_port_status_changes False
|
||||
iniset $NEUTRON_CONF.$server_index client admin_username admin
|
||||
iniset $NEUTRON_CONF.$server_index client admin_password $ADMIN_PASSWORD
|
||||
iniset $NEUTRON_CONF.$server_index client admin_tenant demo
|
||||
iniset $NEUTRON_CONF.$server_index client auto_refresh_endpoint True
|
||||
iniset $NEUTRON_CONF.$server_index client top_region_name $CENTRAL_REGION_NAME
|
||||
|
||||
local service_plugins=''
|
||||
if [ "$TRICIRCLE_ENABLE_TRUNK" == "True" ]; then
|
||||
service_plugins+=",tricircle.network.central_trunk_plugin.TricircleTrunkPlugin"
|
||||
fi
|
||||
if [ "$TRICIRCLE_ENABLE_SFC" == "True" ]; then
|
||||
service_plugins+=",networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,tricircle.network.central_sfc_plugin.TricircleSfcPlugin"
|
||||
iniset $NEUTRON_CONF.$server_index sfc drivers tricircle_sfc
|
||||
iniset $NEUTRON_CONF.$server_index flowclassifier drivers tricircle_fc
|
||||
fi
|
||||
|
||||
if [ "$TRICIRCLE_ENABLE_QOS" == "True" ]; then
|
||||
service_plugins+=",tricircle.network.central_qos_plugin.TricircleQosPlugin"
|
||||
fi
|
||||
|
||||
if [ -n service_plugins ]; then
|
||||
service_plugins=$(echo $service_plugins| sed 's/^,//')
|
||||
iniset $NEUTRON_CONF.$server_index DEFAULT service_plugins "$service_plugins"
|
||||
fi
|
||||
|
||||
local type_drivers=''
|
||||
local tenant_network_types=''
|
||||
if [ "$Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS" != "" ]; then
|
||||
type_drivers+=,vxlan
|
||||
tenant_network_types+=,vxlan
|
||||
iniset $NEUTRON_CONF.$server_index tricircle vni_ranges `echo $Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS | awk -F= '{print $2}'`
|
||||
fi
|
||||
if [ "$Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS" != "" ]; then
|
||||
type_drivers+=,vlan
|
||||
tenant_network_types+=,vlan
|
||||
iniset $NEUTRON_CONF.$server_index tricircle network_vlan_ranges `echo $Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS | awk -F= '{print $2}'`
|
||||
fi
|
||||
if [ "Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS" != "" ]; then
|
||||
type_drivers+=,flat
|
||||
tenant_network_types+=,flat
|
||||
iniset $NEUTRON_CONF.$server_index tricircle flat_networks `echo $Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS | awk -F= '{print $2}'`
|
||||
fi
|
||||
type_drivers+=,local
|
||||
tenant_network_types+=,local
|
||||
# remove the heading ","
|
||||
type_drivers=$(echo $type_drivers | sed 's/^,//')
|
||||
tenant_network_types=$(echo $tenant_network_types | sed 's/^,//')
|
||||
|
||||
iniset $NEUTRON_CONF.$server_index tricircle type_drivers $type_drivers
|
||||
iniset $NEUTRON_CONF.$server_index tricircle tenant_network_types $tenant_network_types
|
||||
iniset $NEUTRON_CONF.$server_index tricircle enable_api_gateway False
|
||||
|
||||
# reconfigure api-paste.ini in central neutron server
|
||||
local API_PASTE_INI=$NEUTRON_CONF_DIR/api-paste.ini
|
||||
sudo sed -e "
|
||||
/^keystone.*neutronapiapp/s/neutronapiapp/request_source &/;
|
||||
/app:neutronapiapp/i\[filter:request_source]\npaste.filter_factory = tricircle.common.request_source:RequestSource.factory\n
|
||||
" -i $API_PASTE_INI
|
||||
|
||||
# default value of bridge_network_type is vxlan
|
||||
|
||||
if [ "$TRICIRCLE_ENABLE_QOS" == "True" ]; then
|
||||
local p_exist=$(grep "^extension_drivers" /$Q_PLUGIN_CONF_FILE)
|
||||
if [[ $p_exist != "" ]];then
|
||||
if ! [[ $(echo $p_exist | grep "qos") ]];then
|
||||
sed -i "s/$p_exist/$p_exist,qos/g" /$Q_PLUGIN_CONF_FILE
|
||||
fi
|
||||
else
|
||||
sed -i "s/^\[ml2\]/\[ml2\]\nextension_drivers = qos/g" /$Q_PLUGIN_CONF_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
recreate_database $Q_DB_NAME$server_index
|
||||
$NEUTRON_BIN_DIR/neutron-db-manage --config-file $NEUTRON_CONF.$server_index --config-file /$Q_PLUGIN_CONF_FILE upgrade head
|
||||
|
||||
enable_service q-svc$server_index
|
||||
run_process q-svc$server_index "$NEUTRON_BIN_DIR/neutron-server --config-file $NEUTRON_CONF.$server_index --config-file /$Q_PLUGIN_CONF_FILE"
|
||||
}
|
||||
|
||||
# install_tricircleclient() - Collect source and prepare
|
||||
function install_tricircleclient {
|
||||
if use_library_from_git "python-tricircleclient"; then
|
||||
git_clone_by_name "python-tricircleclient"
|
||||
setup_dev_lib "python-tricircleclient"
|
||||
else
|
||||
pip_install_gr tricircleclient
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# if the plugin is enabled to run, that means the Tricircle is enabled
|
||||
# by default, so no need to judge the variable Q_ENABLE_TRICIRCLE
|
||||
|
||||
if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
|
||||
echo_summary "Tricircle pre-install"
|
||||
|
||||
# init_local_neutron_variables before installation
|
||||
init_local_neutron_variables
|
||||
|
||||
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
|
||||
echo_summary "Installing Tricircle"
|
||||
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
||||
|
||||
echo_summary "Configuring Tricircle"
|
||||
install_tricircleclient
|
||||
export NEUTRON_CREATE_INITIAL_NETWORKS=False
|
||||
sudo install -d -o $STACK_USER -m 755 $TRICIRCLE_CONF_DIR
|
||||
|
||||
if [[ "$TRICIRCLE_START_SERVICES" == "True" ]]; then
|
||||
enable_service t-api t-job
|
||||
configure_tricircle_api
|
||||
configure_tricircle_xjob
|
||||
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_WSGI" == "True" ]]; then
|
||||
configure_tricircle_api_wsgi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo export PYTHONPATH=\$PYTHONPATH:$TRICIRCLE_DIR >> $RC_DIR/.localrc.auto
|
||||
|
||||
setup_package $TRICIRCLE_DIR -e
|
||||
|
||||
if [[ "$TRICIRCLE_START_SERVICES" == "True" ]]; then
|
||||
recreate_database tricircle
|
||||
tricircle-db-manage --config-file="$TRICIRCLE_API_CONF" db_sync
|
||||
|
||||
if is_service_enabled q-svc ; then
|
||||
start_central_neutron_server $CENTRAL_REGION_NAME $TRICIRCLE_NEUTRON_PORT
|
||||
fi
|
||||
fi
|
||||
|
||||
# update the local neutron.conf after the central Neutron has started
|
||||
init_local_neutron_conf
|
||||
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_CELL" == "True" ]]; then
|
||||
# update the local nova.conf
|
||||
init_local_nova_conf
|
||||
else
|
||||
iniset $NOVA_CONF glance region_name $REGION_NAME
|
||||
fi
|
||||
|
||||
# add default bridges br-vlan, br-ext if needed, ovs-vsctl
|
||||
# is just being installed before this stage
|
||||
add_default_bridges
|
||||
|
||||
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
||||
echo_summary "Initializing Tricircle Service"
|
||||
|
||||
if [[ ${USE_VENV} = True ]]; then
|
||||
PROJECT_VENV["tricircle"]=${TRICIRCLE_DIR}.venv
|
||||
TRICIRCLE_BIN_DIR=${PROJECT_VENV["tricircle"]}/bin
|
||||
else
|
||||
TRICIRCLE_BIN_DIR=$(get_python_exec_prefix)
|
||||
fi
|
||||
|
||||
if is_service_enabled t-api; then
|
||||
|
||||
create_tricircle_accounts
|
||||
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_WSGI" == "True" ]]; then
|
||||
start_tricircle_api_wsgi
|
||||
else
|
||||
run_process t-api "$TRICIRCLE_BIN_DIR/tricircle-api --config-file $TRICIRCLE_API_CONF"
|
||||
fi
|
||||
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_CELL" == "True" && "$TRICIRCLE_START_SERVICES" == "True" ]]; then
|
||||
start_central_nova_server $REGION_NAME $CENTRAL_REGION_NAME $TRICIRCLE_NEUTRON_PORT
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled t-job; then
|
||||
run_process t-job "$TRICIRCLE_BIN_DIR/tricircle-xjob --config-file $TRICIRCLE_XJOB_CONF"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$1" == "unstack" ]]; then
|
||||
|
||||
if is_service_enabled t-api; then
|
||||
if [[ "$TRICIRCLE_DEPLOY_WITH_WSGI" == "True" ]]; then
|
||||
stop_tricircle_api_wsgi
|
||||
clean_tricircle_api_wsgi
|
||||
else
|
||||
stop_process t-api
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled t-job; then
|
||||
stop_process t-job
|
||||
fi
|
||||
|
||||
if is_service_enabled q-svc0; then
|
||||
stop_process q-svc0
|
||||
fi
|
||||
fi
|
@ -1,50 +0,0 @@
|
||||
# Git information
|
||||
TRICIRCLE_REPO=${TRICIRCLE_REPO:-https://opendev.org/openstack/tricircle/}
|
||||
TRICIRCLE_DIR=$DEST/tricircle
|
||||
TRICIRCLE_BRANCH=${TRICIRCLE_BRANCH:-master}
|
||||
|
||||
# common variables
|
||||
CENTRAL_REGION_NAME=${CENTRAL_REGION_NAME:-CentralRegion}
|
||||
TRICIRCLE_NEUTRON_PORT=${TRICIRCLE_NEUTRON_PORT:-20001}
|
||||
TRICIRCLE_START_SERVICES=${TRICIRCLE_START_SERVICES:-True}
|
||||
TRICIRCLE_DEPLOY_WITH_WSGI=${TRICIRCLE_DEPLOY_WITH_WSGI:-True}
|
||||
TRICIRCLE_DEPLOY_WITH_CELL=${TRICIRCLE_DEPLOY_WITH_CELL:-False}
|
||||
|
||||
# extensions working with tricircle
|
||||
TRICIRCLE_ENABLE_TRUNK=${TRICIRCLE_ENABLE_TRUNK:-False}
|
||||
TRICIRCLE_ENABLE_SFC=${TRICIRCLE_ENABLE_SFC:-False}
|
||||
TRICIRCLE_ENABLE_QOS=${TRICIRCLE_ENABLE_QOS:-False}
|
||||
|
||||
# these default settings are used for devstack based gate/check jobs
|
||||
TRICIRCLE_DEFAULT_VLAN_BRIDGE=${TRICIRCLE_DEFAULT_VLAN_BRIDGE:-br-vlan}
|
||||
TRICIRCLE_DEFAULT_VLAN_RANGE=${TRICIRCLE_DEFAULT_VLAN_RANGE:-101:150}
|
||||
TRICIRCLE_DEFAULT_EXT_BRIDGE=${TRICIRCLE_DEFAULT_EXT_BRIDGE:-br-ext}
|
||||
TRICIRCLE_DEFAULT_EXT_RANGE=${TRICIRCLE_DEFAULT_EXT_RANGE:-151:200}
|
||||
TRICIRCLE_ADD_DEFAULT_BRIDGES=${TRICIRCLE_ADD_DEFAULT_BRIDGES:-False}
|
||||
TRICIRCLE_DEFAULT_VXLAN_RANGE=${TRICIRCLE_DEFAULT_VXLAN_RANGE:-1001:2000}
|
||||
TRICIRCLE_DEFAULT_FLAT_NETWORKS=${TRICIRCLE_DEFAULT_FLAT_NETWORKS:-bridge,extern}
|
||||
|
||||
TRICIRCLE_CONF_DIR=${TRICIRCLE_CONF_DIR:-/etc/tricircle}
|
||||
TRICIRCLE_STATE_PATH=${TRICIRCLE_STATE_PATH:-/var/lib/tricircle}
|
||||
|
||||
# tricircle rest admin api
|
||||
TRICIRCLE_API=$TRICIRCLE_DIR/tricircle/cmd/api.py
|
||||
TRICIRCLE_API_CONF=$TRICIRCLE_CONF_DIR/api.conf
|
||||
TRICIRCLE_API_APACHE_TEMPLATE=$TRICIRCLE_DIR/devstack/apache-tricircle-api.template
|
||||
|
||||
TRICIRCLE_API_LISTEN_ADDRESS=${TRICIRCLE_API_LISTEN_ADDRESS:-0.0.0.0}
|
||||
TRICIRCLE_API_HOST=${TRICIRCLE_API_HOST:-$SERVICE_HOST}
|
||||
TRICIRCLE_API_PORT=${TRICIRCLE_API_PORT:-19999}
|
||||
TRICIRCLE_API_PROTOCOL=${TRICIRCLE_API_PROTOCOL:-$SERVICE_PROTOCOL}
|
||||
|
||||
# tricircle xjob
|
||||
TRICIRCLE_XJOB_CONF=$TRICIRCLE_CONF_DIR/xjob.conf
|
||||
|
||||
TRICIRCLE_AUTH_CACHE_DIR=${TRICIRCLE_AUTH_CACHE_DIR:-/var/cache/tricircle}
|
||||
|
||||
export PYTHONPATH=$PYTHONPATH:$TRICIRCLE_DIR
|
||||
|
||||
# Set up default directories for client
|
||||
GITREPO["python-tricircleclient"]=${TRICIRCLE_PYTHONCLIENT_REPO:-${GIT_BASE}/openstack/python-tricircleclient.git}
|
||||
GITBRANCH["python-tricircleclient"]=${TRICIRCLE_PYTHONCLIENT_BRANCH:-master}
|
||||
GITDIR["python-tricircleclient"]=$DEST/python-tricircleclient
|
@ -1,135 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script name: verify_cross_pod_install.sh
|
||||
# This script is to verify the installation of Tricircle in cross pod L3 networking.
|
||||
# It verify both east-west and north-south networks.
|
||||
#
|
||||
# In this script, there are some parameters you need to consider before running it.
|
||||
#
|
||||
# 1, Post URL whether is 127.0.0.1 or something else,
|
||||
# 2, This script creates 2 subnets 10.0.1.0/24 and 10.0.2.0/24, Change these if needed.
|
||||
# 3, This script creates external subnet ext-net 10.50.11.0/26, Change it according to
|
||||
# your own environment.
|
||||
# 4, The floating ip attached to the VM with ip 10.0.2.3, created by the script
|
||||
# "verify_cross_pod_install.sh", modify it according to your own environment.
|
||||
#
|
||||
# Change the parameters according to your own environment.
|
||||
# Finally, execute "verify_cross_pod_install.sh" in the Node1.
|
||||
#
|
||||
# Author: Pengfei Shi <shipengfei92@gmail.com>
|
||||
#
|
||||
|
||||
set -o xtrace
|
||||
|
||||
TEST_DIR=$(pwd)
|
||||
echo "Test work directory is $TEST_DIR."
|
||||
|
||||
if [ ! -r admin-openrc.sh ];then
|
||||
set -o xtrace
|
||||
echo "Your work directory doesn't have admin-openrc.sh,"
|
||||
echo "Please check whether you are in tricircle/devstack/ or not and run this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Beginning the verify testing..."
|
||||
|
||||
echo "Import client environment variables:"
|
||||
source $TEST_DIR/admin-openrc.sh
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Endpoint *"
|
||||
echo "******************************"
|
||||
|
||||
echo "List openstack endpoint:"
|
||||
openstack --debug endpoint list
|
||||
|
||||
token=$(openstack token issue | awk 'NR==5 {print $4}')
|
||||
|
||||
echo $token
|
||||
|
||||
openstack multiregion networking pod create --region-name RegionOne
|
||||
|
||||
openstack multiregion networking pod create --region-name Pod1 --availability-zone az1
|
||||
|
||||
openstack multiregion networking pod create --region-name Pod2 --availability-zone az2
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Nova *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Show nova aggregate:"
|
||||
nova aggregate-list
|
||||
|
||||
neutron net-create --availability-zone-hint az1 net1
|
||||
|
||||
neutron net-create --availability-zone-hint az2 net2
|
||||
|
||||
echo "Create external network ext-net:"
|
||||
neutron net-create --router:external --provider:network_type vlan --provider:physical_network extern --availability-zone-hint Pod2 ext-net
|
||||
|
||||
echo "Create test flavor:"
|
||||
nova flavor-create test 1 1024 10 1
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Neutron *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Create external subnet with floating ips:"
|
||||
neutron subnet-create --name ext-subnet --disable-dhcp ext-net 10.50.11.0/26 --allocation-pool start=10.50.11.30,end=10.50.11.50 --gateway 10.50.11.1
|
||||
|
||||
echo "Create router for subnets:"
|
||||
neutron router-create router
|
||||
|
||||
echo "Set router external gateway:"
|
||||
neutron router-gateway-set router ext-net
|
||||
|
||||
echo "Create net1 in Node1:"
|
||||
neutron subnet-create net1 10.0.1.0/24
|
||||
|
||||
echo "Create net2 in Node2:"
|
||||
neutron subnet-create net2 10.0.2.0/24
|
||||
|
||||
net1_id=$(neutron net-list |grep net1 | awk '{print $2}')
|
||||
net2_id=$(neutron net-list |grep net2 | awk '{print $2}')
|
||||
image_id=$(glance image-list |awk 'NR==4 {print $2}')
|
||||
|
||||
echo "Boot vm1 in az1:"
|
||||
nova boot --flavor 1 --image $image_id --nic net-id=$net1_id --availability-zone az1 vm1
|
||||
echo "Boot vm2 in az2:"
|
||||
nova boot --flavor 1 --image $image_id --nic net-id=$net2_id --availability-zone az2 vm2
|
||||
|
||||
subnet1_id=$(neutron net-list |grep net1 |awk '{print $6}')
|
||||
subnet2_id=$(neutron net-list |grep net2 |awk '{print $6}')
|
||||
|
||||
echo "Add interface of subnet1:"
|
||||
neutron router-interface-add router $subnet1_id
|
||||
echo "Add interface of subnet2:"
|
||||
neutron router-interface-add router $subnet2_id
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify VNC connection *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Get the VNC url of vm1:"
|
||||
nova --os-region-name Pod1 get-vnc-console vm1 novnc
|
||||
echo "Get the VNC url of vm2:"
|
||||
nova --os-region-name Pod2 get-vnc-console vm2 novnc
|
||||
|
||||
echo "**************************************"
|
||||
echo "* Verify External network *"
|
||||
echo "**************************************"
|
||||
|
||||
echo "Create floating ip:"
|
||||
neutron floatingip-create ext-net
|
||||
|
||||
echo "Show floating ips:"
|
||||
neutron floatingip-list
|
||||
|
||||
echo "Show neutron ports:"
|
||||
neutron port-list
|
||||
|
||||
floatingip_id=$(neutron floatingip-list | awk 'NR==4 {print $2}')
|
||||
port_id=$(neutron port-list |grep 10.0.2.3 |awk '{print $2}')
|
||||
|
||||
echo "Associate floating ip:"
|
||||
neutron floatingip-associate $floatingip_id $port_id
|
@ -1,92 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script name: verify_top_install.sh
|
||||
# This script is to verify the installation of Tricircle in Top OpenStack.
|
||||
#
|
||||
# In this script, there are some parameters you need to consider before running it.
|
||||
#
|
||||
# 1, Post URL whether is 127.0.0.1 or something else,
|
||||
# 2, This script create a subnet called net1 10.0.0.0/24, Change these if needed.
|
||||
#
|
||||
# Change the parameters according to your own environment.
|
||||
# Execute "verify_top_install.sh" in the top OpenStack
|
||||
#
|
||||
# Author: Pengfei Shi <shipengfei92@gmail.com>
|
||||
#
|
||||
|
||||
set -o xtrace
|
||||
|
||||
TEST_DIR=$(pwd)
|
||||
echo "Test work directory is $TEST_DIR."
|
||||
|
||||
if [ ! -r admin-openrc.sh ];then
|
||||
set -o xtrace
|
||||
echo "Your work directory doesn't have admin-openrc.sh,"
|
||||
echo "Please check whether you are in tricircle/devstack/ or not and run this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Beginning the verify testing..."
|
||||
|
||||
echo "Import client environment variables:"
|
||||
source $TEST_DIR/admin-openrc.sh
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Endpoint *"
|
||||
echo "******************************"
|
||||
|
||||
echo "List openstack endpoint:"
|
||||
|
||||
openstack --debug endpoint list
|
||||
|
||||
token=$(openstack token issue | awk 'NR==5 {print $4}')
|
||||
|
||||
echo $token
|
||||
|
||||
openstack multiregion networking pod create --region-name RegionOne
|
||||
|
||||
openstack multiregion networking pod create --region-name Pod1 --availability-zone az1
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Nova *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Show nova aggregate:"
|
||||
nova --debug aggregate-list
|
||||
|
||||
echo "Create test flavor:"
|
||||
nova --debug flavor-create test 1 1024 10 1
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Neutron *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Create net1:"
|
||||
neutron --debug net-create net1
|
||||
|
||||
echo "Create subnet of net1:"
|
||||
neutron --debug subnet-create net1 10.0.0.0/24
|
||||
|
||||
image_id=$(glance image-list |awk 'NR==4 {print $2}')
|
||||
net_id=$(neutron net-list|grep net1 |awk '{print $2}')
|
||||
|
||||
echo "Boot vm1 in az1:"
|
||||
nova --debug boot --flavor 1 --image $image_id --nic net-id=$net_id --availability-zone az1 vm1
|
||||
|
||||
echo "******************************"
|
||||
echo "* Verify Cinder *"
|
||||
echo "******************************"
|
||||
|
||||
echo "Create a volume in az1:"
|
||||
cinder --debug create --availability-zone=az1 1
|
||||
|
||||
echo "Show volume list:"
|
||||
cinder --debug list
|
||||
volume_id=$(cinder list |grep lvmdriver-1 | awk '{print $2}')
|
||||
|
||||
echo "Show detailed volume info:"
|
||||
cinder --debug show $volume_id
|
||||
|
||||
echo "Delete test volume:"
|
||||
cinder --debug delete $volume_id
|
||||
cinder --debug list
|
File diff suppressed because it is too large
Load Diff
@ -1,25 +0,0 @@
|
||||
================================
|
||||
Command-Line Interface Reference
|
||||
================================
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
Follow OpenStack CLI format ::
|
||||
|
||||
openstack [<global-options>] <command> [<command-arguments>]
|
||||
|
||||
The CLI for Tricircle can be executed as follows ::
|
||||
|
||||
openstack multiregion networking <command> [<command-arguments>]
|
||||
|
||||
All commands will issue request to Tricircle Admin API.
|
||||
|
||||
|
||||
Management commands
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
tricircle-status
|
@ -1,9 +0,0 @@
|
||||
=====================
|
||||
Tricircle Admin Guide
|
||||
=====================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
|
||||
api_v1
|
||||
cli
|
@ -1,78 +0,0 @@
|
||||
================
|
||||
tricircle-status
|
||||
================
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
::
|
||||
|
||||
tricircle-status <category> <command> [<args>]
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
:program:`tricircle-status` is a tool that provides routines for checking the
|
||||
status of a Tricircle deployment.
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
The standard pattern for executing a :program:`tricircle-status` command is::
|
||||
|
||||
tricircle-status <category> <command> [<args>]
|
||||
|
||||
Run without arguments to see a list of available command categories::
|
||||
|
||||
tricircle-status
|
||||
|
||||
Categories are:
|
||||
|
||||
* ``upgrade``
|
||||
|
||||
Detailed descriptions are below.
|
||||
|
||||
You can also run with a category argument such as ``upgrade`` to see a list of
|
||||
all commands in that category::
|
||||
|
||||
tricircle-status upgrade
|
||||
|
||||
These sections describe the available categories and arguments for
|
||||
:program:`tricircle-status`.
|
||||
|
||||
Upgrade
|
||||
~~~~~~~
|
||||
|
||||
.. _tricircle-status-checks:
|
||||
|
||||
``tricircle-status upgrade check``
|
||||
Performs a release-specific readiness check before restarting services with
|
||||
new code. This command expects to have complete configuration and access
|
||||
to databases and services.
|
||||
|
||||
**Return Codes**
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 80
|
||||
:header-rows: 1
|
||||
|
||||
* - Return code
|
||||
- Description
|
||||
* - 0
|
||||
- All upgrade readiness checks passed successfully and there is nothing
|
||||
to do.
|
||||
* - 1
|
||||
- At least one check encountered an issue and requires further
|
||||
investigation. This is considered a warning but the upgrade may be OK.
|
||||
* - 2
|
||||
- There was an upgrade status check failure that needs to be
|
||||
investigated. This should be considered something that stops an
|
||||
upgrade.
|
||||
* - 255
|
||||
- An unexpected error occurred.
|
||||
|
||||
**History of Checks**
|
||||
|
||||
**6.0.0 (Stein)**
|
||||
|
||||
* Placeholder to be filled in with checks as they are added in Stein.
|
@ -1,82 +0,0 @@
|
||||
# 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 os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.abspath('../..'))
|
||||
# -- 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.intersphinx',
|
||||
'openstackdocstheme'
|
||||
]
|
||||
|
||||
# openstackdocstheme options
|
||||
repository_name = 'openstack/tricircle'
|
||||
bug_project = 'tricircle'
|
||||
bug_tag = ''
|
||||
|
||||
# autodoc generation is a bit aggressive and a nuisance when doing heavy
|
||||
# text edit cycles.
|
||||
# execute "export SPHINX_DEBUG=1" in your terminal to disable
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'tricircle'
|
||||
copyright = u'2015, OpenStack Foundation'
|
||||
|
||||
# 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
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# -- Options for HTML output --------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
||||