a96fad9f3b
Using the wrong character resulted in the wrong title level being used for the response codes, which in turn caused the "detail" show/hide toggle to not be able to hide all of the per-endpoint details. This corrects these to be at the correct level. Also ran into issues after changing them where sphinx was not happy with the random title levels. This appears to be due to the order processed and whether not earlier included files had all subsequent levels. Adding an additional title in our first included file resolved that problem. Change-Id: I19405778980310f2d6d06eb7b23102f74a3d6e03 Closes-bug: #1755566
370 lines
6.5 KiB
ReStructuredText
370 lines
6.5 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
Generic volume groups
|
|
=====================
|
|
|
|
Generic volume groups enable you to create a group of volumes and
|
|
manage them together.
|
|
|
|
How is generic volume groups different from consistency groups?
|
|
Currently consistency groups in cinder only support consistent group
|
|
snapshot. It cannot be extended easily to serve other purposes. A project
|
|
may want to put volumes used in the same application together in a group
|
|
so that it is easier to manage them together, and this group of volumes
|
|
may or may not support consistent group snapshot. Generic volume group
|
|
is introduced to solve this problem. By decoupling the tight relationship
|
|
between the group construct and the consistency concept, generic volume
|
|
groups can be extended to support other features in the future.
|
|
|
|
|
|
List groups
|
|
~~~~~~~~~~~
|
|
|
|
.. rest_method:: GET /v3/{project_id}/groups
|
|
|
|
Lists groups. Since v3.31 if non-admin users specify
|
|
invalid filters in the url, API will return bad request.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- all_tenants: all-tenants
|
|
- sort: sort
|
|
- limit: limit
|
|
- offset: offset
|
|
- marker: marker
|
|
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- groups: groups
|
|
- id: id
|
|
- name: group_name
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/groups-list-response.json
|
|
:language: javascript
|
|
|
|
|
|
Create group
|
|
~~~~~~~~~~~~
|
|
|
|
.. rest_method:: POST /v3/{project_id}/groups
|
|
|
|
Creates a group.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 202
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
- 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- group: group
|
|
- description: description_group_false
|
|
- availability_zone: availability_zone
|
|
- group_type: group_type
|
|
- volume_types: volume_types
|
|
- name: group_name
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/group-create-request.json
|
|
:language: javascript
|
|
|
|
|
|
Show group details
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: GET /v3/{project_id}/groups/{group_id}
|
|
|
|
Shows details for a group.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- group_id: group_id
|
|
- list_volume: list_volume
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- group: group
|
|
- status: status_8
|
|
- description: description_group_true
|
|
- availability_zone: availability_zone
|
|
- created_at: created_at
|
|
- group_type: group_type
|
|
- volume_types: volume_types
|
|
- id: id
|
|
- name: group_name
|
|
- volumes: volume_ids
|
|
- replication_status: group_replication_status
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/group-show-response.json
|
|
:language: javascript
|
|
|
|
|
|
Create group from source
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: POST /v3/{project_id}/groups/action
|
|
|
|
Creates a group from source.
|
|
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 202
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
- 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- create-from-src: create-from-src
|
|
- description: description_group_false
|
|
- group_snapshot_id: group_snapshot_id_1
|
|
- source_group_id: source_group_id
|
|
- name: group_name
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/group-create-from-src-request.json
|
|
:language: javascript
|
|
|
|
|
|
Delete group
|
|
~~~~~~~~~~~~
|
|
|
|
.. rest_method:: POST /v3/{project_id}/groups/{group_id}/action
|
|
|
|
Deletes a group.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 202
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
- 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- group_id: group_id
|
|
- delete: delete
|
|
- delete-volumes: delete-volumes
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/group-delete-request.json
|
|
:language: javascript
|
|
|
|
|
|
List groups with details
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: GET /v3/{project_id}/groups/detail
|
|
|
|
Lists groups with details, since v3.31 if non-admin
|
|
users specify invalid filters in the url, API will return bad request.
|
|
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 200
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- all_tenants: all-tenants
|
|
- sort: sort
|
|
- limit: limit
|
|
- offset: offset
|
|
- marker: marker
|
|
- list_volume: list_volume
|
|
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- groups: groups
|
|
- status: status_8
|
|
- description: description_group_true
|
|
- availability_zone: availability_zone
|
|
- created_at: created_at
|
|
- group_type: group_type
|
|
- volume_types: volume_types
|
|
- id: group_id
|
|
- name: name
|
|
- volumes: volume_ids
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: ./samples/groups-list-detailed-response.json
|
|
:language: javascript
|
|
|
|
|
|
Update group
|
|
~~~~~~~~~~~~
|
|
|
|
.. rest_method:: PUT /v3/{project_id}/groups/{group_id}
|
|
|
|
Updates a group.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 202
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
- 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id_path
|
|
- group_id: group_id
|
|
- group: group
|
|
- remove_volumes: remove_volumes
|
|
- description: description_group_false
|
|
- add_volumes: add_volumes
|
|
- name: group_name
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/group-update-request.json
|
|
:language: javascript
|
|
|
|
|
|
Reset group status
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
.. rest_method:: POST /v3/{project_id}/groups/{group_id}/action
|
|
|
|
Resets the status for a group. Specify the ``reset_status`` action in the request body.
|
|
|
|
Response codes
|
|
--------------
|
|
|
|
.. rest_status_code:: success ../status.yaml
|
|
|
|
- 202
|
|
|
|
.. rest_status_code:: error ../status.yaml
|
|
|
|
- 400
|
|
- 404
|
|
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- project_id: project_id
|
|
- group_id: group_id
|
|
- reset_status: reset_status
|
|
- status: status
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: ./samples/group-reset-status-request.json
|
|
:language: javascript
|