Retire Senlin: remove repo content
Senlin project is retiring - https://review.opendev.org/c/openstack/governance/+/919347 this commit remove the content of this project repo Depends-On: https://review.opendev.org/c/openstack/project-config/+/919348/ Change-Id: I5f524835683b10a8472ee90e5de5087b37ff502b
This commit is contained in:
parent
ec5fae9976
commit
3acf9ce11f
@ -1,9 +0,0 @@
|
||||
[run]
|
||||
branch = True
|
||||
source = senlin
|
||||
omit = senlin/tests/*,senlin/hacking/*
|
||||
concurrency = greenlet
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
||||
|
30
.gitignore
vendored
30
.gitignore
vendored
@ -1,30 +0,0 @@
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
build
|
||||
cover
|
||||
cover-master
|
||||
dist
|
||||
doc/source/_static/senlin.policy.yaml.sample
|
||||
etc/senlin/policy.yaml.sample
|
||||
etc/senlin/senlin.conf.sample
|
||||
releasenodes/build
|
||||
senlin-test.db
|
||||
senlin.sqlite
|
||||
tags
|
||||
*~
|
||||
*.eggs
|
||||
*.egg-info
|
||||
*.iml
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
*.swo
|
||||
.coverage
|
||||
.coverage.*
|
||||
.idea
|
||||
.project
|
||||
.pydevproject
|
||||
.tox
|
||||
.venv
|
||||
.DS_Store
|
||||
.stestr
|
@ -1,3 +0,0 @@
|
||||
[DEFAULT]
|
||||
test_path=${OS_TEST_PATH:-./senlin/tests/unit}
|
||||
top_dir=./
|
180
.zuul.yaml
180
.zuul.yaml
@ -1,180 +0,0 @@
|
||||
- project:
|
||||
queue: senlin
|
||||
templates:
|
||||
- check-requirements
|
||||
- openstack-python3-jobs
|
||||
- publish-openstack-docs-pti
|
||||
- release-notes-jobs-python3
|
||||
check:
|
||||
jobs:
|
||||
- senlin-dsvm-tempest-py3-api
|
||||
- senlin-dsvm-tempest-py3-api-sqlalchemy-2x
|
||||
- senlin-tempest-api-ipv6-only
|
||||
- senlin-dsvm-tempest-py3-functional
|
||||
- senlin-dsvm-tempest-py3-functional-sqlalchemy-2x
|
||||
- senlin-dsvm-tempest-py3-integration
|
||||
- senlin-dsvm-tempest-py3-integration-zaqar:
|
||||
voting: false
|
||||
- openstack-tox-cover:
|
||||
voting: false
|
||||
gate:
|
||||
jobs:
|
||||
- senlin-dsvm-tempest-py3-api
|
||||
- senlin-tempest-api-ipv6-only
|
||||
- senlin-dsvm-tempest-py3-functional
|
||||
|
||||
- job:
|
||||
name: senlin-tempest-base
|
||||
parent: devstack-tempest
|
||||
description: Senlin Devstack tempest base job
|
||||
timeout: 7800
|
||||
required-projects: &base_required_projects
|
||||
- openstack/senlin
|
||||
- openstack/senlin-tempest-plugin
|
||||
irrelevant-files: &base_irrelevant_files
|
||||
- ^.*\.rst$
|
||||
- ^api-ref/.*$
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
vars: &base_vars
|
||||
tox_envlist: all
|
||||
devstack_services:
|
||||
tempest: true
|
||||
devstack_plugins:
|
||||
senlin: https://opendev.org/openstack/senlin
|
||||
devstack_localrc:
|
||||
TEMPEST_PLUGINS: '/opt/stack/senlin-tempest-plugin'
|
||||
USE_PYTHON3: true
|
||||
devstack_local_conf:
|
||||
test-config:
|
||||
$TEMPEST_CONFIG:
|
||||
clustering:
|
||||
min_microversion: 1.12
|
||||
max_microversion: 1.12
|
||||
delete_with_dependency: True
|
||||
health_policy_version: '1.1'
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-api
|
||||
parent: senlin-tempest-base
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.api
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
cloud_backend: openstack_test
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-api-sqlalchemy-2x
|
||||
parent: senlin-tempest-base
|
||||
required-projects:
|
||||
- name: openstack/oslo.db
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.api
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
USE_SQLALCHEMY_LATEST: true
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
cloud_backend: openstack_test
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-functional
|
||||
parent: senlin-tempest-base
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.functional
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
cloud_backend: openstack_test
|
||||
health_check_interval_min: 10
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-functional-sqlalchemy-2x
|
||||
parent: senlin-tempest-base
|
||||
required-projects:
|
||||
- name: openstack/oslo.db
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.functional
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
USE_SQLALCHEMY_LATEST: true
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
cloud_backend: openstack_test
|
||||
health_check_interval_min: 10
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-integration
|
||||
parent: senlin-tempest-base
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.integration(?!\.test_nova_server_cluster.TestNovaServerCluster).*
|
||||
devstack_plugins:
|
||||
heat: https://opendev.org/openstack/heat
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
TEMPEST_PLUGINS: '"/opt/stack/senlin-tempest-plugin /opt/stack/zaqar-tempest-plugin"'
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
health_check_interval_min: 10
|
||||
required-projects:
|
||||
- openstack/heat
|
||||
- openstack/octavia
|
||||
- openstack/python-zaqarclient
|
||||
- openstack/senlin
|
||||
- openstack/senlin-tempest-plugin
|
||||
- openstack/zaqar-tempest-plugin
|
||||
|
||||
- job:
|
||||
name: senlin-dsvm-tempest-py3-integration-zaqar
|
||||
parent: senlin-tempest-base
|
||||
vars:
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.integration.test_nova_server_cluster.TestNovaServerCluster
|
||||
devstack_plugins:
|
||||
zaqar: https://opendev.org/openstack/zaqar
|
||||
heat: https://opendev.org/openstack/heat
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
TEMPEST_PLUGINS: '"/opt/stack/senlin-tempest-plugin /opt/stack/zaqar-tempest-plugin"'
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
health_check_interval_min: 10
|
||||
required-projects:
|
||||
- openstack/heat
|
||||
- openstack/python-zaqarclient
|
||||
- openstack/senlin
|
||||
- openstack/senlin-tempest-plugin
|
||||
- openstack/zaqar
|
||||
- openstack/zaqar-ui
|
||||
- openstack/zaqar-tempest-plugin
|
||||
|
||||
- job:
|
||||
name: senlin-tempest-api-ipv6-only
|
||||
parent: devstack-tempest-ipv6
|
||||
description: |
|
||||
Senlin devstack tempest tests job for IPv6-only deployment
|
||||
irrelevant-files: *base_irrelevant_files
|
||||
required-projects: *base_required_projects
|
||||
timeout: 7800
|
||||
vars:
|
||||
<<: *base_vars
|
||||
tempest_test_regex: senlin_tempest_plugin.tests.api
|
||||
devstack_local_conf:
|
||||
post-config:
|
||||
$SENLIN_CONF:
|
||||
DEFAULT:
|
||||
cloud_backend: openstack_test
|
@ -1,91 +0,0 @@
|
||||
Before You Start
|
||||
================
|
||||
|
||||
If you would like to contribute to the development of OpenStack,
|
||||
you must follow the steps in this page:
|
||||
|
||||
https://docs.openstack.org/infra/manual/developers.html
|
||||
|
||||
Once those steps have been completed, changes to OpenStack
|
||||
should be submitted for review via the Gerrit tool, following
|
||||
the workflow documented at:
|
||||
|
||||
https://docs.openstack.org/infra/manual/developers.html#development-workflow
|
||||
|
||||
|
||||
Where to Start
|
||||
==============
|
||||
|
||||
There are many ways to start your contribution.
|
||||
|
||||
Sign on a bug to fix
|
||||
--------------------
|
||||
|
||||
Bugs related to senlin are reported and tracked on the individual sites on
|
||||
Launchpad:
|
||||
|
||||
- Senlin Server: https://bugs.launchpad.net/senlin
|
||||
- Senlin Client: https://bugs.launchpad.net/python-senlinclient
|
||||
- Senlin Dashboard: https://bugs.launchpad.net/senlin-dashboard
|
||||
|
||||
You can pick any bug item that has not been assigned to work on. Each bug fix
|
||||
patch should be accompanied with a release note.
|
||||
|
||||
|
||||
Pick a TODO item
|
||||
----------------
|
||||
|
||||
Senlin team maintains a ``TODO.rst`` file under the root directory, where you
|
||||
can add new items, claim existing items and remove items that are completed.
|
||||
You may want to check if there are items you can pick by:
|
||||
|
||||
#. Propose a patch to remove the item from the ``TODO.rst`` file.
|
||||
#. Add an item to the `etherpad page`_ which the core team uses to track the
|
||||
progress of individual work items.
|
||||
#. Start working on the item and keep updating your progress on the `etherpad
|
||||
page`_, e.g. paste the patch review link to the page.
|
||||
#. Mark the item from the `etherpad page`_ as completed when the patches are
|
||||
all merged.
|
||||
|
||||
|
||||
Start a Bigger Effort
|
||||
---------------------
|
||||
|
||||
Senlin team also maintains a ``FEATURES.rst`` file under the root directory,
|
||||
where you can add new items by proposing a patch to the file or claim an item
|
||||
to work on. However, the work items in the ``FEATURES.rst`` file are all
|
||||
non-trivial, thus demands for a deeper discussion before being worked on. The
|
||||
expected workflow for these items is:
|
||||
|
||||
#. Propose a spec file to the ``doc/specs`` directory describing the detailed
|
||||
design and other options, if any.
|
||||
#. Work with the reviewers to polish the design until it is accepted.
|
||||
#. Propose blueprint(s) to track the progress of the work item by registering
|
||||
them at the `blueprint page`_.
|
||||
#. Start working on the blueprints and checking in patches. Each patch should
|
||||
have a ``partial-blueprint: <blueprint>`` tag in its commit message.
|
||||
#. For each blueprint, add an item to the `etherpad page`_ so that it can be
|
||||
closely tracked in weekly meetings.
|
||||
#. Mark the blueprint(s) as completed when all related patches are merged.
|
||||
#. Propose a patch to the ``FEATURES.rst`` file to remove the work item.
|
||||
#. Propose a separate release note patch for the new feature.
|
||||
|
||||
|
||||
Reporting Bugs
|
||||
==============
|
||||
|
||||
Bugs should be filed on Launchpad site:
|
||||
|
||||
- Senlin Server: https://bugs.launchpad.net/senlin
|
||||
- Senlin Client: https://bugs.launchpad.net/python-senlinclient
|
||||
- Senlin Dashboard: https://bugs.launchpad.net/senlin-dashboard
|
||||
|
||||
|
||||
Meet the Developers
|
||||
===================
|
||||
|
||||
Real-time communication among developers are mostly done via IRC.
|
||||
The team is using the #senlin channel on oftc.net.
|
||||
|
||||
.. _`etherpad page`: https://etherpad.openstack.org/p/senlin-newton-workitems
|
||||
.. _`blueprint page`: https://blueprints.launchpad.net/senlin
|
284
FEATURES.rst
284
FEATURES.rst
@ -1,284 +0,0 @@
|
||||
Senlin Feature Request Pipeline
|
||||
===============================
|
||||
|
||||
This document records the feature requests the developer team has received and
|
||||
considered. This document SHOULD NOT be treated as a replacement of the
|
||||
blueprints (or specs) which already accompanied with a design. The feature
|
||||
requests here are meant to be a pipeline for mid-term goals that Senlin should
|
||||
strive to achieve. Whenever a feature can be implemented with a practical
|
||||
design, the feature should be moved to a blueprint (and/or specs) review.
|
||||
|
||||
This document SHOULD NOT be treated as a replacement of the `TODO` file the
|
||||
development team is maintaining. The `TODO` file records actionable work items
|
||||
that can be picked up by any developer who is willing to do it, while this
|
||||
document records more general requirements that needs at least a draft design
|
||||
before being worked on.
|
||||
|
||||
|
||||
High Priority
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
TOSCA support
|
||||
-------------
|
||||
|
||||
Provide TOSCA support in Senlin (maybe reuse heat-translator/tosca-parser?)
|
||||
|
||||
|
||||
Advanced Container Clustering
|
||||
-----------------------------
|
||||
|
||||
Container cluster management:
|
||||
|
||||
- Scheduling
|
||||
- Networking/Storage
|
||||
- APIs/Operations
|
||||
- Security issues
|
||||
- Dependencies
|
||||
|
||||
|
||||
Better Versioning for Profile/Policy
|
||||
------------------------------------
|
||||
|
||||
Profile/Policy schema could vary over time for properties being added or
|
||||
deprecated. Versioning support is important for keeping backward
|
||||
compatibility when profile/policy evolve.
|
||||
|
||||
|
||||
Role-specific Profiles
|
||||
----------------------
|
||||
|
||||
There are needs to have nodes of the same role to share a common profile while
|
||||
nodes of different roles having different profiles. The pre-condition for this
|
||||
is that the profile-types match.
|
||||
|
||||
|
||||
Scavenger Process
|
||||
-----------------
|
||||
|
||||
Senlin needs a scavenger process that runs as a background daemon. It is
|
||||
tasked with cleansing database for old data, e.g. event records. Its behavior
|
||||
must be customizable because users may want the old records to be removed or
|
||||
to be archived in a certain way.
|
||||
|
||||
|
||||
Fault Tolerance
|
||||
---------------
|
||||
|
||||
Senlin in most cases will be managing clusters with nodes distributed
|
||||
somewhere. One problems inherent to such a distributed architecture is about
|
||||
partial failures, communication latencies, concurrency, consistency etc. There
|
||||
are hardware/software failures expected. Senlin must remain operational in the
|
||||
face of such failures.
|
||||
|
||||
|
||||
Scaling to Existing Nodes
|
||||
-------------------------
|
||||
|
||||
[Conclusion from Austin: https://etherpad.openstack.org/p/newton-senlin-as]
|
||||
|
||||
Senlin can improve scale-out operation so that it can add existing nodes to
|
||||
a cluster when doing scale-out. We are not intended to scale to nodes not
|
||||
created by Senlin.
|
||||
|
||||
|
||||
Adoption of Nodes
|
||||
-----------------
|
||||
|
||||
There have been requirements on adopting existing resources (e.g. nova
|
||||
servers) to be managed by Senlin.
|
||||
|
||||
|
||||
Middle Priority
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Access Control
|
||||
--------------
|
||||
|
||||
Currently, all access to Senlin objects like cluster, profile are project_safe
|
||||
by default. This is for preventing user manipulating resources belong to other
|
||||
users. However, sharing resource between different users/projects with limited
|
||||
privilege(e.g. read-only, read-write) is also a very reasonable demand in many
|
||||
cases. Therefore, we may need to provide access permission control in Senlin to
|
||||
support this kind of requirement.
|
||||
|
||||
|
||||
Blue-Green Deployment
|
||||
---------------------
|
||||
|
||||
Support to deploy environments using blue-green deployment pattern.
|
||||
http://martinfowler.com/bliki/BlueGreenDeployment.html
|
||||
|
||||
|
||||
Multi-cloud Support
|
||||
-------------------
|
||||
|
||||
In some case, user could have the demand to create/scale cluster cross different
|
||||
clouds. Therefore, Senlin is supposed to have the ability to manage nodes which
|
||||
span cross multiple clouds within the same cluster. Support from both profile
|
||||
and policy layers are necessary for providing this ability.
|
||||
|
||||
|
||||
Customizable Batch Processing
|
||||
-----------------------------
|
||||
|
||||
An important non-functional requirement for Senlin is the scale of clusters it
|
||||
can handle. We will strive to make it handle large scale ones, however that
|
||||
indicates that we need to improve DB accesses in case of heavy loads. One
|
||||
potential tradeoff is to introduce an option for users to customize the size
|
||||
of batches when large number of DB requests pouring in.
|
||||
|
||||
|
||||
Support to Bare-metal
|
||||
---------------------
|
||||
|
||||
Managing baremetal cluster is a very common requirement from user. It is
|
||||
reasonable for Senlin to support it by talking with service like Ironic.
|
||||
|
||||
|
||||
Improve health schedule
|
||||
-----------------------
|
||||
Schedule which engine to handle which clusters health registries can be
|
||||
improved. For example:1. When first engine start it will run all health
|
||||
registries. 2. When the other engine start it can send a broadcast
|
||||
message which carried its handling capacity and said it want to assume
|
||||
some health registries.
|
||||
|
||||
|
||||
Host Fencing Support
|
||||
--------------------
|
||||
To ensure a seemingly dead node is actually dead, all HA solutions need a way
|
||||
to kill a node for sure. Senlin is no exception here. We have support to force
|
||||
delete a VM instance already. The need is a mechanism to kill a failed host.
|
||||
|
||||
|
||||
LB HealthMonitor based failure detection
|
||||
----------------------------------------
|
||||
Ideally, Senlin could rely on the LBaaS service for node failure detection
|
||||
rather than reinventing the wheel. However, LBaaS (Octavia) is not fixing the
|
||||
obvious bug.
|
||||
Another option is to have LBaaS emit events when node failures are detected.
|
||||
This proposal has failed find its way into the upstream.
|
||||
When the upstream project (Octavia) has such features, we can enable them from
|
||||
Senlin side.
|
||||
|
||||
|
||||
Low Priority
|
||||
~~~~~~~~~~~~
|
||||
|
||||
User Defined Actions
|
||||
--------------------
|
||||
|
||||
Actions in Senlin are mostly built-in ones at present. There are requirements
|
||||
to incorporate Shell scripts and/or other structured software configuration
|
||||
tools into the whole picture. One of the option is to provide an easy way for
|
||||
Senlin to work with Ansible, for example.
|
||||
|
||||
|
||||
Use Barbican to Store Secrets
|
||||
-----------------------------
|
||||
|
||||
Currently, Senlin uses the `cryptography` package for data encryption and
|
||||
decryption. There should be support for users to store credentials using the
|
||||
Barbican service, in addition to the current solution.
|
||||
|
||||
|
||||
Use VPNaaS to Build Cross-Region/Cross-Cloud
|
||||
--------------------------------------------
|
||||
|
||||
When building clusters that span more than one region or cloud, there are
|
||||
requirements to place all cluster nodes on the same VPN so that workloads can
|
||||
be distributed to the nodes as if they sit on the same network.
|
||||
|
||||
|
||||
Vertical Scaling
|
||||
----------------
|
||||
|
||||
Though Senlin is mainly concerns about the horizontal scaling in/out support,
|
||||
there are possibilities/requirements to scale nodes in the vertical direction.
|
||||
Vertical scaling means automatically adding compute/storage/network resources
|
||||
to cluster nodes. Depending on the support from corresponding services, this
|
||||
could be explored.
|
||||
|
||||
|
||||
Replace Green Threads with Python Threading
|
||||
-------------------------------------------
|
||||
|
||||
Senlin is now using green threads (eventlets) for async executions. The
|
||||
eventlets execution model is not making the use of multi-processing platforms
|
||||
in an efficient way. Senlin needs a scalable execution engine, so native
|
||||
multi-threading is needed.
|
||||
|
||||
|
||||
Metrics Collection
|
||||
------------------
|
||||
|
||||
Senlin needs to support metric collections about the clusters and nodes it
|
||||
manages. These metrics should be collectible by the ceilometer service, for
|
||||
example.
|
||||
|
||||
|
||||
AWS Compatible API
|
||||
------------------
|
||||
|
||||
There are requirements for Senlin to provide an AWS compatible API layer so
|
||||
that existing workloads can be deployed to Senlin and AWS without needing to
|
||||
change a lot of code or configurations.
|
||||
|
||||
|
||||
Integration with Mistral
|
||||
------------------------
|
||||
|
||||
There are cases where the (automated) operations on clusters and nodes form a
|
||||
workflow. For example, an event triggers some actions to be executed in
|
||||
sequence and those actions in turn triggers other actions to be executed.
|
||||
|
||||
|
||||
Support to Suspend/Resume Operations
|
||||
------------------------------------
|
||||
|
||||
A user may want to suspend/resume a cluster or an individual node. Senlin
|
||||
needs to provide a generic definition of 'suspend' and 'resume'. It needs to
|
||||
be aware of whether the profile and the driver support such operations.
|
||||
|
||||
|
||||
Interaction with Congress
|
||||
-------------------------
|
||||
|
||||
This is of low priority because Senlin needs a notification mechanism in place
|
||||
before it can talk to Congress. The reason to interact with Congress is that
|
||||
there could be enterprise level policy enforcement that Senlin has to comply
|
||||
to.
|
||||
|
||||
|
||||
Investigation of Tooz
|
||||
---------------------
|
||||
|
||||
There is requirement to manage multiple senlin-engine instances in a
|
||||
distributed way. Or, we can use a variant of DLM to manage cluster membership.
|
||||
E.g. use redis/zookeeper to build clusters in their sense so that when the
|
||||
cluster membership changes, we may possibly receive a notification. This would
|
||||
be helpful for cluster health management.
|
||||
|
||||
Tooz is the promised focal point in this field, generalizing the many backends
|
||||
that we don't want to care about. This TODO item is about two things:
|
||||
|
||||
#. Whether Tooz does provide a reliable membership management infra?
|
||||
#. Is there a comparison between zookeeper and redis for example.
|
||||
|
||||
|
||||
Support to Scheduled Actions
|
||||
----------------------------
|
||||
|
||||
This is a request to trigger some actions at a specified time. One typical use
|
||||
case is to scale up a cluster before weekend or promotion season as a
|
||||
preparation for the coming burst of workloads.
|
||||
|
||||
|
||||
Dynamic Plugin Loading
|
||||
----------------------
|
||||
|
||||
Design and implement dynamic plugin loading mechanism that allows loading
|
||||
plugins from any paths.
|
||||
|
||||
|
||||
|
57
HACKING.rst
57
HACKING.rst
@ -1,57 +0,0 @@
|
||||
Senlin Style Commandments
|
||||
=========================
|
||||
|
||||
- Step 1: Read the OpenStack Style Commandments
|
||||
https://docs.openstack.org/hacking/latest/
|
||||
- Step 2: Read on
|
||||
|
||||
Senlin Specific Commandments
|
||||
----------------------------
|
||||
|
||||
- [S318] Use assertion ``assertIsNone(A)`` instead of ``assertEqual(A, None)``
|
||||
or ``assertEqual(None, A)``.
|
||||
- [S319] Use ``jsonutils`` functions rather than using the ``json`` package
|
||||
directly.
|
||||
- [S320] Default arguments of a method should not be mutable.
|
||||
- [S321] The api_version decorator has to be the first decorator on a method.
|
||||
- [S322] LOG.warn is deprecated. Enforce use of LOG.warning.
|
||||
- [S323] Use assertTrue(...) rather than assertEqual(True, ...).
|
||||
|
||||
Working on APIs
|
||||
---------------
|
||||
|
||||
If you are proposing new APIs or fixes to existing APIs, please spend some
|
||||
time reading the guidelines published by the API WorkGroup:
|
||||
|
||||
https://opendev.org/openstack/api-sig/src/branch/master/guidelines
|
||||
|
||||
Any work on improving Senlin's APIs to conform to the guidelines are welcomed.
|
||||
|
||||
Creating Unit Tests
|
||||
-------------------
|
||||
|
||||
For every new feature, unit tests should be created that both test and
|
||||
(implicitly) document the usage of said feature. When submitting a patch to a
|
||||
bug without a unit test, a new unit test should be added. If a submitted bug
|
||||
fix does have a unit test, be sure to add a new one that fails without the
|
||||
patch and passes with the patch.
|
||||
|
||||
For more information on creating and running unit tests , please read
|
||||
senlin/doc/source/contributor/testing.rst. Test guide online link:
|
||||
https://docs.openstack.org/senlin/latest/contributor/testing.html
|
||||
|
||||
|
||||
Running Tests
|
||||
-------------
|
||||
|
||||
The testing system is based on a combination of `tox` and `testr`. The
|
||||
canonical approach to running tests is to simply run the command `tox`.
|
||||
This will create virtual environments, populate them with dependencies and
|
||||
run all of the tests that OpenStack CI systems run.
|
||||
|
||||
Behind the scenes, `tox` is running `ostestr --slowest`, but is set up such
|
||||
that you can supply any additional arguments to the `ostestr` command.
|
||||
For example, the following command makes `tox` to tell `ostestr` to add
|
||||
`--analyze-isolation` to its argument list::
|
||||
|
||||
tox -- --analyze-isolation
|
176
LICENSE
176
LICENSE
@ -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.
|
||||
|
102
README.rst
102
README.rst
@ -1,96 +1,10 @@
|
||||
========================
|
||||
Team and repository tags
|
||||
========================
|
||||
This project is no longer maintained.
|
||||
|
||||
.. image:: https://governance.openstack.org/tc/badges/senlin.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
|
||||
|
||||
Senlin
|
||||
======
|
||||
|
||||
--------
|
||||
Overview
|
||||
--------
|
||||
|
||||
Senlin is a clustering service for OpenStack clouds. It creates and operates
|
||||
clusters of homogeneous objects exposed by other OpenStack services. The goal
|
||||
is to make the orchestration of collections of similar objects easier.
|
||||
|
||||
Senlin provides RESTful APIs to users so that they can associate various
|
||||
policies to a cluster. Sample policies include placement policy, load
|
||||
balancing policy, health policy, scaling policy, update policy and so on.
|
||||
|
||||
Senlin is designed to be capable of managing different types of objects. An
|
||||
object's lifecycle is managed using profile type implementations, which are
|
||||
themselves plugins.
|
||||
|
||||
---------
|
||||
For Users
|
||||
---------
|
||||
|
||||
If you want to install Senlin for a try out, please refer to the documents
|
||||
under the ``doc/source/user/`` subdirectory. User guide online link:
|
||||
https://docs.openstack.org/senlin/latest/#user-references
|
||||
|
||||
--------------
|
||||
For Developers
|
||||
--------------
|
||||
|
||||
There are many ways to help improve the software, for example, filing a bug,
|
||||
submitting or reviewing a patch, writing or reviewing some documents. There
|
||||
are documents under the ``doc/source/contributor`` subdirectory. Developer
|
||||
guide online link: https://docs.openstack.org/senlin/latest/#developer-s-guide
|
||||
|
||||
---------
|
||||
Resources
|
||||
---------
|
||||
|
||||
Launchpad Projects
|
||||
------------------
|
||||
- Server: https://launchpad.net/senlin
|
||||
- Client: https://launchpad.net/python-senlinclient
|
||||
- Dashboard: https://launchpad.net/senlin-dashboard
|
||||
- Tempest Plugin: https://launchpad.net/senlin-tempest-plugin
|
||||
|
||||
Code Repository
|
||||
---------------
|
||||
- Server: https://opendev.org/openstack/senlin
|
||||
- Client: https://opendev.org/openstack/python-senlinclient
|
||||
- Dashboard: https://opendev.org/openstack/senlin-dashboard
|
||||
- Tempest Plugin: https://opendev.org/openstack/senlin-tempest-plugin
|
||||
|
||||
Blueprints
|
||||
----------
|
||||
- Blueprints: https://blueprints.launchpad.net/senlin
|
||||
|
||||
Bug Tracking
|
||||
------------
|
||||
- Server Bugs: https://bugs.launchpad.net/senlin
|
||||
- Client Bugs: https://bugs.launchpad.net/python-senlinclient
|
||||
- Dashboard Bugs: https://bugs.launchpad.net/senlin-dashboard
|
||||
- Tempest Plugin Bugs: https://bugs.launchpad.net/senlin-tempest-plugin
|
||||
|
||||
Weekly Meetings
|
||||
---------------
|
||||
- Schedule: every Tuesday at 1300 UTC, on #openstack-meeting channel
|
||||
- Agenda: https://wiki.openstack.org/wiki/Meetings/SenlinAgenda
|
||||
- Archive: http://eavesdrop.openstack.org/meetings/senlin/2015/
|
||||
|
||||
IRC
|
||||
---
|
||||
IRC Channel: #senlin on `OFTC`_.
|
||||
|
||||
Mailinglist
|
||||
-----------
|
||||
Project use http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss
|
||||
as the mailinglist. Please use tag ``[Senlin]`` in the subject for new
|
||||
threads.
|
||||
|
||||
|
||||
.. _OFTC: https://oftc.net/
|
||||
|
||||
Release notes
|
||||
------------------
|
||||
- Release notes: https://docs.openstack.org/releasenotes/senlin/
|
||||
For any further questions, please email
|
||||
openstack-discuss@lists.openstack.org or join #openstack-dev on
|
||||
OFTC.
|
||||
|
98
TODO.rst
98
TODO.rst
@ -1,98 +0,0 @@
|
||||
Senlin TODO Item List
|
||||
=====================
|
||||
This document records all workitems the team want to finish in a short-term
|
||||
(usually a development cycle which lasts 6 month). All jobs listed here are NOT
|
||||
in working progress which means developers can pick up any workitem they are
|
||||
interested in if they do have enough time to work on it. Developer should file
|
||||
a BluePrint in the launchpad to give a detailed description about their plan after
|
||||
deciding to work on a specific item. A patch should be proposed as well to remove
|
||||
related workitem from the TODO list after the BP gets approval.
|
||||
|
||||
|
||||
HIGH PRIORITY
|
||||
=============
|
||||
|
||||
API
|
||||
---
|
||||
- Find and fill gaps with API-WG besides the one we already identified.
|
||||
|
||||
- Add support to put a cluster to maintenance mode
|
||||
|
||||
ENGINE
|
||||
------
|
||||
- Complete support to list of health recovery actions.
|
||||
|
||||
- Add command "node adopt --profile-type <type> --properties network.id=\
|
||||
<NET_ID> --resource <NOVA_ID>" to adopt existing server node.
|
||||
* The new command should check if the provided properties are sufficient.
|
||||
* There exists a need to snapshot a server before adoption.
|
||||
|
||||
|
||||
MIDDLE PRIORITY
|
||||
===============
|
||||
|
||||
API
|
||||
---
|
||||
- Support advanced filters as suggested by the API WG:
|
||||
`Filtering Guidelines`_
|
||||
|
||||
ENGINE
|
||||
------
|
||||
- Add a new property "fast_scaling" to Cluster
|
||||
* A standby (user invisible) cluster is created containing the extra nodes
|
||||
that amount to max_size - desired_capacity
|
||||
- Perform cluster scaling based on role filters
|
||||
- Perform cluster checking based on role filters
|
||||
- Perform cluster recovery based on role filters
|
||||
|
||||
PROFILE
|
||||
-------
|
||||
- Add support to snapshot/restore operations for nova server profile. The
|
||||
possible use case is rapid scale.
|
||||
- Add support to nova server so that "block_device_mapping_v2" can reference
|
||||
an existing pool of cinder volumes.
|
||||
- Add support to nova server so that "network" can reference an existing
|
||||
pool of neutron ports or fixed IPs.
|
||||
|
||||
POLICY
|
||||
------
|
||||
- Provide support for watching all objects we created on behalf of users, like
|
||||
loadbalancer which is created when attaching lb policy.
|
||||
- Leverage other monitoring service for object health status monitoring.
|
||||
- Health policy extension for recovery action selection based on inputs
|
||||
|
||||
CLIENT
|
||||
------
|
||||
- Provide role-based filtering when doing 'cluster-run'
|
||||
|
||||
LOW PRIORITY
|
||||
============
|
||||
|
||||
ENGINE
|
||||
------
|
||||
- Allow actions to be paused and resumed. This is important for some background
|
||||
actions such as health checking.
|
||||
- Provide support to oslo.notification and allow nodes to receive and react
|
||||
to those notifications accordingly: `Autoscaling Notifications`_
|
||||
|
||||
PROFILE
|
||||
-------
|
||||
- Support disk property update for os.nova.server profile
|
||||
|
||||
DOC
|
||||
---
|
||||
- Provide a sample conf file for customizing senlin options.
|
||||
|
||||
TEST
|
||||
----
|
||||
- Add more Rally profile and scenario support for Senlin.
|
||||
|
||||
OTHERS
|
||||
------
|
||||
- Integration with Glare for profile/policy specs storage. At least we may
|
||||
want to enable users to retrieve/reference heat templates from glare when
|
||||
creating profiles.
|
||||
|
||||
|
||||
.. _`Filtering Guidelines`: https://specs.openstack.org/openstack/api-wg/guidelines/pagination_filter_sort.html#filtering
|
||||
.. _`Autoscaling Notifications`: https://ask.openstack.org/en/question/46495/heat-autoscaling-adaptation-actions-on-existing-servers/
|
@ -1,188 +0,0 @@
|
||||
=======
|
||||
Actions
|
||||
=======
|
||||
|
||||
Lists all actions and shows details for an action.
|
||||
|
||||
|
||||
List actions
|
||||
============
|
||||
|
||||
.. rest_method:: GET /v1/actions
|
||||
|
||||
Lists all actions.
|
||||
|
||||
Response codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- limit: limit
|
||||
- marker: marker
|
||||
- sort: sort
|
||||
- global_project: global_project
|
||||
- name: name_query
|
||||
- target: target_query
|
||||
- action: action_action_query
|
||||
- status: action_status_query
|
||||
|
||||
The sorting keys include ``name``, ``target``, ``action``, ``created_at``
|
||||
and ``status``.
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- X-OpenStack-Request-ID: request_id
|
||||
- actions: actions
|
||||
- action: action_action
|
||||
- cause: cause
|
||||
- created_at: created_at
|
||||
- data: action_data
|
||||
- depended_by: depended_by
|
||||
- depends_on: depends_on
|
||||
- start_time: start_time
|
||||
- end_time: end_time
|
||||
- id: action_id
|
||||
- inputs: inputs
|
||||
- interval: interval
|
||||
- name: name
|
||||
- outputs: outputs
|
||||
- owner: action_owner
|
||||
- project: project
|
||||
- status: action_status
|
||||
- status_reason: status_reason
|
||||
- target: action_target
|
||||
- timeout: action_timeout
|
||||
- updated_at: updated_at
|
||||
- user: user
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/actions-list-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Show action details
|
||||
===================
|
||||
|
||||
.. rest_method:: GET /v1/actions/{action_id}
|
||||
|
||||
Shows details for an action.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- action_id: action_id_url
|
||||
|
||||
Response Parameters:
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- X-OpenStack-Request-ID: request_id
|
||||
- action: action_action
|
||||
- cause: cause
|
||||
- created_at: created_at
|
||||
- data: action_data
|
||||
- depended_by: depended_by
|
||||
- depends_on: depends_on
|
||||
- start_time: start_time
|
||||
- end_time: end_time
|
||||
- id: action_id
|
||||
- inputs: inputs
|
||||
- interval: interval
|
||||
- name: name
|
||||
- outputs: outputs
|
||||
- owner: action_owner
|
||||
- project: project
|
||||
- status: action_status
|
||||
- status_reason: status_reason
|
||||
- target: action_target
|
||||
- timeout: action_timeout
|
||||
- updated_at: updated_at
|
||||
- user: user
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/action-get-response.json
|
||||
:language: javascript
|
||||
|
||||
Update action
|
||||
=============
|
||||
|
||||
.. rest_method:: PATCH /v1/actions/{action_id}
|
||||
|
||||
min_version: 1.12
|
||||
|
||||
Update status of an action.
|
||||
|
||||
This API is only available since API microversion 1.12.
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- action_id: action_id_url
|
||||
- action: action
|
||||
- status: action_status_update
|
||||
- force: action_update_force_query
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/action-get-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 202
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 409
|
||||
- 503
|
@ -1,50 +0,0 @@
|
||||
==============================
|
||||
Build information (build-info)
|
||||
==============================
|
||||
|
||||
Shows build information for a Senlin deployment.
|
||||
|
||||
Show build information
|
||||
=======================
|
||||
|
||||
.. rest_method:: GET /v1/build-info
|
||||
|
||||
Shows build information for a Senlin deployment.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 403
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- X-OpenStack-Request-ID: request_id
|
||||
- build_info: build_info
|
||||
- api: build_info_api
|
||||
- engine: build_info_engine
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/build-show-response.json
|
||||
:language: javascript
|
||||
|
||||
This operation does not accept a request body.
|
@ -1,113 +0,0 @@
|
||||
===================================
|
||||
Cluster Policies (cluster-policies)
|
||||
===================================
|
||||
|
||||
Lists all cluster policies and shows information for a cluster policy.
|
||||
|
||||
List all cluster policies
|
||||
=========================
|
||||
|
||||
.. rest_method:: GET /v1/clusters/{cluster_id}/policies
|
||||
|
||||
Lists all policies attached to specific cluster
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- cluster_id: cluster_id_url
|
||||
- enabled: enabled_query
|
||||
- policy_name: name_query
|
||||
- policy_type: type_query
|
||||
- sort: sort
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- X-OpenStack-Request-ID: request_id
|
||||
- cluster_policies: cluster_policies
|
||||
- cluster_id: cluster_id
|
||||
- cluster_name: cluster_name
|
||||
- enabled: cluster_policy_enabled
|
||||
- id: cluster_policy_id
|
||||
- policy_id: policy_id
|
||||
- policy_name: policy_name
|
||||
- policy_type: policy_type_name
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/cluster-policies-list-response.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Show cluster_policy details
|
||||
===========================
|
||||
|
||||
.. rest_method:: GET /v1/clusters/{cluster_id}/policies/{policy_id}
|
||||
|
||||
Shows details for a cluster policy.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 404
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- cluster_id: cluster_id_url
|
||||
- policy_id: policy_id_url
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- X-OpenStack-Request-ID: request_id
|
||||
- cluster_policy: cluster_policy
|
||||
- cluster_id: cluster_id
|
||||
- cluster_name: cluster_name
|
||||
- enabled: cluster_policy_enabled
|
||||
- id: cluster_policy_id
|
||||
- policy_id: policy_id
|
||||
- policy_name: policy_name
|
||||
- policy_type: policy_type_name
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/cluster-policy-show-response.json
|
||||
:language: javascript
|
File diff suppressed because it is too large
Load Diff
@ -1,205 +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.
|
||||
#
|
||||
# senlin documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat May 1 15:17:47 2010.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to
|
||||
# its 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 sys
|
||||
|
||||
extensions = [
|
||||
'os_api_ref',
|
||||
'openstackdocstheme',
|
||||
]
|
||||
|
||||
html_theme = 'openstackdocs'
|
||||
html_theme_options = {
|
||||
"sidebar_mode": "toc",
|
||||
}
|
||||
|
||||
# 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.
|
||||
sys.path.insert(0, os.path.abspath('../../'))
|
||||
sys.path.insert(0, os.path.abspath('../'))
|
||||
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.
|
||||
|
||||
# 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.
|
||||
copyright = u'2015-present, OpenStack Foundation'
|
||||
|
||||
# openstackdocstheme options
|
||||
repository_name = 'openstack/senlin'
|
||||
bug_project = 'senlin'
|
||||
bug_tag = 'api-ref'
|
||||
|
||||
# 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'
|
||||
|
||||
# The reST default role (used 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 = False
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# -- Options for man page output ----------------------------------------------
|
||||
|
||||
# Grouping the document tree for man pages.
|
||||
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual'
|
||||
|
||||
|
||||
# -- 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 = []
|
||||
|
||||
# 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 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 = 'senlindoc'
|
||||
|
||||
|
||||
# -- 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', 'Senlin.tex', u'OpenStack Clustering API Documentation',
|
||||
u'OpenStack Foundation', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
# latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
# latex_use_parts = False
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
# latex_preamble = ''
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
# latex_use_modindex = True
|
@ -1,129 +0,0 @@
|
||||
===============
|
||||
Events (events)
|
||||
===============
|
||||
|
||||
Lists all events and shows information for an event.
|
||||
|
||||
List events
|
||||
===========
|
||||
|
||||
.. rest_method:: GET /v1/events
|
||||
|
||||
Lists all events.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 400
|
||||
- 401
|
||||
- 403
|
||||
- 503
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- OpenStack-API-Version: microversion
|
||||
- limit: limit
|
||||
- level: event_level_req
|
||||
- marker: marker
|
||||
- sort: sort
|
||||
- global_project: global_project
|
||||
- oid: oid_query
|
||||
- otype: otype_query
|
||||
- oname: oname_query
|
||||
- cluster_id: cluster_identity_query
|
||||
|