Merge "Remove Placement API reference"
This commit is contained in:
commit
662bec726d
|
@ -33,7 +33,6 @@ doc/source/api/*
|
|||
doc/build/*
|
||||
api-guide/build/*
|
||||
api-ref/build/*
|
||||
placement-api-ref/build/*
|
||||
etc/nova/nova.conf.sample
|
||||
etc/nova/policy.yaml.sample
|
||||
etc/nova/policy.yaml.merged
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
- openstack/nova
|
||||
- openstack/tempest
|
||||
irrelevant-files: &dsvm-irrelevant-files
|
||||
- ^(placement-)?api-.*$
|
||||
- ^api-.*$
|
||||
- ^(test-|)requirements.txt$
|
||||
- ^.*\.rst$
|
||||
- ^.git.*$
|
||||
|
@ -53,7 +53,6 @@
|
|||
- ^api-.*$
|
||||
- ^doc/source/.*$
|
||||
- ^nova/locale/.*$
|
||||
- ^placement-api-ref/.*$
|
||||
- ^releasenotes/.*$
|
||||
vars:
|
||||
tox_envlist: functional
|
||||
|
@ -100,7 +99,7 @@
|
|||
# playbook and tempest rc files so this can be self-testing).
|
||||
irrelevant-files:
|
||||
- ^(?!.zuul.yaml)(?!playbooks/legacy/nova-lvm/)(?!devstack/tempest-dsvm-lvm-rc)(?!nova/virt/libvirt/).*$
|
||||
- ^(placement-)?api-.*$
|
||||
- ^api-.*$
|
||||
- ^(test-|)requirements.txt$
|
||||
- ^.*\.rst$
|
||||
- ^.git.*$
|
||||
|
|
|
@ -27,9 +27,10 @@ Compute API reference
|
|||
Placement API reference
|
||||
-----------------------
|
||||
|
||||
* API reference text: ``placement-api-ref/source/*.inc``
|
||||
* Parameter definition: ``placement-api-ref/source/parameters.yaml``
|
||||
* JSON request/response samples: ``placement-api-ref/source/samples/*``
|
||||
The placement project has the API reference files in its own repository
|
||||
under `api-ref/source
|
||||
<https://github.com/openstack/placement/tree/master/api-ref/source>`_
|
||||
directory.
|
||||
|
||||
Structure of inc file
|
||||
---------------------
|
||||
|
|
|
@ -1,68 +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.
|
||||
"""Test to see if docs exists for routes and methods in the placement API."""
|
||||
|
||||
import os
|
||||
|
||||
from nova.api.openstack.placement import handler
|
||||
|
||||
# A humane ordering of HTTP methods for sorted output.
|
||||
ORDERED_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE']
|
||||
DEPRECATED_METHODS = [('POST', '/resource_providers/{uuid}/inventories')]
|
||||
|
||||
|
||||
def _header_line(map_entry):
|
||||
method, route = map_entry
|
||||
line = '.. rest_method:: %s %s' % (method, route)
|
||||
return line
|
||||
|
||||
|
||||
def inspect_doc(app):
|
||||
"""Load up doc_files and see if any routes are missing.
|
||||
|
||||
The routes are defined in handler.ROUTE_DECLARATIONS.
|
||||
"""
|
||||
doc_files = [os.path.join(app.srcdir, file)
|
||||
for file in os.listdir(app.srcdir) if file.endswith(".inc")]
|
||||
|
||||
routes = []
|
||||
for route in sorted(handler.ROUTE_DECLARATIONS, key=len):
|
||||
# Skip over the '' route.
|
||||
if route:
|
||||
for method in ORDERED_METHODS:
|
||||
if method in handler.ROUTE_DECLARATIONS[route]:
|
||||
routes.append((method, route))
|
||||
|
||||
header_lines = []
|
||||
for map_entry in routes:
|
||||
if map_entry not in DEPRECATED_METHODS:
|
||||
header_lines.append(_header_line(map_entry))
|
||||
|
||||
content_lines = []
|
||||
for doc_file in doc_files:
|
||||
with open(doc_file) as doc_fh:
|
||||
content_lines.extend(doc_fh.read().splitlines())
|
||||
|
||||
missing_lines = []
|
||||
for line in header_lines:
|
||||
if line not in content_lines:
|
||||
missing_lines.append(line)
|
||||
|
||||
if missing_lines:
|
||||
msg = ['Documentation likely missing for the following routes:', '']
|
||||
for line in missing_lines:
|
||||
msg.append(line)
|
||||
raise ValueError('\n'.join(msg))
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.connect('builder-inited', inspect_doc)
|
|
@ -1,156 +0,0 @@
|
|||
============================
|
||||
Resource provider aggregates
|
||||
============================
|
||||
|
||||
Each resource provider can be associated with one or more other
|
||||
resource providers in groups called aggregates. API calls in this
|
||||
section are used to list and update the aggregates that are associated
|
||||
with one resource provider.
|
||||
|
||||
Provider aggregates are used for modeling relationships among providers.
|
||||
Examples may include:
|
||||
|
||||
* A shared storage pool providing DISK_GB resources to compute node providers
|
||||
that provide VCPU and MEMORY_MB resources.
|
||||
* Affinity/anti-affinity relationships such as physical location, power failure
|
||||
domains, or other reliability/availability constructs.
|
||||
* Groupings of compute host providers *corresponding to* Nova host aggregates
|
||||
or availability zones.
|
||||
|
||||
.. note:: Placement aggregates are *not* the same as Nova host
|
||||
aggregates and should not be considered equivalent.
|
||||
|
||||
The primary differences between Nova's host aggregates and placement
|
||||
aggregates are the following:
|
||||
|
||||
* In Nova, a host aggregate associates a *nova-compute service* with
|
||||
other nova-compute services. Placement aggregates are not specific
|
||||
to a nova-compute service and are, in fact, not
|
||||
compute-specific at all. A resource provider in the Placement API is
|
||||
generic, and placement aggregates are simply groups of generic
|
||||
resource providers. This is an important difference especially for
|
||||
Ironic, which when used with Nova, has many Ironic baremetal nodes
|
||||
attached to a single nova-compute service. In the Placement API,
|
||||
each Ironic baremetal node is its own resource provider and can
|
||||
therefore be associated to other Ironic baremetal nodes via a
|
||||
placement aggregate association.
|
||||
* In Nova, a host aggregate may have *metadata* key/value pairs
|
||||
attached to it. All nova-compute services associated with a Nova
|
||||
host aggregate share the same metadata. Placement aggregates have no
|
||||
such metadata because placement aggregates *only* represent the
|
||||
grouping of resource providers. In the Placement API, resource
|
||||
providers are individually decorated with *traits* that provide
|
||||
qualitative information about the resource provider.
|
||||
* In Nova, a host aggregate dictates the *availability zone* within
|
||||
which one or more nova-compute services reside. While placement aggregates
|
||||
may be used to *model* availability zones, they have no inherent concept
|
||||
thereof.
|
||||
|
||||
.. note:: Aggregates API requests are availiable starting from version 1.1.
|
||||
|
||||
List resource provider aggregates
|
||||
=================================
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/aggregates
|
||||
|
||||
Return a list of aggregates associated with the resource provider
|
||||
identified by `{uuid}`.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404) if the provider does not exist. (If the
|
||||
provider has no aggregates, the result is 200 with an empty aggregate list.)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response (microversions 1.1 - 1.18)
|
||||
-----------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- aggregates: aggregates
|
||||
|
||||
Response Example (microversions 1.1 - 1.18)
|
||||
-------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/get-aggregates.json
|
||||
:language: javascript
|
||||
|
||||
Response (microversions 1.19 - )
|
||||
--------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- aggregates: aggregates
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Response Example (microversions 1.19 - )
|
||||
----------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/get-aggregates-1.19.json
|
||||
:language: javascript
|
||||
|
||||
Update resource provider aggregates
|
||||
===================================
|
||||
|
||||
Associate a list of aggregates with the resource provider identified by `{uuid}`.
|
||||
|
||||
.. rest_method:: PUT /resource_providers/{uuid}/aggregates
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
Request (microversion 1.1 - 1.18)
|
||||
---------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- aggregates: aggregates
|
||||
|
||||
Request example (microversion 1.1 - 1.18)
|
||||
-----------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/update-aggregates-request.json
|
||||
:language: javascript
|
||||
|
||||
Request (microversion 1.19 - )
|
||||
---------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- aggregates: aggregates
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Request example (microversion 1.19 - )
|
||||
-----------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/update-aggregates-request-1.19.json
|
||||
:language: javascript
|
||||
|
||||
Response (microversion 1.1 - )
|
||||
------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- aggregates: aggregates
|
||||
- resource_provider_generation: resource_provider_generation_v1_19
|
||||
|
||||
Response Example (microversion 1.1 - 1.18)
|
||||
------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/update-aggregates.json
|
||||
:language: javascript
|
||||
|
||||
Response Example (microversion 1.19 - )
|
||||
------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/aggregates/update-aggregates-1.19.json
|
||||
:language: javascript
|
|
@ -1,92 +0,0 @@
|
|||
=====================
|
||||
Allocation candidates
|
||||
=====================
|
||||
|
||||
.. note:: Allocation candidates API requests are availiable starting from version 1.10.
|
||||
|
||||
List allocation candidates
|
||||
==========================
|
||||
|
||||
Returns a dictionary representing a collection of allocation requests
|
||||
and resource provider summaries. Each allocation request has
|
||||
information to form a ``PUT /allocations/{consumer_uuid}`` request to claim
|
||||
resources against a related set of resource providers. Additional parameters
|
||||
might be required, see `Update allocations`_. As several allocation
|
||||
requests are available it's necessary to select one. To make a
|
||||
decision, resource provider summaries are provided with the
|
||||
inventory/capacity information. For example, this information is used by
|
||||
nova-scheduler's FilterScheduler to make decisions about on which compute host
|
||||
to build a server.
|
||||
|
||||
.. rest_method:: GET /allocation_candidates
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resources: resources_query_ac
|
||||
- required: required_traits_unnumbered
|
||||
- member_of: member_of_1_21
|
||||
- resourcesN: resources_query_granular
|
||||
- requiredN: required_traits_granular
|
||||
- member_ofN: member_of_granular
|
||||
- group_policy: allocation_candidates_group_policy
|
||||
- limit: allocation_candidates_limit
|
||||
|
||||
Response (microversions 1.12 - )
|
||||
--------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- allocation_requests: allocation_requests
|
||||
- provider_summaries: provider_summaries_1_12
|
||||
- allocations: allocations_by_resource_provider
|
||||
- resources: resources
|
||||
- capacity: capacity
|
||||
- used: used
|
||||
- traits: traits_1_17
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_response_1_29
|
||||
- root_provider_uuid: resource_provider_root_provider_uuid_1_29
|
||||
|
||||
Response Example (microversions 1.29 - )
|
||||
----------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocation_candidates/get-allocation_candidates-1.29.json
|
||||
:language: javascript
|
||||
|
||||
Response Example (microversions 1.17 - 1.28)
|
||||
--------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocation_candidates/get-allocation_candidates-1.17.json
|
||||
:language: javascript
|
||||
|
||||
Response Example (microversions 1.12 - 1.16)
|
||||
--------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocation_candidates/get-allocation_candidates-1.12.json
|
||||
:language: javascript
|
||||
|
||||
Response (microversions 1.10 - 1.11)
|
||||
------------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- allocation_requests: allocation_requests
|
||||
- provider_summaries: provider_summaries
|
||||
- allocations: allocations_array
|
||||
- resource_provider: resource_provider_object
|
||||
- uuid: resource_provider_uuid
|
||||
- resources: resources
|
||||
- capacity: capacity
|
||||
- used: used
|
||||
|
||||
Response Example (microversions 1.10 - 1.11)
|
||||
--------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocation_candidates/get-allocation_candidates.json
|
||||
:language: javascript
|
|
@ -1,198 +0,0 @@
|
|||
===========
|
||||
Allocations
|
||||
===========
|
||||
|
||||
Allocations are records representing resources that have been assigned
|
||||
and used by some consumer of that resource. They indicate the amount
|
||||
of a particular resource that has been allocated to a given consumer
|
||||
of that resource from a particular resource provider.
|
||||
|
||||
Manage allocations
|
||||
==================
|
||||
|
||||
Create, update or delete allocations for multiple consumers in a single
|
||||
request. This allows a client to atomically set or swap allocations for
|
||||
multiple consumers as may be required during a migration or move type
|
||||
operation.
|
||||
|
||||
The allocations for an individual consumer uuid mentioned in the request
|
||||
can be removed by setting the `allocations` to an empty object (see the
|
||||
example below).
|
||||
|
||||
**Available as of microversion 1.13.**
|
||||
|
||||
.. rest_method:: POST /allocations
|
||||
|
||||
Normal response codes: 204
|
||||
|
||||
Error response codes: badRequest(400), conflict(409)
|
||||
|
||||
* `409 Conflict` if there is no available inventory in any of the
|
||||
resource providers for any specified resource classes or inventories
|
||||
are updated by another thread while attempting the operation.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- consumer_uuid: consumer_uuid_body
|
||||
- consumer_generation: consumer_generation_min
|
||||
- project_id: project_id_body
|
||||
- user_id: user_id_body
|
||||
- allocations: allocations_dict_empty
|
||||
- generation: resource_provider_generation_optional
|
||||
- resources: resources
|
||||
|
||||
Request example (microversions 1.28 - )
|
||||
---------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/manage-allocations-request-1.28.json
|
||||
:language: javascript
|
||||
|
||||
Request example (microversions 1.13 - 1.27)
|
||||
-------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/manage-allocations-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned after a successful request
|
||||
|
||||
List allocations
|
||||
================
|
||||
|
||||
List all allocation records for the consumer identified by
|
||||
`{consumer_uuid}` on all the resource providers it is consuming.
|
||||
|
||||
.. note:: When listing allocations for a consumer uuid that has no
|
||||
allocations a dict with an empty value is returned
|
||||
``{"allocations": {}}``.
|
||||
|
||||
.. rest_method:: GET /allocations/{consumer_uuid}
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- consumer_uuid: consumer_uuid
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- allocations: allocations_by_resource_provider
|
||||
- generation: resource_provider_generation
|
||||
- resources: resources
|
||||
- consumer_generation: consumer_generation_min
|
||||
- project_id: project_id_body_1_12
|
||||
- user_id: user_id_body_1_12
|
||||
|
||||
Response Example (1.28 - )
|
||||
--------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/get-allocations-1.28.json
|
||||
:language: javascript
|
||||
|
||||
Response Example (1.12 - 1.27)
|
||||
------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/get-allocations.json
|
||||
:language: javascript
|
||||
|
||||
Update allocations
|
||||
==================
|
||||
|
||||
Create or update one or more allocation records representing the consumption of
|
||||
one or more classes of resources from one or more resource providers by
|
||||
the consumer identified by `{consumer_uuid}`.
|
||||
If allocations already exist for this consumer, they are replaced.
|
||||
|
||||
.. rest_method:: PUT /allocations/{consumer_uuid}
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
* `409 Conflict` if there is no available inventory in any of the
|
||||
resource providers for any specified resource classes or inventories
|
||||
are updated by another thread while attempting the operation.
|
||||
|
||||
Request (microversions 1.12 - )
|
||||
-------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- consumer_uuid: consumer_uuid
|
||||
- allocations: allocations_dict
|
||||
- resources: resources
|
||||
- consumer_generation: consumer_generation_min
|
||||
- project_id: project_id_body
|
||||
- user_id: user_id_body
|
||||
- generation: resource_provider_generation_optional
|
||||
|
||||
Request example (microversions 1.28 - )
|
||||
---------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/update-allocations-request-1.28.json
|
||||
:language: javascript
|
||||
|
||||
Request example (microversions 1.12 - 1.27)
|
||||
-------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/update-allocations-request-1.12.json
|
||||
:language: javascript
|
||||
|
||||
Request (microversions 1.0 - 1.11)
|
||||
----------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- consumer_uuid: consumer_uuid
|
||||
- allocations: allocations_array
|
||||
- resources: resources
|
||||
- resource_provider: resource_provider_object
|
||||
- uuid: resource_provider_uuid
|
||||
- project_id: project_id_body_1_8
|
||||
- user_id: user_id_body_1_8
|
||||
|
||||
Request example (microversions 1.0 - 1.11)
|
||||
------------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/allocations/update-allocations-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful PUT.
|
||||
|
||||
Delete allocations
|
||||
==================
|
||||
|
||||
Delete all allocation records for the consumer identified by
|
||||
`{consumer_uuid}` on all resource providers it is consuming.
|
||||
|
||||
.. rest_method:: DELETE /allocations/{consumer_uuid}
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- consumer_uuid: consumer_uuid
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,101 +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.
|
||||
#
|
||||
# placement-api-ref 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
|
||||
|
||||
from nova.version import version_info
|
||||
|
||||
sys.path.insert(0, os.path.abspath('../'))
|
||||
|
||||
extensions = [
|
||||
'openstackdocstheme',
|
||||
'os_api_ref',
|
||||
'ext.validator',
|
||||
]
|
||||
|
||||
# -- 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 master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Placement API Reference'
|
||||
copyright = u'2010-present, OpenStack Foundation'
|
||||
|
||||
# openstackdocstheme options
|
||||
repository_name = 'openstack/nova'
|
||||
bug_project = 'nova'
|
||||
bug_tag = 'placement-api-ref'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version_info.release_string()
|
||||
# The short X.Y version.
|
||||
version = version_info.version_string()
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# -- Options for HTML output --------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
||||
# Sphinx are currently 'default' and 'sphinxdoc'.
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# 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 = {
|
||||
"sidebar_mode": "toc",
|
||||
}
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
html_last_updated_fmt = '%Y-%m-%d %H:%M'
|
||||
|
||||
# -- Options for LaTeX output -------------------------------------------------
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass
|
||||
# [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Placement.tex', u'OpenStack Placement API Documentation',
|
||||
u'OpenStack Foundation', 'manual'),
|
||||
]
|
||||
|
||||
# -- Options for openstackdocstheme -------------------------------------------
|
||||
|
||||
openstack_projects = [
|
||||
'nova',
|
||||
]
|
|
@ -1,33 +0,0 @@
|
|||
:tocdepth: 2
|
||||
|
||||
===============
|
||||
Placement API
|
||||
===============
|
||||
|
||||
This is a reference for the OpenStack Placement API. To learn more about
|
||||
OpenStack Placement API concepts, please refer to the :nova-doc:`Placement
|
||||
Introduction <user/placement.html>`.
|
||||
|
||||
The Placement API uses JSON for data exchange. As such, the ``Content-Type``
|
||||
header for APIs sending data payloads in the request body (i.e. ``PUT`` and
|
||||
``POST``) must be set to ``application/json`` unless otherwise noted.
|
||||
|
||||
.. rest_expand_all::
|
||||
|
||||
.. include:: request-ids.inc
|
||||
.. include:: root.inc
|
||||
.. include:: resource_providers.inc
|
||||
.. include:: resource_provider.inc
|
||||
.. include:: resource_classes.inc
|
||||
.. include:: resource_class.inc
|
||||
.. include:: inventories.inc
|
||||
.. include:: inventory.inc
|
||||
.. include:: aggregates.inc
|
||||
.. include:: traits.inc
|
||||
.. include:: resource_provider_traits.inc
|
||||
.. include:: allocations.inc
|
||||
.. include:: resource_provider_allocations.inc
|
||||
.. include:: usages.inc
|
||||
.. include:: resource_provider_usages.inc
|
||||
.. include:: allocation_candidates.inc
|
||||
.. include:: reshaper.inc
|
|
@ -1,134 +0,0 @@
|
|||
=============================
|
||||
Resource provider inventories
|
||||
=============================
|
||||
|
||||
Each resource provider has inventory records for one or more classes
|
||||
of resources. An inventory record contains information about the total
|
||||
and reserved amounts of the resource and any consumption constraints
|
||||
for that resource against the provider.
|
||||
|
||||
List resource provider inventories
|
||||
==================================
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/inventories
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- inventories: inventories
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- allocation_ratio: allocation_ratio
|
||||
- max_unit: max_unit
|
||||
- min_unit: min_unit
|
||||
- reserved: reserved
|
||||
- step_size: step_size
|
||||
- total: total
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/get-inventories.json
|
||||
:language: javascript
|
||||
|
||||
Update resource provider inventories
|
||||
====================================
|
||||
|
||||
Replaces the set of inventory records for the resource provider identified by `{uuid}`.
|
||||
|
||||
.. rest_method:: PUT /resource_providers/{uuid}/inventories
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- inventories: inventories
|
||||
- total: total
|
||||
- allocation_ratio: allocation_ratio_opt
|
||||
- max_unit: max_unit_opt
|
||||
- min_unit: min_unit_opt
|
||||
- reserved: reserved_opt
|
||||
- step_size: step_size_opt
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/update-inventories-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- inventories: inventories
|
||||
- allocation_ratio: allocation_ratio
|
||||
- max_unit: max_unit
|
||||
- min_unit: min_unit
|
||||
- reserved: reserved
|
||||
- step_size: step_size
|
||||
- total: total
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/update-inventories.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Delete resource provider inventories
|
||||
====================================
|
||||
|
||||
Deletes all inventory records for the resource provider identified by `{uuid}`.
|
||||
|
||||
**Troubleshooting**
|
||||
|
||||
The request returns an HTTP 409 when there are alllocations against
|
||||
the provider or if the provider's inventory is updated by another
|
||||
thread while attempting the operation.
|
||||
|
||||
.. note:: Method is available starting from version 1.5.
|
||||
|
||||
.. rest_method:: DELETE /resource_providers/{uuid}/inventories
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404), conflict(409)
|
||||
|
||||
.. note:: Since this request does not accept the resource provider generation,
|
||||
it is not safe to use when multiple threads are managing inventories
|
||||
for a single provider. In such situations, use the
|
||||
``PUT /resource_providers/{uuid}/inventories`` API with an empty
|
||||
``inventories`` dict.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,128 +0,0 @@
|
|||
===========================
|
||||
Resource provider inventory
|
||||
===========================
|
||||
|
||||
See `Resource provider inventories`_ for a description.
|
||||
|
||||
This group of API calls works with a single inventory identified by ``resource_class``.
|
||||
One inventory can be listed, created, updated and deleted per each call.
|
||||
|
||||
Show resource provider inventory
|
||||
================================
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/inventories/{resource_class}
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- resource_class: resource_class_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- allocation_ratio: allocation_ratio
|
||||
- max_unit: max_unit
|
||||
- min_unit: min_unit
|
||||
- reserved: reserved
|
||||
- step_size: step_size
|
||||
- total: total
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/get-inventory.json
|
||||
:language: javascript
|
||||
|
||||
Update resource provider inventory
|
||||
==================================
|
||||
|
||||
Replace the inventory record of the `{resource_class}` for the resource
|
||||
provider identified by `{uuid}`.
|
||||
|
||||
.. rest_method:: PUT /resource_providers/{uuid}/inventories/{resource_class}
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- resource_class: resource_class_path
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- total: total
|
||||
- allocation_ratio: allocation_ratio_opt
|
||||
- max_unit: max_unit_opt
|
||||
- min_unit: min_unit_opt
|
||||
- reserved: reserved_opt
|
||||
- step_size: step_size_opt
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/update-inventory-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- allocation_ratio: allocation_ratio
|
||||
- max_unit: max_unit
|
||||
- min_unit: min_unit
|
||||
- reserved: reserved
|
||||
- step_size: step_size
|
||||
- total: total
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/inventories/update-inventory.json
|
||||
:language: javascript
|
||||
|
||||
Delete resource provider inventory
|
||||
==================================
|
||||
|
||||
Delete the inventory record of the `{resource_class}` for
|
||||
the resource provider identified by `{uuid}`.
|
||||
|
||||
See `Troubleshooting`_ section in ``Delete resource provider
|
||||
inventories`` for a description. In addition, the request returns
|
||||
HTTP 409 when there are allocations for the specified resource
|
||||
provider and resource class.
|
||||
|
||||
.. _Troubleshooting: ?expanded=delete-resource-provider-inventories-detail#delete-resource-provider-inventories
|
||||
|
||||
.. rest_method:: DELETE /resource_providers/{uuid}/inventories/{resource_class}
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404), conflict(409)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- resource_class: resource_class_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,640 +0,0 @@
|
|||
# variables in header
|
||||
location:
|
||||
description: |
|
||||
The location URL of the resource created,
|
||||
HTTP header "Location: <Location URL>" will be returned.
|
||||
in: header
|
||||
required: true
|
||||
type: string
|
||||
|
||||
# variables in path
|
||||
consumer_uuid: &consumer_uuid
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: >
|
||||
The uuid of a consumer.
|
||||
resource_class_path: &resource_class_path
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: >
|
||||
The name of one resource class.
|
||||
resource_class_path_custom: &resource_class_path_custom
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: >
|
||||
The name of one resource class. The name must start with
|
||||
the prefix ``CUSTOM_``. If not, the request returns a ``Bad Request (400)``
|
||||
response code.
|
||||
resource_provider_uuid_path: &resource_provider_uuid_path
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: >
|
||||
The uuid of a resource provider.
|
||||
trait_name:
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: >
|
||||
The name of a trait.
|
||||
|
||||
# variables in query
|
||||
allocation_candidates_group_policy:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
min_version: 1.25
|
||||
description: >
|
||||
When more than one ``resourcesN`` query parameter is supplied,
|
||||
``group_policy`` is required to indicate how the groups should interact.
|
||||
With ``group_policy=none``, separate groupings - numbered or unnumbered -
|
||||
may or may not be satisfied by the same provider. With
|
||||
``group_policy=isolate``, numbered groups are guaranteed to be satisfied by
|
||||
*different* providers - though there may still be overlap with the
|
||||
unnumbered group.
|
||||
allocation_candidates_limit:
|
||||
type: integer
|
||||
in: query
|
||||
required: false
|
||||
min_version: 1.16
|
||||
description: >
|
||||
A positive integer used to limit the maximum number of allocation
|
||||
candidates returned in the response.
|
||||
member_of: &member_of
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
A string representing an aggregate uuid; or the prefix ``in:`` followed by
|
||||
a comma-separated list of strings representing aggregate uuids. The
|
||||
returned resource providers must be associated with at least one of the
|
||||
aggregates identified by uuid::
|
||||
|
||||
member_of=5e08ea53-c4c6-448e-9334-ac4953de3cfa
|
||||
member_of=in:42896e0d-205d-4fe3-bd1e-100924931787,5e08ea53-c4c6-448e-9334-ac4953de3cfa
|
||||
|
||||
**Starting from microversion 1.24** specifying multiple ``member_of`` query
|
||||
string parameters is possible. Multiple ``member_of`` parameters will
|
||||
result in filtering providers that are associated with aggregates listed in
|
||||
all of the ``member_of`` query string values. For example, to get the
|
||||
providers that are associated with aggregate A as well as associated with
|
||||
any of aggregates B or C, the user could issue the following query::
|
||||
|
||||
member_of=AGGA_UUID&member_of=in:AGGB_UUID,AGGC_UUID
|
||||
min_version: 1.3
|
||||
member_of_1_21:
|
||||
<<: *member_of
|
||||
min_version: 1.21
|
||||
member_of_granular:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
A string representing an aggregate uuid; or the prefix ``in:`` followed by
|
||||
a comma-separated list of strings representing aggregate uuids. The
|
||||
returned resource providers must be associated with at least one of the
|
||||
aggregates identified by uuid. The parameter key is ``member_ofN``, where
|
||||
``N`` represents a positive integer suffix corresponding with a
|
||||
``resourcesN`` parameter. The value format is the same as for the
|
||||
(unnumbered) ``member_of`` parameter; but all of the resources and traits
|
||||
specified in a numbered grouping will always be satisfied by the same
|
||||
resource provider. Separate groupings - numbered or unnumbered - may or may
|
||||
not be satisfied by the same provider, depending on the value of the
|
||||
``group_policy`` parameter.
|
||||
|
||||
It is an error to specify a ``member_ofN`` parameter without a
|
||||
corresponding ``resourcesN`` parameter with the same suffix.
|
||||
min_version: 1.25
|
||||
project_id: &project_id
|
||||
type: string
|
||||
in: query
|
||||
required: true
|
||||
description: >
|
||||
The uuid of a project.
|
||||
required_traits_granular:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: |
|
||||
A comma-separated list of traits that a provider must have, or (if prefixed
|
||||
with a ``!``) **not** have::
|
||||
|
||||
required42=HW_CPU_X86_AVX,HW_CPU_X86_SSE,!HW_CPU_X86_AVX2
|
||||
|
||||
The parameter key is ``requiredN``, where ``N`` represents a
|
||||
positive integer suffix corresponding with a ``resourcesN`` parameter.
|
||||
The value format is the same as for the (unnumbered) ``required``
|
||||
parameter; but all of the resources and traits specified in a numbered
|
||||
grouping will always be satisfied by the same resource provider. Separate
|
||||
groupings - numbered or unnumbered - may or may not be satisfied by the
|
||||
same provider, depending on the value of the ``group_policy`` parameter.
|
||||
|
||||
It is an error to specify a ``requiredN`` parameter without a corresponding
|
||||
``resourcesN`` parameter with the same suffix.
|
||||
min_version: 1.25
|
||||
required_traits_unnumbered:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
min_version: 1.17
|
||||
description: |
|
||||
A comma-separated list of traits that a provider must have::
|
||||
|
||||
required=HW_CPU_X86_AVX,HW_CPU_X86_SSE
|
||||
|
||||
Allocation requests in the response will be for resource providers that
|
||||
have capacity for all requested resources and the set of those resource
|
||||
providers will *collectively* contain all of the required traits. These
|
||||
traits may be satisfied by any provider in the same non-sharing tree or
|
||||
associated via aggregate. **Starting from microversion 1.22** traits which
|
||||
are forbidden from any resource provider may be expressed by prefixing a
|
||||
trait with a ``!``.
|
||||
resource_provider_name_query:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
The name of a resource provider to filter the list.
|
||||
resource_provider_required_query:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
A comma-delimited list of string trait names. Results will be filtered to
|
||||
include only resource providers having all the specified traits. **Starting
|
||||
from microversion 1.22** traits which are forbidden from any resource
|
||||
provider may be expressed by prefixing a trait with a ``!``.
|
||||
min_version: 1.18
|
||||
resource_provider_tree_query:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
A UUID of a resource provider. The returned resource providers will be in
|
||||
the same "provider tree" as the specified provider.
|
||||
min_version: 1.14
|
||||
resource_provider_uuid_query:
|
||||
<<: *resource_provider_uuid_path
|
||||
in: query
|
||||
required: false
|
||||
resources_query_1_4:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: |
|
||||
A comma-separated list of strings indicating an amount of
|
||||
resource of a specified class that a provider must have the
|
||||
capacity and availability to serve::
|
||||
|
||||
resources=VCPU:4,DISK_GB:64,MEMORY_MB:2048
|
||||
min_version: 1.4
|
||||
resources_query_ac:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: |
|
||||
A comma-separated list of strings indicating an amount of
|
||||
resource of a specified class that providers in each allocation request
|
||||
must *collectively* have the capacity and availability to serve::
|
||||
|
||||
resources=VCPU:4,DISK_GB:64,MEMORY_MB:2048
|
||||
|
||||
These resources may be satisfied by any provider in the same non-sharing
|
||||
tree or associated via aggregate.
|
||||
resources_query_granular:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: |
|
||||
A comma-separated list of strings indicating an amount of
|
||||
resource of a specified class that a provider must have the
|
||||
capacity to serve::
|
||||
|
||||
resources42=VCPU:4,DISK_GB:64,MEMORY_MB:2048
|
||||
|
||||
The parameter key is ``resourcesN``, where ``N`` represents a unique
|
||||
positive integer suffix. The value format is the same as for the
|
||||
(unnumbered) ``resources`` parameter, but the resources specified in a
|
||||
``resourcesN`` parameter will always be satisfied by a single provider.
|
||||
Separate groupings - numbered or unnumbered - may or may not be satisfied
|
||||
by the same provider depending on the value of the ``group_policy``
|
||||
parameter.
|
||||
min_version: 1.25
|
||||
trait_associated:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
If this parameter has a true value, the returned traits will be
|
||||
those that are associated with at least one resource provider.
|
||||
Available values for the parameter are true and false.
|
||||
trait_name_query:
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: |
|
||||
A string to filter traits. The following options are available:
|
||||
|
||||
`startswith` operator filters the traits whose name begins with a
|
||||
specific prefix, e.g. name=startswith:CUSTOM,
|
||||
|
||||
`in` operator filters the traits whose name is in the specified list, e.g.
|
||||
name=in:HW_CPU_X86_AVX,HW_CPU_X86_SSE,HW_CPU_X86_INVALID_FEATURE.
|
||||
user_id: &user_id
|
||||
type: string
|
||||
in: query
|
||||
required: false
|
||||
description: >
|
||||
The uuid of a user.
|
||||
|
||||
# variables in body
|
||||
aggregates:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of aggregate uuids. Previously nonexistent aggregates are
|
||||
created automatically.
|
||||
allocation_ratio: &allocation_ratio
|
||||
type: float
|
||||
in: body
|
||||
required: true
|
||||
description: |
|
||||
It is used in determining whether consumption of the resource of
|
||||
the provider can exceed physical constraints.
|
||||
|
||||
For example, for a vCPU resource with::
|
||||
|
||||
allocation_ratio = 16.0
|
||||
total = 8
|
||||
|
||||
Overall capacity is equal to 128 vCPUs.
|
||||
allocation_ratio_opt:
|
||||
<<: *allocation_ratio
|
||||
required: false
|
||||
allocation_requests:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of objects that contain a
|
||||
serialized HTTP body that a client may subsequently use in a call
|
||||
to PUT /allocations/{consumer_uuid} to claim resources against a
|
||||
related set of resource providers.
|
||||
allocations_array:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of dictionaries.
|
||||
allocations_by_resource_provider:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of allocations keyed by resource provider uuid.
|
||||
allocations_dict: &allocations_dict
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of resource allocations keyed by resource provider uuid.
|
||||
allocations_dict_empty:
|
||||
<<: *allocations_dict
|
||||
description: >
|
||||
A dictionary of resource allocations keyed by resource provider uuid.
|
||||
If this is an empty object, allocations for this consumer will be
|
||||
removed.
|
||||
min_version: null
|
||||
capacity:
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The amount of the resource that the provider can accommodate.
|
||||
consumer_generation: &consumer_generation
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The generation of the consumer. Should be set to ``null`` when indicating
|
||||
that the caller expects the consumer does not yet exist.
|
||||
consumer_generation_min:
|
||||
<<: *consumer_generation
|
||||
min_version: 1.28
|
||||
consumer_uuid_body:
|
||||
<<: *consumer_uuid
|
||||
in: body
|
||||
inventories:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of inventories keyed by resource classes.
|
||||
max_unit: &max_unit
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A maximum amount any single allocation against an inventory can have.
|
||||
max_unit_opt:
|
||||
<<: *max_unit
|
||||
required: false
|
||||
min_unit: &min_unit
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A minimum amount any single allocation against an inventory can have.
|
||||
min_unit_opt:
|
||||
<<: *min_unit
|
||||
required: false
|
||||
project_id_body: &project_id_body
|
||||
<<: *project_id
|
||||
in: body
|
||||
project_id_body_1_12:
|
||||
<<: *project_id_body
|
||||
min_version: 1.12
|
||||
project_id_body_1_8:
|
||||
<<: *project_id_body
|
||||
min_version: 1.8
|
||||
provider_summaries:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary keyed by resource provider UUID included in the
|
||||
``allocation_requests``, of dictionaries of inventory/capacity information.
|
||||
provider_summaries_1_12:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary keyed by resource provider UUID included in the
|
||||
``allocation_requests``, of dictionaries of inventory/capacity information.
|
||||
The list of traits the resource provider has associated with it is included
|
||||
in version 1.17 and above.
|
||||
Starting from microversion 1.29, the provider summaries include
|
||||
all resource providers in the same resource provider tree that has one
|
||||
or more resource providers included in the ``allocation_requests``.
|
||||
reserved: &reserved
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The amount of the resource a provider has reserved for its own use.
|
||||
reserved_opt:
|
||||
<<: *reserved
|
||||
required: false
|
||||
description: >
|
||||
The amount of the resource a provider has reserved for its own use.
|
||||
Up to microversion 1.25, this value has to be less than the value of
|
||||
``total``. Starting from microversion 1.26, this value has to be less
|
||||
than or equal to the value of ``total``.
|
||||
reshaper_allocations:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of multiple allocations, keyed by consumer uuid. Each
|
||||
collection of allocations describes the full set of allocations for
|
||||
each consumer. Each consumer allocations dict is itself a dictionary
|
||||
of resource allocations keyed by resource provider uuid. An empty
|
||||
dictionary indicates no change in existing allocations, whereas an empty
|
||||
``allocations`` dictionary **within** a consumer dictionary indicates that
|
||||
all allocations for that consumer should be deleted.
|
||||
reshaper_inventories:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of multiple inventories, keyed by resource provider uuid. Each
|
||||
inventory describes the desired full inventory for each resource provider.
|
||||
An empty dictionary causes the inventory for that provider to be deleted.
|
||||
resource_class:
|
||||
<<: *resource_class_path
|
||||
in: body
|
||||
resource_class_custom:
|
||||
<<: *resource_class_path_custom
|
||||
in: body
|
||||
resource_class_links:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of links associated with one resource class.
|
||||
resource_classes:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of ``resource_class`` objects.
|
||||
resource_provider_allocations:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of allocation records keyed by consumer uuid.
|
||||
resource_provider_generation: &resource_provider_generation
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A consistent view marker that assists with the management of
|
||||
concurrent resource provider updates.
|
||||
resource_provider_generation_optional:
|
||||
<<: *resource_provider_generation
|
||||
required: false
|
||||
description: >
|
||||
A consistent view marker that assists with the management of
|
||||
concurrent resource provider updates. The value is ignored;
|
||||
it is present to preserve symmetry between read and
|
||||
write representations.
|
||||
resource_provider_generation_v1_19:
|
||||
<<: *resource_provider_generation
|
||||
min_version: 1.19
|
||||
resource_provider_links: &resource_provider_links
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: |
|
||||
A list of links associated with one resource provider.
|
||||
|
||||
.. note::
|
||||
|
||||
Aggregates relationship link is available starting from version 1.1.
|
||||
Traits relationship link is available starting from version 1.6.
|
||||
Allocations relationship link is available starting from version 1.11.
|
||||
|
||||
resource_provider_links_v1_20:
|
||||
<<: *resource_provider_links
|
||||
description: |
|
||||
A list of links associated with the resource provider.
|
||||
|
||||
resource_provider_name:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The name of one resource provider.
|
||||
resource_provider_object:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary which contains the UUID of the resource provider.
|
||||
resource_provider_parent_provider_uuid_request:
|
||||
type: string
|
||||
in: body
|
||||
required: false
|
||||
description: >
|
||||
The UUID of the immediate parent of the resource provider. Once set, the
|
||||
parent of a resource provider cannot be changed.
|
||||
min_version: 1.14
|
||||
resource_provider_parent_provider_uuid_required_no_min:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The UUID of the immediate parent of the resource provider.
|
||||
resource_provider_parent_provider_uuid_response_1_14:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The UUID of the immediate parent of the resource provider.
|
||||
min_version: 1.14
|
||||
resource_provider_parent_provider_uuid_response_1_29:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The UUID of the immediate parent of the resource provider.
|
||||
min_version: 1.29
|
||||
resource_provider_root_provider_uuid_1_29:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
UUID of the top-most provider in this provider tree.
|
||||
min_version: 1.29
|
||||
resource_provider_root_provider_uuid_no_min: &resource_provider_root_provider_uuid_no_min
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
UUID of the top-most provider in this provider tree.
|
||||
resource_provider_root_provider_uuid_required:
|
||||
<<: *resource_provider_root_provider_uuid_no_min
|
||||
description: >
|
||||
Read-only UUID of the top-most provider in this provider tree.
|
||||
min_version: 1.14
|
||||
resource_provider_usages:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The usage summary of the resource provider. This is a dictionary that
|
||||
describes how much each class of resource is being consumed on this
|
||||
resource provider. For example, ``"VCPU": 1`` means 1 VCPU is used.
|
||||
resource_provider_uuid:
|
||||
<<: *resource_provider_uuid_path
|
||||
in: body
|
||||
resource_provider_uuid_opt:
|
||||
<<: *resource_provider_uuid_path
|
||||
in: body
|
||||
required: false
|
||||
resource_providers:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of ``resource_provider`` objects.
|
||||
resources:
|
||||
type: object
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A dictionary of resource records keyed by resource class name.
|
||||
step_size: &step_size
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A representation of the divisible amount of the resource
|
||||
that may be requested. For example, step_size = 5 means
|
||||
that only values divisible by 5 (5, 10, 15, etc.) can be requested.
|
||||
step_size_opt:
|
||||
<<: *step_size
|
||||
required: false
|
||||
total:
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The actual amount of the resource that the provider can accommodate.
|
||||
traits: &traits
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of traits.
|
||||
traits_1_17:
|
||||
<<: *traits
|
||||
min_version: 1.17
|
||||
used:
|
||||
type: integer
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The amount of the resource that has been already allocated.
|
||||
user_id_body: &user_id_body
|
||||
<<: *user_id
|
||||
in: body
|
||||
required: true
|
||||
user_id_body_1_12:
|
||||
<<: *user_id_body
|
||||
min_version: 1.12
|
||||
user_id_body_1_8:
|
||||
<<: *user_id_body
|
||||
min_version: 1.8
|
||||
version_id:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A common name for the version being described. Informative only.
|
||||
version_links:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of links related to and describing this version.
|
||||
version_max:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The maximum microversion that is supported.
|
||||
version_min:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The minimum microversion that is supported.
|
||||
version_status:
|
||||
type: string
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
The status of the version being described. With placement this is
|
||||
"CURRENT".
|
||||
versions:
|
||||
type: array
|
||||
in: body
|
||||
required: true
|
||||
description: >
|
||||
A list of version objects that describe the API versions available.
|
|
@ -1,66 +0,0 @@
|
|||
===========
|
||||
Request IDs
|
||||
===========
|
||||
|
||||
All logs on the system, by default, include the global request ID and
|
||||
the local request ID when available.
|
||||
The local request ID is a unique ID locally generated by each service,
|
||||
and thus different for each service (Nova, Cinder, Glance, Neutron, etc.)
|
||||
involved in that operation. The format is ``req-`` + UUID (UUID4).
|
||||
The global request ID is a user-specified request ID which is utilized as
|
||||
a common identifier by all services. This request ID is same among all
|
||||
services involved in that operation. The format is ``req-`` + UUID (UUID4).
|
||||
This allows an administrator to track
|
||||
the API request processing as it transitions between all the different
|
||||
nova services or between nova and other component services called by Nova
|
||||
during that request.
|
||||
|
||||
Even if specifying a global request ID in a request, users receive always
|
||||
a local request ID as the response.
|
||||
|
||||
For more details about request IDs, please reference: `Faults
|
||||
<https://developer.openstack.org/api-guide/compute/faults.html>`_
|
||||
(It is *not* for Placement APIs, but there are some common points.)
|
||||
|
||||
**Request**
|
||||
|
||||
.. NOTE(takashin): The 'rest_parameters' directive needs the 'rest_method'
|
||||
directive before itself. But this file does not contain
|
||||
the 'rest_method' directive.
|
||||
So the 'rest_parameters' directive is not used.
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 10 10 60
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- In
|
||||
- Type
|
||||
- Description
|
||||
* - X-Openstack-Request-Id (Optional)
|
||||
- header
|
||||
- string
|
||||
- The global request ID, which is a unique common ID for tracking each
|
||||
request in OpenStack components. The format of the global request ID
|
||||
must be ``req-`` + UUID (UUID4). If not in accordance with the format,
|
||||
it is ignored. It is associated with the request and appears in the log
|
||||
lines for that request. By default, the middleware configuration ensures
|
||||
that the global request ID appears in the log files.
|
||||
|
||||
**Response**
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 10 10 60
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- In
|
||||
- Type
|
||||
- Description
|
||||
* - X-Openstack-Request-Id
|
||||
- header
|
||||
- string
|
||||
- The local request ID, which is a unique ID generated automatically for
|
||||
tracking each request to nova. It is associated with the request and
|
||||
appears in the log lines for that request. By default, the middleware
|
||||
configuration ensures that the local request ID appears in the log files.
|
|
@ -1,46 +0,0 @@
|
|||
========
|
||||
Reshaper
|
||||
========
|
||||
|
||||
.. note:: Reshaper requests are available starting from version 1.30.
|
||||
|
||||
Reshaper
|
||||
========
|
||||
|
||||
Atomically migrate resource provider inventories and associated allocations.
|
||||
This is used when some of the inventory needs to move from one resource
|
||||
provider to another, such as when a class of inventory moves from a parent
|
||||
provider to a new child provider.
|
||||
|
||||
.. note:: This is a special operation that should only be used in rare cases
|
||||
of resource provider topology changing when inventory is in use.
|
||||
Only use this if you are really sure of what you are doing.
|
||||
|
||||
.. rest_method:: POST /reshaper
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error Response Codes: badRequest(400), conflict(409)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- inventories: reshaper_inventories
|
||||
- inventories.{resource_provider_uuid}.resource_provider_generation: resource_provider_generation
|
||||
- inventories.{resource_provider_uuid}.inventories: inventories
|
||||
- allocations: reshaper_allocations
|
||||
- allocations.{consumer_uuid}.allocations: allocations_dict_empty
|
||||
- allocations.{consumer_uuid}.allocations.{resource_provider_uuid}.resources: resources
|
||||
- allocations.{consumer_uuid}.project_id: project_id_body
|
||||
- allocations.{consumer_uuid}.user_id: user_id_body
|
||||
- allocations.{consumer_uuid}.consumer_generation: consumer_generation
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/reshaper/post-reshaper-1.30.json
|
||||
:language: javascript
|
||||
|
||||
No body content is returned on a successful POST.
|
|
@ -1,149 +0,0 @@
|
|||
==============
|
||||
Resource Class
|
||||
==============
|
||||
|
||||
See `resource classes`_ for a description.
|
||||
This group of API calls works with a single resource class
|
||||
identified by `name`. One resource class can be listed, updated and
|
||||
deleted.
|
||||
|
||||
.. note:: Resource class API calls are availiable starting from version 1.2.
|
||||
|
||||
Show resource class
|
||||
===================
|
||||
|
||||
.. rest_method:: GET /resource_classes/{name}
|
||||
|
||||
Return a representation of the resource class identified by `{name}`.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class
|
||||
- links: resource_class_links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_classes/get-resource_class.json
|
||||
:language: javascript
|
||||
|
||||
Update resource class
|
||||
=====================
|
||||
|
||||
.. rest_method:: PUT /resource_classes/{name}
|
||||
|
||||
Create or validate the existence of single resource class identified by `{name}`.
|
||||
|
||||
.. note:: Method is available starting from version 1.7.
|
||||
|
||||
Normal Response Codes: 201, 204
|
||||
|
||||
A `201 Created` response code will be returned if the new resource class
|
||||
is successfully created.
|
||||
A `204 No Content` response code will be returned if the resource class
|
||||
already exists.
|
||||
|
||||
Error response codes: badRequest(400)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class_path_custom
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- Location: location
|
||||
|
||||
No body content is returned on a successful PUT.
|
||||
|
||||
Update resource class (microversions 1.2 - 1.6)
|
||||
===============================================
|
||||
|
||||
.. warning:: Changing resource class names using the <1.7 microversion is strongly discouraged.
|
||||
|
||||
.. rest_method:: PUT /resource_classes/{name}
|
||||
|
||||
Update the name of the resource class identified by `{name}`.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
A `409 Conflict` response code will be returned if another resource
|
||||
class exists with the provided name.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class_path
|
||||
- name: resource_class_custom
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_classes/update-resource_class-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class
|
||||
- links: resource_class_links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_classes/update-resource_class.json
|
||||
:language: javascript
|
||||
|
||||
Delete resource class
|
||||
=====================
|
||||
|
||||
.. rest_method:: DELETE /resource_classes/{name}
|
||||
|
||||
Delete the resource class identified by `{name}`.
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
A `400 BadRequest` response code will be returned if trying
|
||||
to delete a standard resource class.
|
||||
|
||||
A `409 Conflict` response code will be returned if there exist
|
||||
inventories for the resource class.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,73 +0,0 @@
|
|||
================
|
||||
Resource Classes
|
||||
================
|
||||
|
||||
Resource classes are entities that indicate standard or
|
||||
deployer-specific resources that can be provided by a resource
|
||||
provider.
|
||||
|
||||
.. note:: Resource class API calls are available starting from version 1.2.
|
||||
|
||||
List resource classes
|
||||
=====================
|
||||
|
||||
.. rest_method:: GET /resource_classes
|
||||
|
||||
Return a list of all resource classes.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_classes: resource_classes
|
||||
- links: resource_class_links
|
||||
- name: resource_class
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_classes/get-resource_classes.json
|
||||
:language: javascript
|
||||
|
||||
Create resource class
|
||||
=====================
|
||||
|
||||
.. rest_method:: POST /resource_classes
|
||||
|
||||
Create a new resource class. The new class must be a *custom* resource class,
|
||||
prefixed with `CUSTOM_` and distinct from the standard resource classes.
|
||||
|
||||
Normal Response Codes: 201
|
||||
|
||||
Error response codes: badRequest(400), conflict(409)
|
||||
|
||||
A `400 BadRequest` response code will be returned if the resource class
|
||||
does not have prefix `CUSTOM_`.
|
||||
|
||||
A `409 Conflict` response code will
|
||||
be returned if another resource class exists with the provided name.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_class_custom
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_classes/create-resource_classes-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- Location: location
|
||||
|
||||
No body content is returned on a successful POST.
|
|
@ -1,122 +0,0 @@
|
|||
=================
|
||||
Resource Provider
|
||||
=================
|
||||
|
||||
See `Resource providers`_ for a description.
|
||||
This group of API calls works with a single resource provider
|
||||
identified by `uuid`. One resource provider can be listed, updated and
|
||||
deleted.
|
||||
|
||||
Show resource provider
|
||||
======================
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}
|
||||
|
||||
Return a representation of the resource provider identified by `{uuid}`.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- generation: resource_provider_generation
|
||||
- uuid: resource_provider_uuid
|
||||
- links: resource_provider_links
|
||||
- name: resource_provider_name
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_response_1_14
|
||||
- root_provider_uuid: resource_provider_root_provider_uuid_required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/get-resource_provider.json
|
||||
:language: javascript
|
||||
|
||||
Update resource provider
|
||||
========================
|
||||
|
||||
.. rest_method:: PUT /resource_providers/{uuid}
|
||||
|
||||
Update the name of the resource provider identified by `{uuid}`.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
A `409 Conflict` response code will be returned if another resource
|
||||
provider exists with the provided name.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- name: resource_provider_name
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_request
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/update-resource_provider-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- generation: resource_provider_generation
|
||||
- uuid: resource_provider_uuid
|
||||
- links: resource_provider_links
|
||||
- name: resource_provider_name
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_response_1_14
|
||||
- root_provider_uuid: resource_provider_root_provider_uuid_required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/update-resource_provider.json
|
||||
:language: javascript
|
||||
|
||||
Delete resource provider
|
||||
========================
|
||||
|
||||
.. rest_method:: DELETE /resource_providers/{uuid}
|
||||
|
||||
Delete the resource provider identified by `{uuid}`.
|
||||
This will also disassociate aggregates and delete inventories.
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404), conflict(409)
|
||||
|
||||
A `409 Conflict` response code will be returned if there exist
|
||||
allocations records for any of the inventories that would be deleted
|
||||
as a result of removing the resource provider.
|
||||
|
||||
This error code will be also returned if there are existing child resource
|
||||
providers under the parent resource provider being deleted.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,40 +0,0 @@
|
|||
=============================
|
||||
Resource provider allocations
|
||||
=============================
|
||||
|
||||
See `Allocations`_ for a description.
|
||||
|
||||
List resource provider allocations
|
||||
==================================
|
||||
|
||||
Return a representation of all allocations made against this resource
|
||||
provider, keyed by consumer uuid. Each allocation includes one or more
|
||||
classes of resource and the amount consumed.
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/allocations
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- allocations: resource_provider_allocations
|
||||
- resources: resources
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_provider_allocations/get-resource_provider_allocations.json
|
||||
:language: javascript
|
|
@ -1,121 +0,0 @@
|
|||
========================
|
||||
Resource provider traits
|
||||
========================
|
||||
|
||||
See `Traits`_ for a description.
|
||||
This group of API requests queries/edits the association between
|
||||
traits and resource providers.
|
||||
|
||||
.. note:: Traits API requests are availiable starting from version 1.6.
|
||||
|
||||
List resource provider traits
|
||||
=============================
|
||||
|
||||
Return a list of traits for the resource provider identified by `{uuid}`.
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/traits
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- traits: traits
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_provider_traits/get-resource_provider-traits.json
|
||||
:language: javascript
|
||||
|
||||
Update resource provider traits
|
||||
===============================
|
||||
|
||||
Associate traits with the resource provider identified by `{uuid}`.
|
||||
All the associated traits will be replaced by the traits specified in
|
||||
the request body.
|
||||
|
||||
.. rest_method:: PUT /resource_providers/{uuid}/traits
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
* `400 Bad Request` if any of the specified traits are not valid. The valid
|
||||
traits can be queried by `GET /traits`.
|
||||
* `409 Conflict` if the `resource_provider_generation` doesn't match with the
|
||||
server side.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
- traits: traits
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_provider_traits/update-resource_provider-traits-request.json
|
||||
:language: javascript
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- traits: traits
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_provider_traits/update-resource_provider-traits.json
|
||||
:language: javascript
|
||||
|
||||
|
||||
Delete resource provider traits
|
||||
===============================
|
||||
|
||||
Dissociate all the traits from the resource provider identified by `{uuid}`.
|
||||
|
||||
.. rest_method:: DELETE /resource_providers/{uuid}/traits
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404), conflict(409)
|
||||
|
||||
* `409 Conflict` if the provider's traits are updated by another
|
||||
thread while attempting the operation.
|
||||
|
||||
.. note:: Since this request does not accept the resource provider generation,
|
||||
it is not safe to use when multiple threads are managing traits for
|
||||
a single provider. In such situations, use the
|
||||
``PUT /resource_providers/{uuid}/traits`` API with an empty
|
||||
``traits`` list.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,42 +0,0 @@
|
|||
========================
|
||||
Resource provider usages
|
||||
========================
|
||||
|
||||
Show the consumption of resources for a resource provider
|
||||
in an aggregated form, i.e. without information for a particular consumer.
|
||||
See `Resource provider allocations`_.
|
||||
|
||||
List resource provider usages
|
||||
=============================
|
||||
|
||||
Return a report of usage information for resources associated with
|
||||
the resource provider identified by `{uuid}`. The value is a dictionary
|
||||
of resource classes paired with the sum of the allocations of that
|
||||
resource class for this resource provider.
|
||||
|
||||
.. rest_method:: GET /resource_providers/{uuid}/usages
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- uuid: resource_provider_uuid_path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_provider_generation: resource_provider_generation
|
||||
- usages: resource_provider_usages
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_provider_usages/get-resource_provider_usages.json
|
||||
:language: javascript
|
|
@ -1,116 +0,0 @@
|
|||
==================
|
||||
Resource Providers
|
||||
==================
|
||||
|
||||
Resource providers are entities which provide consumable inventory of one or
|
||||
more classes of resource (such as disk or memory). They can be listed (with
|
||||
filters), created, updated and deleted.
|
||||
|
||||
List resource providers
|
||||
=======================
|
||||
|
||||
.. rest_method:: GET /resource_providers
|
||||
|
||||
List an optionally filtered collection of resource providers.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400)
|
||||
|
||||
A `400 BadRequest` response code will be returned
|
||||
if a resource class specified in ``resources`` request parameter
|
||||
does not exist.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
Several query parameters are available to filter the returned list of
|
||||
resource providers. If multiple different parameters are provided, the results
|
||||
of all filters are merged with a boolean `AND`.
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_provider_name_query
|
||||
- uuid: resource_provider_uuid_query
|
||||
- member_of: member_of
|
||||
- resources: resources_query_1_4
|
||||
- in_tree: resource_provider_tree_query
|
||||
- required: resource_provider_required_query
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- resource_providers: resource_providers
|
||||
- generation: resource_provider_generation
|
||||
- uuid: resource_provider_uuid
|
||||
- links: resource_provider_links
|
||||
- name: resource_provider_name
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_response_1_14
|
||||
- root_provider_uuid: resource_provider_root_provider_uuid_required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/get-resource_providers.json
|
||||
:language: javascript
|
||||
|
||||
Create resource provider
|
||||
========================
|
||||
|
||||
.. rest_method:: POST /resource_providers
|
||||
|
||||
Create a new resource provider.
|
||||
|
||||
Normal Response Codes: 201 (microversions 1.0 - 1.19), 200 (microversions
|
||||
1.20 - )
|
||||
|
||||
Error response codes: conflict(409)
|
||||
|
||||
A `409 Conflict` response code will
|
||||
be returned if another resource provider exists with the provided name
|
||||
or uuid.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: resource_provider_name
|
||||
- uuid: resource_provider_uuid_opt
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_request
|
||||
|
||||
Request example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/create-resource_providers-request.json
|
||||
:language: javascript
|
||||
|
||||
Response (microversions 1.0 - 1.19)
|
||||
-----------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- Location: location
|
||||
|
||||
No body content is returned on a successful POST.
|
||||
|
||||
Response (microversions 1.20 - )
|
||||
--------------------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- Location: location
|
||||
- generation: resource_provider_generation
|
||||
- uuid: resource_provider_uuid
|
||||
- links: resource_provider_links_v1_20
|
||||
- name: resource_provider_name
|
||||
- parent_provider_uuid: resource_provider_parent_provider_uuid_required_no_min
|
||||
- root_provider_uuid: resource_provider_root_provider_uuid_no_min
|
||||
|
||||
Response Example (microversions 1.20 - )
|
||||
----------------------------------------
|
||||
|
||||
.. literalinclude:: ./samples/resource_providers/create-resource_provider.json
|
||||
:language: javascript
|
|
@ -1,51 +0,0 @@
|
|||
============
|
||||
API Versions
|
||||
============
|
||||
|
||||
In order to bring new features to users over time, the Placement API
|
||||
supports microversioning. Microversions allow use of certain features on a
|
||||
per-request basis via the ``OpenStack-API-Version`` header. For example, to
|
||||
request microversion 1.10, specify the header::
|
||||
|
||||
OpenStack-API-Version: placement 1.10
|
||||
|
||||
For more details about Microversions, please reference:
|
||||
`Microversions
|
||||
<https://developer.openstack.org/api-guide/compute/microversions.html>`_
|
||||
|
||||
.. note:: The maximum microversion supported by each release varies.
|
||||
Please reference:
|
||||
`REST API Version History
|
||||
<https://docs.openstack.org/nova/latest/user/placement.html#rest-api-version-history>`__
|
||||
for API microversion history details.
|
||||
|
||||
List Versions
|
||||
=============
|
||||
|
||||
.. rest_method:: GET /
|
||||
|
||||
Fetch information about all known major versions of the placement API,
|
||||
including information about the minimum and maximum microversions.
|
||||
|
||||
.. note:: At this time there is only one major version of the placement API:
|
||||
version 1.0.
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- versions: versions
|
||||
- id: version_id
|
||||
- min_version: version_min
|
||||
- max_version: version_max
|
||||
- status: version_status
|
||||
- links: version_links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/root/get-root.json
|
||||
:language: javascript
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"aggregates": [
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
],
|
||||
"resource_provider_generation": 8
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"aggregates": [
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"aggregates": [
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
],
|
||||
"resource_provider_generation": 9
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"aggregates": [
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
],
|
||||
"resource_provider_generation": 9
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
[
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"aggregates": [
|
||||
"42896e0d-205d-4fe3-bd1e-100924931787",
|
||||
"5e08ea53-c4c6-448e-9334-ac4953de3cfa"
|
||||
]
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
{
|
||||
"allocation_requests": [
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"provider_summaries": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": {
|
||||
"used": 0,
|
||||
"capacity": 1900
|
||||
}
|
||||
}
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
}
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"allocation_requests": [
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"provider_summaries": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": {
|
||||
"used": 0,
|
||||
"capacity": 1900
|
||||
}
|
||||
},
|
||||
"traits": ["HW_CPU_X86_SSE2", "HW_CPU_X86_AVX2"]
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
},
|
||||
"traits": ["HW_NIC_SRIOV"]
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
},
|
||||
"traits": []
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
{
|
||||
"allocation_requests": [
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"allocations": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": 100
|
||||
}
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": 1,
|
||||
"MEMORY_MB": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"provider_summaries": {
|
||||
"a99bad54-a275-4c4f-a8a3-ac00d57e5c64": {
|
||||
"resources": {
|
||||
"DISK_GB": {
|
||||
"used": 0,
|
||||
"capacity": 1900
|
||||
}
|
||||
},
|
||||
"traits": ["MISC_SHARES_VIA_AGGREGATE"],
|
||||
"parent_provider_uuid": null,
|
||||
"root_provider_uuid": "a99bad54-a275-4c4f-a8a3-ac00d57e5c64"
|
||||
},
|
||||
"35791f28-fb45-4717-9ea9-435b3ef7c3b3": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
},
|
||||
"traits": ["HW_CPU_X86_SSE2", "HW_CPU_X86_AVX2"],
|
||||
"parent_provider_uuid": null,
|
||||
"root_provider_uuid": "35791f28-fb45-4717-9ea9-435b3ef7c3b3"
|
||||
},
|
||||
"915ef8ed-9b91-4e38-8802-2e4224ad54cd": {
|
||||
"resources": {
|
||||
"VCPU": {
|
||||
"used": 0,
|
||||
"capacity": 384
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"used": 0,
|
||||
"capacity": 196608
|
||||
}
|
||||
},
|
||||
"traits": ["HW_NIC_SRIOV"],
|
||||
"parent_provider_uuid": null,
|
||||
"root_provider_uuid": "915ef8ed-9b91-4e38-8802-2e4224ad54cd"
|
||||
},
|
||||
"f5120cad-67d9-4f20-9210-3092a79a28cf": {
|
||||
"resources": {
|
||||
"SRIOV_NET_VF": {
|
||||
"used": 0,
|
||||
"capacity": 8
|
||||
}
|
||||
},
|
||||
"traits": [],
|
||||
"parent_provider_uuid": "915ef8ed-9b91-4e38-8802-2e4224ad54cd",
|
||||
"root_provider_uuid": "915ef8ed-9b91-4e38-8802-2e4224ad54cd"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
"allocation_requests": [
|
||||
{
|
||||
"allocations": [
|
||||
{
|
||||
"resource_provider": {
|
||||
"uuid": "30742363-f65e-4012-a60a-43e0bec38f0e"
|
||||
},
|
||||
"resources": {
|
||||
"MEMORY_MB": 512
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"provider_summaries": {
|
||||
"30742363-f65e-4012-a60a-43e0bec38f0e": {
|
||||
"resources": {
|
||||
"DISK_GB": {
|
||||
"capacity": 77,
|
||||
"used": 0
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"capacity": 11206,
|
||||
"used": 256
|
||||
},
|
||||
"VCPU": {
|
||||
"capacity": 64,
|
||||
"used": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"92637880-2d79-43c6-afab-d860886c6391": {
|
||||
"generation": 2,
|
||||
"resources": {
|
||||
"DISK_GB": 5
|
||||
}
|
||||
},
|
||||
"ba8e1ef8-7fa3-41a4-9bb4-d7cb2019899b": {
|
||||
"generation": 8,
|
||||
"resources": {
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"consumer_generation": 1,
|
||||
"project_id": "7e67cbf7-7c38-4a32-b85b-0739c690991a",
|
||||
"user_id": "067f691e-725a-451a-83e2-5c3d13e1dffc"
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"92637880-2d79-43c6-afab-d860886c6391": {
|
||||
"generation": 2,
|
||||
"resources": {
|
||||
"DISK_GB": 5
|
||||
}
|
||||
},
|
||||
"ba8e1ef8-7fa3-41a4-9bb4-d7cb2019899b": {
|
||||
"generation": 8,
|
||||
"resources": {
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"project_id": "7e67cbf7-7c38-4a32-b85b-0739c690991a",
|
||||
"user_id": "067f691e-725a-451a-83e2-5c3d13e1dffc"
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"30328d13-e299-4a93-a102-61e4ccabe474": {
|
||||
"consumer_generation": 1,
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {
|
||||
"e10927c4-8bc9-465d-ac60-d2f79f7e4a00": {
|
||||
"resources": {
|
||||
"VCPU": 2,
|
||||
"MEMORY_MB": 3
|
||||
},
|
||||
"generation": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"71921e4e-1629-4c5b-bf8d-338d915d2ef3": {
|
||||
"consumer_generation": 1,
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {}
|
||||
},
|
||||
"48c1d40f-45d8-4947-8d46-52b4e1326df8": {
|
||||
"consumer_generation": 1,
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {
|
||||
"e10927c4-8bc9-465d-ac60-d2f79f7e4a00": {
|
||||
"resources": {
|
||||
"VCPU": 4,
|
||||
"MEMORY_MB": 5
|
||||
},
|
||||
"generation": 12
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"30328d13-e299-4a93-a102-61e4ccabe474": {
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {
|
||||
"e10927c4-8bc9-465d-ac60-d2f79f7e4a00": {
|
||||
"resources": {
|
||||
"VCPU": 2,
|
||||
"MEMORY_MB": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"71921e4e-1629-4c5b-bf8d-338d915d2ef3": {
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {}
|
||||
},
|
||||
"48c1d40f-45d8-4947-8d46-52b4e1326df8": {
|
||||
"project_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"user_id": "131d4efb-abc0-4872-9b92-8c8b9dc4320f",
|
||||
"allocations": {
|
||||
"e10927c4-8bc9-465d-ac60-d2f79f7e4a00": {
|
||||
"resources": {
|
||||
"VCPU": 4,
|
||||
"MEMORY_MB": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"4e061c03-611e-4caa-bf26-999dcff4284e": {
|
||||
"resources": {
|
||||
"DISK_GB": 20
|
||||
}
|
||||
},
|
||||
"89873422-1373-46e5-b467-f0c5e6acf08f": {
|
||||
"resources": {
|
||||
"MEMORY_MB": 1024,
|
||||
"VCPU": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"user_id": "66cb2f29-c86d-47c3-8af5-69ae7b778c70",
|
||||
"project_id": "42a32c07-3eeb-4401-9373-68a8cdca6784"
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"4e061c03-611e-4caa-bf26-999dcff4284e": {
|
||||
"resources": {
|
||||
"DISK_GB": 20
|
||||
}
|
||||
},
|
||||
"89873422-1373-46e5-b467-f0c5e6acf08f": {
|
||||
"resources": {
|
||||
"MEMORY_MB": 1024,
|
||||
"VCPU": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"consumer_generation": 1,
|
||||
"user_id": "66cb2f29-c86d-47c3-8af5-69ae7b778c70",
|
||||
"project_id": "42a32c07-3eeb-4401-9373-68a8cdca6784"
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"allocations": [
|
||||
{
|
||||
"resource_provider": {
|
||||
"uuid": "844ac34d-620e-474c-833c-4c9921251353"
|
||||
},
|
||||
"resources": {
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"resource_provider": {
|
||||
"uuid": "92637880-2d79-43c6-afab-d860886c6391"
|
||||
},
|
||||
"resources": {
|
||||
"DISK_GB": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"project_id": "6e3b2ce9-9175-4830-a862-b9de690bdceb",
|
||||
"user_id": "81c516e3-5e0e-4dcb-9a38-4473d229a950"
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"inventories": {
|
||||
"DISK_GB": {
|
||||
"allocation_ratio": 1.0,
|
||||
"max_unit": 35,
|
||||
"min_unit": 1,
|
||||
"reserved": 0,
|
||||
"step_size": 1,
|
||||
"total": 35
|
||||
},
|
||||
"MEMORY_MB": {
|
||||
"allocation_ratio": 1.5,
|
||||
"max_unit": 5825,
|
||||
"min_unit": 1,
|
||||
"reserved": 512,
|
||||
"step_size": 1,
|
||||
"total": 5825
|
||||
},
|
||||
"VCPU": {
|
||||
"allocation_ratio": 16.0,
|
||||
"max_unit": 4,
|
||||
"min_unit": 1,
|
||||
"reserved": 0,
|
||||
"step_size": 1,
|
||||
"total": 4
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": 7
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"allocation_ratio": 16.0,
|
||||
"max_unit": 4,
|
||||
"min_unit": 1,
|
||||
"reserved": 0,
|
||||
"resource_provider_generation": 9,
|
||||
"step_size": 1,
|
||||
"total": 4
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"inventories": {
|
||||
"MEMORY_MB": {
|
||||
"allocation_ratio": 2.0,
|
||||
"max_unit": 16,
|
||||
"step_size": 4,
|
||||
"total": 128
|
||||
},
|
||||
"VCPU": {
|
||||
"allocation_ratio": 10.0,
|
||||
"reserved": 2,
|
||||
"total": 64
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": 1
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"inventories": {
|
||||
"MEMORY_MB": {
|
||||
"allocation_ratio": 2.0,
|
||||
"max_unit": 16,
|
||||
"min_unit": 1,
|
||||
"reserved": 0,
|
||||
"step_size": 4,
|
||||
"total": 128
|
||||
},
|
||||
"VCPU": {
|
||||
"allocation_ratio": 10.0,
|
||||
"max_unit": 2147483647,
|
||||
"min_unit": 1,
|
||||
"reserved": 2,
|
||||
"step_size": 1,
|
||||
"total": 64
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": 2
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"resource_provider_generation": 7,
|
||||
"total": 50
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"allocation_ratio": 1.0,
|
||||
"max_unit": 2147483647,
|
||||
"min_unit": 1,
|
||||
"reserved": 0,
|
||||
"resource_provider_generation": 8,
|
||||
"step_size": 1,
|
||||
"total": 50
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"9ae60315-80c2-48a0-a168-ca4f27c307e1": {
|
||||
"allocations": {
|
||||
"a7466641-cd72-499b-b6c9-c208eacecb3d": {
|
||||
"resources": {
|
||||
"DISK_GB": 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
"project_id": "2f0c4ffc-4c4d-407a-b334-56297b871b7f",
|
||||
"user_id": "cc8a0fe0-2b7c-4392-ae51-747bc73cf473",
|
||||
"consumer_generation": 1
|
||||
},
|
||||
"4a6444e5-10d6-43f6-9a0b-8acce9309ac9": {
|
||||
"allocations": {
|
||||
"c4ddddbb-01ee-4814-85c9-f57a962c22ba": {
|
||||
"resources": {
|
||||
"VCPU": 1
|
||||
}
|
||||
},
|
||||
"a7466641-cd72-499b-b6c9-c208eacecb3d": {
|
||||
"resources": {
|
||||
"DISK_GB": 20
|
||||
}
|
||||
}
|
||||
},
|
||||
"project_id": "2f0c4ffc-4c4d-407a-b334-56297b871b7f",
|
||||
"user_id": "406e1095-71cb-47b9-9b3c-aedb7f663f5a",
|
||||
"consumer_generation": 1
|
||||
},
|
||||
"e10e7ca0-2ac5-4c98-bad9-51c95b1930ed": {
|
||||
"allocations": {
|
||||
"c4ddddbb-01ee-4814-85c9-f57a962c22ba": {
|
||||
"resources": {
|
||||
"VCPU": 8
|
||||
}
|
||||
}
|
||||
},
|
||||
"project_id": "2f0c4ffc-4c4d-407a-b334-56297b871b7f",
|
||||
"user_id": "cc8a0fe0-2b7c-4392-ae51-747bc73cf473",
|
||||
"consumer_generation": 1
|
||||
}
|
||||
},
|
||||
"inventories": {
|
||||
"c4ddddbb-01ee-4814-85c9-f57a962c22ba": {
|
||||
"inventories": {
|
||||
"VCPU": {
|
||||
"max_unit": 8,
|
||||
"total": 10
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": null
|
||||
},
|
||||
"a7466641-cd72-499b-b6c9-c208eacecb3d": {
|
||||
"inventories": {
|
||||
"DISK_GB": {
|
||||
"min_unit": 10,
|
||||
"total": 2048,
|
||||
"max_unit": 1200,
|
||||
"step_size": 10
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": 5
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{"name": "CUSTOM_FPGA"}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/CUSTOM_FPGA",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "CUSTOM_FPGA"
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
{
|
||||
"resource_classes": [
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/VCPU",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "VCPU"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/MEMORY_MB",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "MEMORY_MB"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/DISK_GB",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "DISK_GB"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/PCI_DEVICE",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "PCI_DEVICE"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/SRIOV_NET_VF",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "SRIOV_NET_VF"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/NUMA_SOCKET",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "NUMA_SOCKET"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/NUMA_CORE",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "NUMA_CORE"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/NUMA_THREAD",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "NUMA_THREAD"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/NUMA_MEMORY_MB",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "NUMA_MEMORY_MB"
|
||||
},
|
||||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/IPV4_ADDRESS",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "IPV4_ADDRESS"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{"name": "CUSTOM_FPGA_V2"}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_classes/CUSTOM_FPGA_V2",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"name": "CUSTOM_FPGA_V2"
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"allocations": {
|
||||
"56785a3f-6f1c-4fec-af0b-0faf075b1fcb": {
|
||||
"resources": {
|
||||
"MEMORY_MB": 256,
|
||||
"VCPU": 1
|
||||
}
|
||||
},
|
||||
"9afd5aeb-d6b9-4dea-a588-1e6327a91834": {
|
||||
"resources": {
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 2
|
||||
}
|
||||
},
|
||||
"9d16a611-e7f9-4ef3-be26-c61ed01ecefb": {
|
||||
"resources": {
|
||||
"MEMORY_MB": 1024,
|
||||
"VCPU": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"resource_provider_generation": 12
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"resource_provider_generation": 1,
|
||||
"traits": [
|
||||
"CUSTOM_HW_FPGA_CLASS1",
|
||||
"CUSTOM_HW_FPGA_CLASS3"
|
||||
]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"resource_provider_generation": 0,
|
||||
"traits": [
|
||||
"CUSTOM_HW_FPGA_CLASS1",
|
||||
"CUSTOM_HW_FPGA_CLASS3"
|
||||
]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"resource_provider_generation": 1,
|
||||
"traits": [
|
||||
"CUSTOM_HW_FPGA_CLASS1",
|
||||
"CUSTOM_HW_FPGA_CLASS3"
|
||||
]
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"resource_provider_generation": 1,
|
||||
"usages": {
|
||||
"DISK_GB": 1,
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 1
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"generation": 0,
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f/aggregates",
|
||||
"rel": "aggregates"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f/inventories",
|
||||
"rel": "inventories"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f/usages",
|
||||
"rel": "usages"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f/traits",
|
||||
"rel": "traits"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/7d2590ae-fb85-4080-9306-058b4c915e3f/allocations",
|
||||
"rel": "allocations"
|
||||
}
|
||||
],
|
||||
"name": "NFS Share",
|
||||
"uuid": "7d2590ae-fb85-4080-9306-058b4c915e3f",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8",
|
||||
"root_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8"
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"name": "NFS Share",
|
||||
"uuid": "7d2590ae-fb85-4080-9306-058b4c915e3f",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8"
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"generation": 0,
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868/aggregates",
|
||||
"rel": "aggregates"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868/inventories",
|
||||
"rel": "inventories"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868/usages",
|
||||
"rel": "usages"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868/traits",
|
||||
"rel": "traits"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/3b4005be-d64b-456f-ba36-0ffd02718868/allocations",
|
||||
"rel": "allocations"
|
||||
}
|
||||
],
|
||||
"name": "Ceph Storage Pool",
|
||||
"uuid": "3b4005be-d64b-456f-ba36-0ffd02718868",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8",
|
||||
"root_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8"
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
"resource_providers": [
|
||||
{
|
||||
"generation": 1,
|
||||
"uuid": "99c09379-6e52-4ef8-9a95-b9ce6f68452e",
|
||||
"links": [
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e/aggregates",
|
||||
"rel": "aggregates"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e/inventories",
|
||||
"rel": "inventories"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e/usages",
|
||||
"rel": "usages"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e/traits",
|
||||
"rel": "traits"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/99c09379-6e52-4ef8-9a95-b9ce6f68452e/allocations",
|
||||
"rel": "allocations"
|
||||
}
|
||||
],
|
||||
"name": "vgr.localdomain",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8",
|
||||
"root_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8"
|
||||
},
|
||||
{
|
||||
"generation": 2,
|
||||
"uuid": "d0b381e9-8761-42de-8e6c-bba99a96d5f5",
|
||||
"links": [
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5/aggregates",
|
||||
"rel": "aggregates"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5/inventories",
|
||||
"rel": "inventories"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5/usages",
|
||||
"rel": "usages"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5/traits",
|
||||
"rel": "traits"
|
||||
},
|
||||
{
|
||||
"href": "/resource_providers/d0b381e9-8761-42de-8e6c-bba99a96d5f5/allocations",
|
||||
"rel": "allocations"
|
||||
}
|
||||
],
|
||||
"name": "pony1",
|
||||
"parent_provider_uuid": null,
|
||||
"root_provider_uuid": "d0b381e9-8761-42de-8e6c-bba99a96d5f5"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"name": "Shared storage",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8"
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"generation": 0,
|
||||
"links": [
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f/aggregates",
|
||||
"rel": "aggregates"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f/inventories",
|
||||
"rel": "inventories"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f/usages",
|
||||
"rel": "usages"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f/traits",
|
||||
"rel": "traits"
|
||||
},
|
||||
{
|
||||
"href": "/placement/resource_providers/33f26ae0-dbf2-485b-a24a-244d8280e29f/allocations",
|
||||
"rel": "allocations"
|
||||
}
|
||||
],
|
||||
"name": "Shared storage",
|
||||
"uuid": "33f26ae0-dbf2-485b-a24a-244d8280e29f",
|
||||
"parent_provider_uuid": "542df8ed-9be2-49b9-b4db-6d3183ff8ec8",
|
||||
"root_provider_uuid": "d0b381e9-8761-42de-8e6c-bba99a96d5f5"
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"versions" : [
|
||||
{
|
||||
"min_version" : "1.0",
|
||||
"id" : "v1.0",
|
||||
"max_version" : "1.28",
|
||||
"status": "CURRENT",
|
||||
"links": [
|
||||
{
|
||||
"href": "",
|
||||
"rel": "self"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"traits": [
|
||||
"CUSTOM_HW_FPGA_CLASS1",
|
||||
"CUSTOM_HW_FPGA_CLASS2",
|
||||
"CUSTOM_HW_FPGA_CLASS3"
|
||||
]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"usages": {
|
||||
"DISK_GB": 5,
|
||||
"MEMORY_MB": 512,
|
||||
"VCPU": 2
|
||||
}
|
||||
}
|
|
@ -1,135 +0,0 @@
|
|||
======
|
||||
Traits
|
||||
======
|
||||
|
||||
Traits are *qualitative* characteristics of resource providers.
|
||||
The classic example for traits can be requesting disk from different
|
||||
providers: a user may request 80GiB of disk space for an instance
|
||||
(quantitative), but may also expect that the disk be SSD instead of
|
||||
spinning disk (qualitative). Traits provide a way to mark that a
|
||||
storage provider is SSD or spinning.
|
||||
|
||||
.. note:: Traits API requests are availiable starting from version 1.6.
|
||||
|
||||
List traits
|
||||
===========
|
||||
|
||||
Return a list of valid trait strings according to parameters specified.
|
||||
|
||||
.. rest_method:: GET /traits
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
Several query parameters are available to filter the returned list of
|
||||
traits. If multiple different parameters are provided, the results
|
||||
of all filters are merged with a boolean `AND`.
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: trait_name_query
|
||||
- associated: trait_associated
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- traits: traits
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/traits/get-traits.json
|
||||
:language: javascript
|
||||
|
||||
Show traits
|
||||
===========
|
||||
|
||||
Check if a trait name exists in this cloud.
|
||||
|
||||
.. rest_method:: GET /traits/{name}
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: itemNotFound(404)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: trait_name
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful GET.
|
||||
|
||||
Update traits
|
||||
=============
|
||||
|
||||
Insert a new custom trait. If traits already exists 204 will be returned.
|
||||
|
||||
There are two kinds of traits: the standard traits and the custom traits.
|
||||
The standard traits are interoperable across different OpenStack cloud
|
||||
deployments. The definition of standard traits comes from the `os-traits`
|
||||
library. The standard traits are read-only in the placement API which means
|
||||
that the user can't modify any standard traits through API.
|
||||
The custom traits are used by admin users to manage the non-standard
|
||||
qualitative information of resource providers.
|
||||
|
||||
.. rest_method:: PUT /traits/{name}
|
||||
|
||||
Normal Response Codes: 201, 204
|
||||
|
||||
Error response codes: badRequest(400)
|
||||
|
||||
* `400 BadRequest` if trait name is not prefixed with `CUSTOM_` prefix.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: trait_name
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- Location: location
|
||||
|
||||
No body content is returned on a successful PUT.
|
||||
|
||||
Delete traits
|
||||
=============
|
||||
|
||||
Delete the trait specified be `{name}`. Note that only custom traits can be
|
||||
deleted.
|
||||
|
||||
.. rest_method:: DELETE /traits/{name}
|
||||
|
||||
Normal Response Codes: 204
|
||||
|
||||
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
|
||||
|
||||
* `400 BadRequest` if the name to delete is standard trait.
|
||||
* `404 Not Found` if no such trait exists.
|
||||
* `409 Conflict` if the name to delete has associations with any
|
||||
ResourceProvider.
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- name: trait_name
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
No body content is returned on a successful DELETE.
|
|
@ -1,43 +0,0 @@
|
|||
======
|
||||
Usages
|
||||
======
|
||||
|
||||
Represent the consumption of resources for a project and user.
|
||||
|
||||
.. note:: Usages API requests are available starting from version 1.9.
|
||||
|
||||
List usages
|
||||
===========
|
||||
|
||||
Return a report of usage information for resources associated with the
|
||||
project identified by `project_id` and user identified by
|
||||
`user_id`. The value is a dictionary of resource classes paired with
|
||||
the sum of the allocations of that resource class for provided
|
||||
parameters.
|
||||
|
||||
.. rest_method:: GET /usages
|
||||
|
||||
Normal Response Codes: 200
|
||||
|
||||
Error response codes: badRequest(400)
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- project_id: project_id
|
||||
- user_id: user_id
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- usages: resources
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: ./samples/usages/get-usages.json
|
||||
:language: javascript
|
10
tox.ini
10
tox.ini
|
@ -195,15 +195,6 @@ commands =
|
|||
rm -rf api-ref/build
|
||||
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
||||
|
||||
[testenv:placement-api-ref]
|
||||
description =
|
||||
Generate the Placement API ref. Called from CI scripts to test and publish to developer.openstack.org.
|
||||
envdir = {toxworkdir}/docs
|
||||
deps = {[testenv:docs]deps}
|
||||
commands =
|
||||
rm -rf placement-api-ref/build
|
||||
sphinx-build -W -b html -d placement-api-ref/build/doctrees placement-api-ref/source placement-api-ref/build/html
|
||||
|
||||
[testenv:releasenotes]
|
||||
description =
|
||||
Generate release notes.
|
||||
|
@ -222,7 +213,6 @@ commands =
|
|||
{[testenv:docs]commands}
|
||||
{[testenv:api-guide]commands}
|
||||
{[testenv:api-ref]commands}
|
||||
{[testenv:placement-api-ref]commands}
|
||||
{[testenv:releasenotes]commands}
|
||||
|
||||
[testenv:bandit]
|
||||
|
|
Loading…
Reference in New Issue