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:
Ghanshyam Mann 2024-05-10 14:29:29 -07:00
parent ec5fae9976
commit 3acf9ce11f
955 changed files with 8 additions and 128411 deletions

View File

@ -1,9 +0,0 @@
[run]
branch = True
source = senlin
omit = senlin/tests/*,senlin/hacking/*
concurrency = greenlet
[report]
ignore_errors = True

30
.gitignore vendored
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

@ -1,176 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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
- action: action_name_query
The sorting keys include ``timestamp``, ``level``, ``otype``, ``oname``,
``action``, ``status``, ``oid`` and ``cluster_id``.
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- events: events
- action: action_name
- cluster_id: cluster_id
- id: event_id
- level: event_level
- oid: oid
- oname: oname
- otype: otype
- project: project
- status: event_status
- status_reason: status_reason
- timestamp: event_timestamp
- user: user
Response Example
----------------
.. literalinclude:: samples/events-list-response.json
:language: javascript
Shows event details
===================
.. rest_method:: GET /v1/events/{event_id}
Shows details for an event.
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
- event_id: event_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- event: event
- action: action_name
- cluster_id: cluster_id
- id: event_id
- level: event_level
- oid: oid
- oname: oname
- otype: otype
- project: project
- status: event_status
- status_reason: status_reason
- timestamp: event_timestamp
- user: user
Response Example
----------------
.. literalinclude:: samples/event-show-response.json
:language: javascript

View File

@ -1,22 +0,0 @@
:tocdepth: 2
==============
Clustering API
==============
.. rest_expand_all::
.. include:: versions.inc
.. include:: build_info.inc
.. include:: profile_types.inc
.. include:: profiles.inc
.. include:: policy_types.inc
.. include:: policies.inc
.. include:: clusters.inc
.. include:: cluster_policies.inc
.. include:: nodes.inc
.. include:: receivers.inc
.. include:: events.inc
.. include:: webhooks.inc
.. include:: actions.inc
.. include:: services.inc

View File

@ -1,654 +0,0 @@
=====
Nodes
=====
Lists all nodes, and creates, shows information for, updates, deletes a node.
List nodes
==========
.. rest_method:: GET /v1/nodes
Lists all nodes.
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
- cluster_id: cluster_identity_query
- name: name_query
- status: status_query
The sorting keys include ``name``, ``index``, ``status``, ``init_at``,
``created_at`` and ``updated_at``.
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- nodes: nodes
- cluster_id: cluster_id
- created_at: created_at
- data: node_data
- dependents: dependents
- domain: domain
- id: node_id
- index: index
- init_at: init_at
- metadata: metadata
- name: name
- physical_id: physical_id
- profile_id: profile_id
- profile_name: profile_name
- project: project
- role: role
- status: node_status
- status_reason: status_reason
- tainted: tainted
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/node-list-response.json
:language: javascript
Create node
===========
.. rest_method:: POST /v1/nodes
Creates a node.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- node: node
- role: role_req
- profile_id: profile_identity_req
- cluster_id: node_cluster_identity
- name: node_name
- metadata: metadata_req
Request Example
---------------
.. literalinclude:: samples/node-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
- node: node
- cluster_id: cluster_id
- created_at: created_at
- data: node_data
- dependents: dependents
- domain: domain
- id: node_id
- index: index
- init_at: init_at
- metadata: metadata
- name: name
- physical_id: physical_id
- profile_id: profile_id
- profile_name: profile_name
- project: project
- role: role
- status: node_status
- status_reason: status_reason
- tainted: tainted
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/node-create-response.json
:language: javascript
Adopt node
==========
.. rest_method:: POST /v1/nodes/adopt
min_version: 1.7
Adopts a node.
This API is only available since API microversion 1.7.
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
- identity: identity
- metadata: metadata_req
- name: node_name_adopt
- overrides: overrides
- role: role_req
- snapshot: snapshot
- type: profile_type_name
Request Example
---------------
.. literalinclude:: samples/node-adopt-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- node: node
- cluster_id: cluster_id
- created_at: created_at
- data: node_data
- domain: domain
- id: node_id
- index: index
- init_at: init_at
- metadata: metadata
- name: name
- physical_id: physical_id
- profile_id: profile_id
- profile_name: profile_name
- project: project
- role: role
- status: node_status
- status_reason: status_reason
- tainted: tainted
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/node-adopt-response.json
:language: javascript
Adopt node (preview)
====================
.. rest_method:: POST /v1/nodes/adopt-preview
min_version: 1.7
Preview a node adoption.
This API is only available since API microversion 1.7.
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
- identity: identity
- overrides: overrides
- snapshot: snapshot
- type: profile_type_name
Request Example
---------------
.. literalinclude:: samples/node-adopt-preview-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- node_preview: node_preview
- cluster_id: cluster_id
- type: profile_type_name
- version: profile_type_version
- properties: profile_spec
Response Example
----------------
.. literalinclude:: samples/node-adopt-preview-response.json
:language: javascript
Show node details
=================
.. rest_method:: GET /v1/nodes/{node_id}
Shows details about a node.
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
- node_id: node_id_url
- show_details: show_details
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- node: node
- cluster_id: cluster_id
- created_at: created_at
- data: node_data
- dependents: dependents
- domain: domain
- id: node_id
- index: index
- init_at: init_at
- metadata: metadata
- name: name
- physical_id: physical_id
- profile_id: profile_id
- profile_name: profile_name
- project: project
- role: role
- status: node_status
- status_reason: status_reason
- tainted: tainted
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/node-show-response.json
:language: javascript
Update node
===========
.. rest_method:: PATCH /v1/nodes/{node_id}
Updates a node.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- node_id: node_id_url
- node: node
- name: name_req
- profile_id: profile_identity
- role: role_req
- metadata: metadata_req
- tainted: tainted_req
Request Example
---------------
.. literalinclude:: samples/node-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
- node: node
- cluster_id: cluster_id
- created_at: created_at
- data: node_data
- dependents: dependents
- domain: domain
- id: node_id
- index: index
- init_at: init_at
- metadata: metadata
- name: name
- physical_id: physical_id
- profile_id: profile_id
- profile_name: profile_name
- project: project
- role: role
- status: node_status
- status_reason: status_reason
- tainted: tainted
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/node-show-response.json
:language: javascript
Delete node
===========
.. rest_method:: DELETE /v1/nodes/{node_id}
Deletes a node.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- node_id: node_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
Check a Node's Health
=====================
.. rest_method:: POST /v1/nodes/{node_id}/actions
Check the health status of the specified node.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- node_id: node_id_url
- action: action_request
The ``action_name`` in the body must be ``check``.
Request Example
---------------
.. literalinclude:: samples/node-check-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
- action: action_action
Response Example
----------------
.. literalinclude:: samples/node-action-response.json
:language: javascript
Recover a Node to Healthy Status
================================
.. rest_method:: POST /v1/nodes/{node_id}/actions
Recover the specified node to its healthy status.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- node_id: node_id_url
- action: action_request
The ``action_name`` in the body must be ``recover``. The valid parameters
include:
- ``operation``: A string specifying the action to be performed for node
recovery.
- ``operation_params``: An optional dictionary specifying the key-value
arguments for the specific node recovery action.
- ``check``: A boolean specifying whether the engine should check the node's
actual status before performing the recovery action. This parameter is added
since microversion 1.6.
Request Example
---------------
.. literalinclude:: samples/node-recover-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
- action: action_action
Response Example
----------------
.. literalinclude:: samples/node-action-response.json
:language: javascript
Perform an Operation on a Node
==============================
.. rest_method:: POST /v1/nodes/{node_id}/ops
min_version: 1.4
Perform the specified operation on the specified node.
This API is only available since API microversion 1.4.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- node_id: node_id_url
- operation: operation_request
Request Example
---------------
.. literalinclude:: samples/node-operation-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- Location: location
- action: action_action
Response Example
----------------
.. literalinclude:: samples/node-action-response.json
:language: javascript

File diff suppressed because it is too large Load Diff

View File

@ -1,358 +0,0 @@
===================
Policies (policies)
===================
Lists all policies and creates, shows information for, updates, and deletes a
policy.
List policies
=============
.. rest_method:: GET /v1/policies
Lists all policies.
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
- type: type_query
The sorting keys include ``name``, ``type``, ``created_at`` and
``udpated_at``.
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- policies: policies
- created_at: created_at
- data: policy_data
- domain: domain
- id: policy_id
- name: name
- project: project
- spec: policy_spec
- type: policy_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/policy-list-response.json
:language: javascript
Create policy
=============
.. rest_method:: POST /v1/policies
Creates a policy.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- policy: policy
- name: policy_name
- spec: policy_spec
Request Example
---------------
.. literalinclude:: samples/policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- policy: policy
- created_at: created_at
- data: policy_data
- domain: domain
- id: policy_id
- name: name
- project: project
- spec: policy_spec
- type: policy_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/policy-create-response.json
:language: javascript
Show policy details
===================
.. rest_method:: GET /v1/policies/{policy_id}
Shows details for a 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
- policy_id: policy_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- policy: policy
- created_at: created_at
- data: policy_data
- domain: domain
- id: policy_id
- name: name
- project: project
- spec: policy_spec
- type: policy_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/policy-show-response.json
:language: javascript
Update policy
=============
.. rest_method:: PATCH /v1/policies/{policy_id}
Updates a 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
- policy_id: policy_id_url
- policy: policy
- name: name
Note that the only property that can be updated on a policy object after
creation is ``name``.
Request Example
---------------
.. literalinclude:: samples/policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
- policy: policy
- created_at: created_at
- data: policy_data
- domain: domain
- id: policy_id
- name: name
- project: project
- spec: policy_spec
- type: policy_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/policy-update-response.json
:language: javascript
Delete policy
=============
.. rest_method:: DELETE /v1/policies/{policy_id}
Deletes a policy.
Response Codes
--------------
A policy cannot be deleted if it is still attached to cluster(s). In that
case, a 409 error will be returned.
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- policy_id: policy_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-ID: request_id
Validate policy
===============
.. rest_method:: POST /v1/policies/validate
Validates a policy.
This API is only available since API microversion 1.2.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- policy: policy
- spec: policy_spec
Request Example
---------------
.. literalinclude:: samples/policy-validate-request.json
:language: javascript
Response Parameters
-------------------
The response contains properties as if the policy has been created.
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- policy: policy
- created_at: created_at
- data: policy_data
- domain: domain
- id: policy_id
- name: name
- project: project
- spec: policy_spec
- type: policy_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/policy-validate-response.json
:language: javascript

View File

@ -1,111 +0,0 @@
===========================
Policy Types (policy-types)
===========================
Lists all policy types and shows details for a policy type.
List policy types
=================
.. rest_method:: GET /v1/policy-types
Lists all supported policy types.
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
- policy_types: policy_types
Response Example
----------------
For API microversion lower than 1.5, the response only contains the name for
each policy type:
.. literalinclude:: samples/policy-types-list-response.json
:language: javascript
Since API microversion 1.5, the response contains the support status of each
policy type and the version is provided using a separate key:
.. literalinclude:: samples/policy-types-list-response-v1.5.json
:language: javascript
Show policy type details
========================
.. rest_method:: GET /v1/policy-types/{policy_type}
Shows details for a policy type.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- policy_type: policy_type_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- policy_type: policy_type
- name: policy_type_name
- schema: policy_type_schema
Response Example
----------------
For API microversion lower than 1.5, the response only contains the name and
schema of the specified policy type:
.. literalinclude:: samples/policy-type-show-response.json
:language: javascript
Since API microversion 1.5, the response contains the support status of the
specified policy type:
.. literalinclude:: samples/policy-type-show-response-v1.5.json
:language: javascript

View File

@ -1,156 +0,0 @@
=============================
Profile Types (profile-types)
=============================
Lists all profile types and shows details for a profile type.
List profile types
==================
.. rest_method:: GET /v1/profile-types
Lists supported profile types.
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
- profile_types: profile_types
Response Example
----------------
For API microversion lower than 1.5, the response only contains the name for
each profile type:
.. literalinclude:: samples/profile-types-list-response.json
:language: javascript
Since API microversion 1.5, the response contains the support status of each
profile type and the version is provided using a separate key:
.. literalinclude:: samples/profile-types-list-response-v1.5.json
:language: javascript
Show profile type details
=========================
.. rest_method:: GET /v1/profile-types/{profile_type}
Shows details for a profile type.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- profile_type: profile_type_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profile_type: profile_type
- name: profile_type_name
- schema: profile_type_schema
Response Example
----------------
For API microversion lower than 1.5, the response only contains the name and
schema of the specified profile type:
.. literalinclude:: samples/profile-type-show-response.json
:language: javascript
Since API microversion 1.5, the response contains the support status of the
specified profile type:
.. literalinclude:: samples/profile-type-show-response-v1.5.json
:language: javascript
List profile type operations
============================
.. rest_method:: GET /v1/profile-types/{profile_type}/ops
List operations and parameters supported by a profile type.
This API is only available since API microversion 1.4.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- profile_type: profile_type_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- operations: operations
Response Example
----------------
.. literalinclude:: samples/profile-type-ops-response.json
:language: javascript

View File

@ -1,356 +0,0 @@
===================
Profiles (profiles)
===================
Lists all profiles and creates, shows information for, updates, and deletes a
profile.
List profiles
=============
.. rest_method:: GET /v1/profiles
Lists all profiles.
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
- global_project: global_project
- limit: limit
- marker: marker
- name: name_query
- sort: sort
- type: type_query
The sorting keys include ``name``, ``type``, ``created_at`` and
``updated_at``.
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profiles: profiles
- created_at: created_at
- domain: domain
- id: profile_id
- metadata: metadata
- name: name
- project: project
- spec: profile_spec
- type: profile_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/profile-list-response.json
:language: javascript
Create profile
==============
.. rest_method:: POST /v1/profiles
Creates a profile.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- profile: profile
- name: profile_name
- metadata: metadata_req
- spec: profile_spec
Request Example
---------------
.. literalinclude:: samples/profile-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profile: profile
- created_at: created_at
- domain: domain
- id: profile_id
- metadata: metadata
- name: name
- project: project
- spec: profile_spec
- type: profile_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/profile-create-response.json
:language: javascript
Show profile details
====================
.. rest_method:: GET /v1/profiles/{profile_id}
Shows details for a profile.
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
- profile_id: profile_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profile: profile
- created_at: created_at
- domain: domain
- id: profile_id
- metadata: metadata
- name: name
- project: project
- spec: profile_spec
- type: profile_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/profile-show-response.json
:language: javascript
Update profile
==============
.. rest_method:: PATCH /v1/profiles/{profile_id}
Updates a profile.
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
- profile_id: profile_id_url
- profile: profile
- metadata: metadata_req
- name: name_req
Request Example
---------------
.. literalinclude:: samples/profile-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profile: profile
- created_at: created_at
- id: profile_id
- metadata: metadata
- name: name
- project: project
- spec: profile_spec
- type: profile_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/profile-update-response.json
:language: javascript
Delete profile
==============
.. rest_method:: DELETE /v1/profiles/{profile_id}
Deletes a profile.
Response Codes
--------------
A profile cannot be deleted if it is still used by node or cluster. In that
case, a 409 error will be returned.
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- profile_id: profile_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
Validate profile
================
.. rest_method:: POST /v1/profiles/validate
Validates a profile.
This API is only available since API microversion 1.2.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- profile: profile
- spec: profile_spec
Request Example
---------------
.. literalinclude:: samples/profile-validate-request.json
:language: javascript
Response Parameters
-------------------
The response contains properties as if the profile is created.
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- profile: profile
- created_at: created_at
- domain: domain
- id: profile_id
- metadata: metadata
- name: name
- project: project
- spec: profile_spec
- type: profile_type_name
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/profile-validate-response.json
:language: javascript

View File

@ -1,360 +0,0 @@
=====================
Receivers (receivers)
=====================
Lists all receivers and creates, shows information for, and deletes a receiver.
List receivers
==============
.. rest_method:: GET /v1/receivers
Lists all receivers.
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
- type: receiver_type_query
- cluster_id: cluster_identity_query
- action: receiver_action_query
- user: receiver_user_query
The sorting keys include ``name``, ``type``, ``action``, ``cluster_id``,
``created_at`` and ``user``.
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- receivers: receivers
- action: receiver_action
- actor: receiver_actor
- channel: receiver_channel
- cluster_id: cluster_id
- created_at: created_at
- domain: domain
- id: receiver_id
- name: name
- params: receiver_params
- project: project
- type: receiver_type
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/receivers-list-response.json
:language: javascript
Create receiver
===============
.. rest_method:: POST /v1/receivers
Creates a receiver.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 500
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- receiver: receiver
- name: receiver_name
- cluster_id: receiver_cluster_identity
- type: receiver_type_req
- action: receiver_action
- actor: receiver_actor
- params: receiver_params_req
Request Example
---------------
.. literalinclude:: samples/receiver-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- receiver: receiver
- action: receiver_action
- actor: receiver_actor
- channel: receiver_channel
- cluster_id: cluster_id
- created_at: created_at
- domain: domain
- id: receiver_id
- name: name
- params: receiver_params
- project: project
- type: receiver_type
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/receiver-create-response.json
:language: javascript
Show receiver details
=====================
.. rest_method:: GET /v1/receivers/{receiver_id}
Shows details for a receiver.
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
- receiver_id: receiver_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- receiver: receiver
- action: receiver_action
- actor: receiver_actor
- channel: receiver_channel
- cluster_id: cluster_id
- created_at: created_at
- domain: domain
- id: receiver_id
- name: name
- params: receiver_params
- project: project
- type: receiver_type
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/receiver-show-response.json
:language: javascript
Update receiver
==================
.. rest_method:: PATCH /v1/receivers/{receiver_id}
min_version: 1.7
Updates a receiver.
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
- receiver_id: receiver_id_url
- receiver: receiver
- name: name_req
- action: receiver_action_req
- params: receiver_params_req
Request Example
---------------
.. literalinclude:: samples/receiver-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
- receiver: receiver
- action: receiver_action
- actor: receiver_actor
- channel: receiver_channel
- cluster_id: cluster_id
- created_at: created_at
- domain: domain
- id: receiver_id
- name: name
- params: receiver_params
- project: project
- type: receiver_type
- updated_at: updated_at
- user: user
Response Example
----------------
.. literalinclude:: samples/receiver-update-response.json
:language: javascript
Delete receiver
===============
.. rest_method:: DELETE /v1/receivers/{receiver_id}
Deletes a receiver.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
This operation does not accept a request body.
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- receiver_id: receiver_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
This operation does not return a response body.
Notify receiver
===============
.. rest_method:: POST /v1/receivers/{receiver_id}/notify
Notifies message type receiver.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 503
Request Parameters
------------------
This operation does not accept a request body.
.. rest_parameters:: parameters.yaml
- OpenStack-API-Version: microversion
- receiver_id: receiver_id_url
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- X-OpenStack-Request-Id: request_id
This operation does not return a response body.

View File

@ -1,5 +0,0 @@
{
"action": {
"status": "CANCELLED",
}
}

View File

@ -1,25 +0,0 @@
{
"action": {
"action": "CLUSTER_DELETE",
"cause": "RPC Request",
"created_at": "2015-06-27T05:09:43Z",
"data": {},
"depended_by": [],
"depends_on": [],
"end_time": 1423570000.0,
"id": "ffbb9175-d510-4bc1-b676-c6aba2a4ca81",
"inputs": {},
"interval": -1,
"name": "cluster_delete_fcc9b635",
"outputs": {},
"owner": null,
"project": "f1fe61dcda2f4618a14c10dc7abc214d",
"start_time": 1423570000.0,
"status": "FAILED",
"status_reason": "Cluster action FAILED",
"target": "fcc9b635-52e3-490b-99f2-87b1640e4e89",
"timeout": 3600,
"updated_at": null,
"user": "8bcd2cdca7684c02afc9e4f2fc0f0c79"
}
}

View File

@ -1,50 +0,0 @@
{
"actions": [
{
"action": "NODE_CREATE",
"cause": "RPC Request",
"created_at": "2015-12-04T04:54:41Z",
"data": {},
"depended_by": [],
"depends_on": [],
"end_time": 1425550000.0,
"id": "2366d440-c73e-4961-9254-6d1c3af7c167",
"inputs": {},
"interval": -1,
"name": "node_create_0df0931b",
"outputs": {},
"owner": null,
"project": "f1fe61dcda2f4618a14c10dc7abc214d",
"start_time": 1425550000.0,
"status": "SUCCEEDED",
"status_reason": "Action completed successfully.",
"target": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"timeout": 3600,
"updated_at": null,
"user": "8bcd2cdca7684c02afc9e4f2fc0f0c79"
},
{
"action": "NODE_DELETE",
"cause": "RPC Request",
"created_at": "2015-11-04T05:21:41Z",
"data": {},
"depended_by": [],
"depends_on": [],
"end_time": 1425550000.0,
"id": "edce3528-864f-41fb-8759-f4707925cc09",
"inputs": {},
"interval": -1,
"name": "node_delete_f0de9b9c",
"outputs": {},
"owner": null,
"project": "f1fe61dcda2f4618a14c10dc7abc214d",
"start_time": 1425550000.0,
"status": "SUCCEEDED",
"status_reason": "Action completed successfully.",
"target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe",
"timeout": 3600,
"updated_at": null,
"user": "8bcd2cdca7684c02afc9e4f2fc0f0c79"
}
]
}

View File

@ -1,10 +0,0 @@
{
"build_info": {
"api": {
"revision": "1.0"
},
"engine": {
"revision": "2.0"
}
}
}

View File

@ -1,3 +0,0 @@
{
"action": "2a0ff107-e789-4660-a122-3816c43af703"
}

View File

@ -1,8 +0,0 @@
{
"add_nodes": {
"nodes": [
"node-1234",
"node-5678"
]
}
}

View File

@ -1,6 +0,0 @@
{
"policy_attach": {
"policy_id": "dp01",
"enabled": false
}
}

View File

@ -1,16 +0,0 @@
{
"cluster_attributes": [
{
"id": "28b1771d-5aaf-4692-b701-fd216b4fd9e9",
"value": "10.0.0.12"
},
{
"id": "02db8741-03c5-466c-98a0-b83d4bb92c8c",
"value": "10.0.0.13"
},
{
"id": "08a7eec7-0f94-4f7a-92f2-55ffb1049335",
"value": "10.0.0.14"
}
]
}

View File

@ -1,3 +0,0 @@
{
"check": {}
}

View File

@ -1,5 +0,0 @@
{
"complete_lifecycle": {
"lifecycle_action_token": "ffbb9175-d510-4bc1-b676-c6aba2a4ca81"
}
}

View File

@ -1,12 +0,0 @@
{
"cluster": {
"config": {},
"desired_capacity": 0,
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "test_cluster",
"profile_id": "mystack",
"timeout": null
}
}

View File

@ -1,26 +0,0 @@
{
"cluster": {
"config": {},
"created_at": null,
"data": {},
"dependents": {},
"desired_capacity": 4,
"domain": null,
"id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
"init_at": "2015-02-10T14:16:10",
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "test_cluster",
"nodes": [],
"policies": [],
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "INIT",
"status_reason": "Initializing",
"timeout": 3600,
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,9 +0,0 @@
{
"del_nodes": {
"nodes": [
"aff0135",
"e28a207"
],
"destroy_after_deletion": false
}
}

View File

@ -1,5 +0,0 @@
{
"policy_detach": {
"policy_id": "5630fb31"
}
}

View File

@ -1,26 +0,0 @@
{
"clusters": [
{
"created_at": "2016-05-11T07:29:04",
"data": {},
"desired_capacity": 0,
"domain": null,
"id": "e395be1e-8d8e-43bb-bd6c-943eccf76a6d",
"init_at": "2016-05-11T07:29:04",
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "c0",
"nodes": [],
"policies": [],
"profile_id": "d8a48377-f6a3-4af4-bbbb-6e8bcaa0cbc0",
"profile_name": "pcirros",
"project": "eee0b7c083e84501bdd50fb269d2a10e",
"status": "ACTIVE",
"status_reason": "Cluster creation succeeded.",
"timeout": 3600,
"updated_at": null,
"user": "ab79b9647d074e46ac223a8fa297b846"
}
]
}

View File

@ -1,10 +0,0 @@
{
"reboot": {
"filters": {
"role": "slave"
},
"params": {
"type": "soft"
}
}
}

View File

@ -1,22 +0,0 @@
{
"cluster_policies": [
{
"cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
"cluster_name": "cluster4",
"enabled": true,
"id": "06be3a1f-b238-4a96-a737-ceec5714087e",
"policy_id": "714fe676-a08f-4196-b7af-61d52eeded15",
"policy_name": "dp01",
"policy_type": "senlin.policy.deletion-1.0"
},
{
"cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
"cluster_name": "cluster4",
"enabled": true,
"id": "abddc45e-ac31-4f90-93cc-db55a7d8dd6d",
"policy_id": "e026e09f-a3e9-4dad-a1b9-d7ba316026a1",
"policy_name": "sp1",
"policy_type": "senlin.policy.scaling-1.0"
}
]
}

View File

@ -1,11 +0,0 @@
{
"cluster_policy": {
"cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
"cluster_name": "cluster4",
"enabled": true,
"id": "06be3a1f-b238-4a96-a737-ceec5714087e",
"policy_id": "714fe676-a08f-4196-b7af-61d52eeded15",
"policy_name": "dp01",
"policy_type": "senlin.policy.deletion-1.0"
}
}

View File

@ -1,9 +0,0 @@
{
"recover": {
"operation": "reboot",
"operation_params": {
"type": "soft"
},
"check": false
}
}

View File

@ -1,7 +0,0 @@
{
"replace_nodes": {
"nodes": {
"node-1234": "node-5678"
}
}
}

View File

@ -1,9 +0,0 @@
{
"resize": {
"adjustment_type": "CHANGE_IN_CAPACITY",
"max_size": 5,
"min_size": 1,
"number": -2,
"strict": true
}
}

View File

@ -1,5 +0,0 @@
{
"scale_in": {
"count": 2
}
}

View File

@ -1,5 +0,0 @@
{
"scale_out": {
"count": 2
}
}

View File

@ -1,26 +0,0 @@
{
"cluster": {
"config": {},
"created_at": "2015-02-11T15:13:20Z",
"data": {},
"dependents": {},
"desired_capacity": 0,
"domain": null,
"id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
"init_at": "2015-02-10T14:26:10",
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "test_cluster",
"nodes": [],
"policies": [],
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "ACTIVE",
"status_reason": "Creation succeeded",
"timeout": 3600,
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,6 +0,0 @@
{
"update_policy": {
"policy_id": "dp01",
"enabled": false
}
}

View File

@ -1,9 +0,0 @@
{
"cluster": {
"metadata": null,
"name": null,
"profile_id": null,
"timeout": 30,
"profile_only": true
}
}

View File

@ -1,26 +0,0 @@
{
"cluster": {
"config": {},
"created_at": "2015-02-11T15:13:20Z",
"data": {},
"dependents": {},
"desired_capacity": 0,
"domain": null,
"id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
"init_at": "2015-02-10T14:26:10",
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "test_cluster",
"nodes": [],
"policies": [],
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "UPDATING",
"status_reason": "Updating",
"timeout": 3600,
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,32 +0,0 @@
{
"clusters": [
{
"config": {},
"created_at": "2015-02-10T14:26:14Z",
"data": {},
"dependents": {},
"desired_capacity": 4,
"domain": null,
"id": "7d85f602-a948-4a30-afd4-e84f47471c15",
"init_at": "2015-02-10T14:26:11",
"max_size": -1,
"metadata": {},
"min_size": 0,
"name": "cluster1",
"nodes": [
"b07c57c8-7ab2-47bf-bdf8-e894c0c601b9",
"ecc23d3e-bb68-48f8-8260-c9cf6bcb6e61",
"da1e9c87-e584-4626-a120-022da5062dac"
],
"policies": [],
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "ACTIVE",
"status_reason": "Cluster scale-in succeeded",
"timeout": 3600,
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
]
}

View File

@ -1,18 +0,0 @@
{
"event": {
"action": "create",
"cluster": null,
"cluster_id": null,
"id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3",
"level": "20",
"meta_data": {},
"oid": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"oname": "node009",
"otype": "NODE",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "CREATING",
"status_reason": "Initializing",
"timestamp": "2015-03-05T08:53:15Z",
"user": "a21ded6060534d99840658a777c2af5a"
}
}

View File

@ -1,20 +0,0 @@
{
"events": [
{
"action": "create",
"cluster": null,
"cluster_id": null,
"id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3",
"level": "20",
"meta_data": {},
"oid": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"oname": "node009",
"otype": "NODE",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"status": "CREATING",
"status_reason": "Initializing",
"timestamp": "2015-03-05T08:53:15Z",
"user": "a21ded6060534d99840658a777c2af5a"
}
]
}

View File

@ -1,3 +0,0 @@
{
"action": "7f760b61-7b15-4a50-af05-319922fa3229"
}

View File

@ -1,6 +0,0 @@
{
"identity": "65e27958-d6dc-4b0e-87bf-78e8f5536cbc",
"overrides": null,
"snapshot": true,
"type": "os.nova.server-1.0"
}

View File

@ -1,20 +0,0 @@
{
"node_preview": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
],
"security_groups": [
"default"
]
},
"type": "os.nova.server",
"version": 1.0
}
}

View File

@ -1,9 +0,0 @@
{
"identity": "65e27958-d6dc-4b0e-87bf-78e8f5536cbc",
"metadata": {},
"name": "node009",
"overrides": null,
"role": "master",
"snapshot": true,
"type": "os.nova.server-1.0"
}

View File

@ -1,22 +0,0 @@
{
"node": {
"cluster_id": null,
"created_at": null,
"data": {},
"domain": null,
"id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"index": -1,
"init_at": "2015-03-05T08:53:15Z",
"metadata": {},
"name": "node009",
"physical_id": "65e27958-d6dc-4b0e-87bf-78e8f5536cbc",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "prof-node009",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": "master",
"status": "ACTIVE",
"status_reason": "Node adopted successfully",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,3 +0,0 @@
{
"check": {}
}

View File

@ -1,9 +0,0 @@
{
"node": {
"cluster_id": null,
"metadata": {},
"name": "node009",
"profile_id": "mystack",
"role": "master"
}
}

View File

@ -1,23 +0,0 @@
{
"node": {
"cluster_id": null,
"created_at": null,
"data": {},
"dependents": {},
"domain": null,
"id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"index": -1,
"init_at": "2015-03-05T08:53:15Z",
"metadata": {},
"name": "node009",
"physical_id": "",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": "master",
"status": "INIT",
"status_reason": "Initializing",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,25 +0,0 @@
{
"nodes": [
{
"cluster_id": "e395be1e-8d8e-43bb-bd6c-943eccf76a6d",
"created_at": "2016-05-13T07:02:20Z",
"data": {},
"dependents": {},
"domain": null,
"id": "82fe28e0-9fcb-42ca-a2fa-6eb7dddd75a1",
"index": 2,
"init_at": "2016-05-13T07:02:04Z",
"metadata": {},
"name": "node-e395be1e-002",
"physical_id": "66a81d68-bf48-4af5-897b-a3bfef7279a8",
"profile_id": "d8a48377-f6a3-4af4-bbbb-6e8bcaa0cbc0",
"profile_name": "pcirros",
"project_id": "eee0b7c083e84501bdd50fb269d2a10e",
"role": "",
"status": "ACTIVE",
"status_reason": "Creation succeeded",
"updated_at": null,
"user": "ab79b9647d074e46ac223a8fa297b846"
}
]
}

View File

@ -1,5 +0,0 @@
{
"reboot": {
"type": "SOFT"
}
}

View File

@ -1,9 +0,0 @@
{
"recover": {
"operation": "reboot",
"operation_params": {
"type": "soft"
},
"check": false
}
}

View File

@ -1,23 +0,0 @@
{
"node": {
"cluster_id": null,
"created_at": "2015-02-10T12:03:16Z",
"data": {},
"dependents": {},
"domain": null,
"id": "d5779bb0-f0a0-49c9-88cc-6f078adb5a0b",
"index": -1,
"init_at": "2015-02-10T12:03:13",
"metadata": {},
"name": "node1",
"physical_id": "f41537fa-22ab-4bea-94c0-c874e19d0c80",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": null,
"status": "ACTIVE",
"status_reason": "Creation succeeded",
"updated_at": "2015-03-04T04:58:27Z",
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,5 +0,0 @@
{
"node": {
"name": "new_node_name"
}
}

View File

@ -1,17 +0,0 @@
{
"policy": {
"name": "sp001",
"spec": {
"properties": {
"adjustment": {
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
}
}
}

View File

@ -1,26 +0,0 @@
{
"policy": {
"created_at": "2015-03-02T07:40:31",
"data": {},
"domain": null,
"id": "02f62195-2198-4797-b0a9-877632208527",
"name": "sp001",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"adjustment": {
"best_effort": true,
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
},
"type": "senlin.policy.scaling-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,26 +0,0 @@
{
"policies": [
{
"created_at": "2015-02-15T08:33:13.000000",
"data": {},
"domain": null,
"id": "7192d8df-73be-4e98-ab99-1cf6d5066729",
"name": "test_policy_1",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"description": "A test policy",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": true,
"grace_period": 60,
"reduce_desired_capacity": false
},
"type": "senlin.policy.deletion",
"version": "1.0"
},
"type": "senlin.policy.deletion-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
]
}

View File

@ -1,26 +0,0 @@
{
"policy": {
"created_at": "2015-03-02T07:40:31",
"data": {},
"domain": null,
"id": "02f62195-2198-4797-b0a9-877632208527",
"name": "sp001",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"adjustment": {
"best_effort": true,
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
},
"type": "senlin.policy.scaling-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,58 +0,0 @@
{
"policy_type": {
"name": "senlin.policy.affinity-1.0",
"schema": {
"availability_zone": {
"description": "Name of the availability zone to place the nodes.",
"required": false,
"type": "String",
"updatable": false
},
"enable_drs_extension": {
"default": false,
"description": "Enable vSphere DRS extension.",
"required": false,
"type": "Boolean",
"updatable": false
},
"servergroup": {
"description": "Properties of the VM server group",
"required": false,
"schema": {
"name": {
"description": "The name of the server group",
"required": false,
"type": "String",
"updatable": false
},
"policies": {
"constraints": [
{
"constraint": [
"affinity",
"anti-affinity"
],
"type": "AllowedValues"
}
],
"default": "anti-affinity",
"description": "The server group policies.",
"required": false,
"type": "String",
"updatable": false
}
},
"type": "Map",
"updatable": false
}
},
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.10"
}
]
}
}
}

View File

@ -1,50 +0,0 @@
{
"policy_type": {
"name": "senlin.policy.affinity-1.0",
"schema": {
"availability_zone": {
"description": "Name of the availability zone to place the nodes.",
"required": false,
"type": "String",
"updatable": false
},
"enable_drs_extension": {
"default": false,
"description": "Enable vSphere DRS extension.",
"required": false,
"type": "Boolean",
"updatable": false
},
"servergroup": {
"description": "Properties of the VM server group",
"required": false,
"schema": {
"name": {
"description": "The name of the server group",
"required": false,
"type": "String",
"updatable": false
},
"policies": {
"constraints": [
{
"constraint": [
"affinity",
"anti-affinity"
],
"type": "AllowedValues"
}
],
"default": "anti-affinity",
"description": "The server group policies.",
"required": false,
"type": "String",
"updatable": false
}
},
"type": "Map",
"updatable": false
}
}
}
}

View File

@ -1,56 +0,0 @@
{
"policy_types": [
{
"name": "senlin.policy.affinity",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.10"
}
]
}
},
{
"name": "senlin.policy.health",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "EXPERIMENTAL",
"since": "2016.10"
}
]
}
},
{
"name": "senlin.policy.scaling",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.04"
}
]
}
},
{
"name": "senlin.policy.region_placement",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "EXPERIMENTAL",
"since": "2016.04"
},
{
"status": "SUPPORTED",
"since": "2016.10"
}
]
}
}
]
}

View File

@ -1,28 +0,0 @@
{
"policy_types": [
{
"name": "senlin.policy.affinity-1.0"
},
{
"name": "senlin.policy.batch-1.0"
},
{
"name": "senlin.policy.health-1.0"
},
{
"name": "senlin.policy.scaling-1.0"
},
{
"name": "senlin.policy.region_placement-1.0"
},
{
"name": "senlin.policy.deletion-1.0"
},
{
"name": "senlin.policy.loadbalance-1.1"
},
{
"name": "senlin.policy.zone_placement-1.0"
}
]
}

View File

@ -1,5 +0,0 @@
{
"policy": {
"name": "new_name"
}
}

View File

@ -1,24 +0,0 @@
{
"policy": {
"created_at": "2015-10-14T09:14:53",
"data": {},
"domain": null,
"id": "ac5415bd-f522-4160-8be0-f8853e4bc332",
"name": "dp01",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"description": "A policy for node deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": true,
"grace_period": 60,
"reduce_desired_capacity": false
},
"type": "senlin.policy.deletion",
"version": "1.0"
},
"type": "senlin.policy.deletion-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,16 +0,0 @@
{
"policy": {
"spec": {
"properties": {
"adjustment": {
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
}
}
}

View File

@ -1,25 +0,0 @@
{
"policy": {
"created_at": null,
"data": {},
"domain": null,
"id": null,
"name": "validated_policy",
"project": "1d567ed4ef51453a85545f018b68c26d",
"spec": {
"properties": {
"adjustment": {
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
},
"type": "senlin.policy.scaling-1.0",
"updated_at": null,
"user": "990e4c1f4a414f74990b17d16f2540b5"
}
}

View File

@ -1,24 +0,0 @@
{
"profile": {
"metadata": {},
"name": "test-profile",
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
],
"security_groups": [
"default"
]
},
"type": "os.nova.server",
"version": 1.0
}
}
}

View File

@ -1,31 +0,0 @@
{
"profile": {
"created_at": "2016-05-05T10:15:22Z",
"domain": null,
"id": "1d85fc39-7d9a-4f64-9751-b127ef554923",
"metadata": {},
"name": "test-profile",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
],
"security_groups": [
"default"
]
},
"type": "os.nova.server",
"version": 1.0
},
"type": "os.nova.server-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,30 +0,0 @@
{
"profiles": [
{
"created_at": "2016-01-03T16:22:23Z",
"domain": null,
"id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
"metadata": {},
"name": "pserver",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"flavor": 1,
"image": "cirros-0.3.4-x86_64-uec",
"key_name": "oskey",
"name": "cirros_server",
"networks": [
{
"network": "private"
}
]
},
"type": "os.nova.server",
"version": 1.0
},
"type": "os.nova.server-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
]
}

View File

@ -1,28 +0,0 @@
{
"profile": {
"created_at": "2016-03-10T06:34:56Z",
"domain": null,
"id": "17151d8a-f46f-4541-bde0-db3b207c20d2",
"metadata": {},
"name": "PF20",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
]
},
"type": "os.nova.server",
"version": 1.0
},
"type": "os.nova.server-1.0",
"updated_at": null,
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,24 +0,0 @@
{
"operations": {
"reboot": {
"description": "Reboot the nova server.",
"parameters": {
"type": {
"constraints": [
{
"constraint": [
"SOFT",
"HARD"
],
"type": "AllowedValues"
}
],
"default": "SOFT",
"description": "Type of reboot which can be 'SOFT' or 'HARD'.",
"required": false,
"type": "String"
}
}
}
}
}

View File

@ -1,70 +0,0 @@
{
"profile_type": {
"name": "os.heat.stack-1.0",
"schema": {
"context": {
"default": {},
"description": "A dictionary for specifying the customized context for stack operations",
"required": false,
"type": "Map",
"updatable": false
},
"disable_rollback": {
"default": true,
"description": "A boolean specifying whether a stack operation can be rolled back.",
"required": false,
"type": "Boolean",
"updatable": true
},
"environment": {
"default": {},
"description": "A map that specifies the environment used for stack operations.",
"required": false,
"type": "Map",
"updatable": true
},
"files": {
"default": {},
"description": "Contents of files referenced by the template, if any.",
"required": false,
"type": "Map",
"updatable": true
},
"parameters": {
"default": {},
"description": "Parameters to be passed to Heat for stack operations.",
"required": false,
"type": "Map",
"updatable": true
},
"template": {
"default": {},
"description": "Heat stack template.",
"required": false,
"type": "Map",
"updatable": true
},
"template_url": {
"default": "",
"description": "Heat stack template url.",
"required": false,
"type": "String",
"updatable": true
},
"timeout": {
"description": "A integer that specifies the number of minutes that a stack operation times out.",
"required": false,
"type": "Integer",
"updatable": true
}
},
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.04"
}
]
}
}
}

View File

@ -1,62 +0,0 @@
{
"profile_type": {
"name": "os.heat.stack-1.0",
"schema": {
"context": {
"default": {},
"description": "A dictionary for specifying the customized context for stack operations",
"required": false,
"type": "Map",
"updatable": false
},
"disable_rollback": {
"default": true,
"description": "A boolean specifying whether a stack operation can be rolled back.",
"required": false,
"type": "Boolean",
"updatable": true
},
"environment": {
"default": {},
"description": "A map that specifies the environment used for stack operations.",
"required": false,
"type": "Map",
"updatable": true
},
"files": {
"default": {},
"description": "Contents of files referenced by the template, if any.",
"required": false,
"type": "Map",
"updatable": true
},
"parameters": {
"default": {},
"description": "Parameters to be passed to Heat for stack operations.",
"required": false,
"type": "Map",
"updatable": true
},
"template": {
"default": {},
"description": "Heat stack template.",
"required": false,
"type": "Map",
"updatable": true
},
"template_url": {
"default": "",
"description": "Heat stack template url.",
"required": false,
"type": "String",
"updatable": true
},
"timeout": {
"description": "A integer that specifies the number of minutes that a stack operation times out.",
"required": false,
"type": "Integer",
"updatable": true
}
}
}
}

View File

@ -1,40 +0,0 @@
{
"profile_types": [
{
"name": "container.dockerinc.docker",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "EXPERIMENTAL",
"since": "2017.02"
}
]
}
},
{
"name": "os.heat.stack",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.04"
}
]
}
},
{
"name": "os.nova.server",
"version": "1.0",
"support_status": {
"1.0": [
{
"status": "SUPPORTED",
"since": "2016.04"
}
]
}
}
]
}

View File

@ -1,13 +0,0 @@
{
"profile_types": [
{
"name": "container.dockerinc.docker-1.0"
},
{
"name": "os.heat.stack-1.0"
},
{
"name": "os.nova.server-1.0"
}
]
}

View File

@ -1,6 +0,0 @@
{
"profile": {
"metadata": {"key": "value"},
"name": "new-name"
}
}

View File

@ -1,30 +0,0 @@
{
"profile": {
"created_at": "2016-03-10T06:34:56Z",
"domain": null,
"id": "17151d8a-f46f-4541-bde0-db3b207c20d2",
"metadata": {
"key": "value"
},
"name": "new-name",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
]
},
"type": "os.nova.server",
"version": 1.0
},
"type": "os.nova.server-1.0",
"updated_at": "2016-03-11T05:10:11Z",
"user": "5e5bf8027826429c96af157f68dc9072"
}
}

View File

@ -1,22 +0,0 @@
{
"profile": {
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
],
"security_groups": [
"default"
]
},
"type": "os.nova.server",
"version": 1.0
}
}
}

View File

@ -1,31 +0,0 @@
{
"profile": {
"created_at": null,
"domain": null,
"id": null,
"metadata": null,
"name": "validated_profile",
"project": "1d567ed4ef51453a85545f018b68c26d",
"spec": {
"properties": {
"flavor": "m1.small",
"image": "F20",
"key_name": "oskey",
"name": "F20_server",
"networks": [
{
"network": "private"
}
],
"security_groups": [
"default"
]
},
"type": "os.nova.server",
"version": 1.0
},
"type": "os.nova.server-1.0",
"updated_at": null,
"user": "990e4c1f4a414f74990b17d16f2540b5"
}
}

View File

@ -1,11 +0,0 @@
{
"receiver": {
"action": "CLUSTER_SCALE_OUT",
"cluster_id": "cf99d754-3cdc-47f4-8a29-cd14f02f5436",
"name": "cluster_inflate",
"params": {
"count": "1"
},
"type": "webhook"
}
}

View File

@ -1,25 +0,0 @@
{
"receiver": {
"action": "CLUSTER_SCALE_OUT",
"actor": {
"trust_id": [
"6dc6d336e3fc4c0a951b5698cd1236d9"
]
},
"channel": {
"alarm_url": "http://node1:8777/v1/webhooks/e03dd2e5-8f2e-4ec1-8c6a-74ba891e5422/trigger?V=2&count=1"
},
"cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3",
"created_at": "2015-06-27T05:09:43",
"domain": "Default",
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
"name": "cluster_inflate",
"params": {
"count": "1"
},
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"type": "webhook",
"updated_at": null,
"user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
}
}

View File

@ -1,25 +0,0 @@
{
"receiver": {
"action": "CLUSTER_SCALE_OUT",
"actor": {
"trust_id": [
"6dc6d336e3fc4c0a951b5698cd1236d9"
]
},
"channel": {
"alarm_url": "http://node1:8777/v1/webhooks/e03dd2e5-8f2e-4ec1-8c6a-74ba891e5422/trigger?V=2&count=1"
},
"cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3",
"created_at": "2015-06-27T05:09:43",
"domain": "Default",
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
"name": "cluster_inflate",
"params": {
"count": "1"
},
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"type": "webhook",
"updated_at": null,
"user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
}
}

View File

@ -1,9 +0,0 @@
{
"receiver": {
"name": "new-name",
"action": "CLUSTER_SCALE_OUT",
"params": {
"count": "2"
}
}
}

View File

@ -1,25 +0,0 @@
{
"receiver": {
"action": "CLUSTER_SCALE_OUT",
"actor": {
"trust_id": [
"6dc6d336e3fc4c0a951b5698cd1236d9"
]
},
"channel": {
"alarm_url": "http://node1:8777/v1/webhooks/e03dd2e5-8f2e-4ec1-8c6a-74ba891e5422/trigger?V=2&count=2"
},
"cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3",
"created_at": "2015-06-27T05:09:43",
"domain": "Default",
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
"name": "new-name",
"params": {
"count": "2"
},
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"type": "webhook",
"updated_at": "2016-03-11T05:10:11",
"user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
}
}

View File

@ -1,27 +0,0 @@
{
"receivers": [
{
"action": "CLUSTER_SCALE_OUT",
"actor": {
"trust_id": [
"6dc6d336e3fc4c0a951b5698cd1236d9"
]
},
"channel": {
"alarm_url": "http://node1:8777/v1/webhooks/e03dd2e5-8f2e-4ec1-8c6a-74ba891e5422/trigger?V=2&count=1"
},
"cluster_id": "ae63a10b-4a90-452c-aef1-113a0b255ee3",
"created_at": "2015-06-27T05:09:43",
"domain": "Default",
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
"name": "cluster_inflate",
"params": {
"count": "1"
},
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"type": "webhook",
"updated_at": null,
"user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
}
]
}

View File

@ -1,14 +0,0 @@
{
"services": [
{
"binary": "senlin-engine",
"disabled_reason": null,
"host": "host1",
"id": "f93f83f6-762b-41b6-b757-80507834d394",
"state": "up",
"status": "enabled",
"topic": "senlin-engine",
"updated_at": "2017-04-24T07:43:12"
}
]
}

View File

@ -1,25 +0,0 @@
{
"version": {
"id": "1.0",
"links": [
{
"href": "/v1/",
"rel": "self"
},
{
"href": "https://docs.openstack.org/api-ref/clustering",
"rel": "help"
}
],
"max_version": "1.7",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.clustering-v1+json"
}
],
"min_version": "1.0",
"status": "CURRENT",
"updated": "2016-01-18T00:00:00Z"
}
}

Some files were not shown because too many files have changed in this diff Show More