Merge "Add API Reference for groups"
This commit is contained in:
commit
9b9944a45f
@ -8,10 +8,10 @@ List All Api Versions
|
|||||||
Lists information for all Block Storage API versions.
|
Lists information for all Block Storage API versions.
|
||||||
|
|
||||||
|
|
||||||
Normal response codes: 200,300
|
Normal response codes: 200,202,300
|
||||||
|
|
||||||
Error response codes: computeFault(400, 500), serviceUnavailable(503), badRequest(400),
|
Error response codes: computeFault(400, 500), serviceUnavailable(503), badRequest(400),
|
||||||
unauthorized(401), forbidden(403), badMethod(405), itemNotFound(404)
|
unauthorized(401), forbidden(403), badMethod(405), itemNotFound(404), conflict(409)
|
||||||
|
|
||||||
Request
|
Request
|
||||||
-------
|
-------
|
||||||
|
181
api-ref/source/v3/group-snapshots.inc
Normal file
181
api-ref/source/v3/group-snapshots.inc
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
.. -*- rst -*-
|
||||||
|
|
||||||
|
===============
|
||||||
|
Group snapshots
|
||||||
|
===============
|
||||||
|
|
||||||
|
Lists all, lists all with details, shows details for, creates, and
|
||||||
|
deletes group snapshots.
|
||||||
|
|
||||||
|
|
||||||
|
Delete group snapshot
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. rest_method:: DELETE /v3/{tenant_id}/group_snapshots/{group_snapshot_id}
|
||||||
|
|
||||||
|
Deletes a group snapshot.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- group_snapshot_id: group_snapshot_id
|
||||||
|
|
||||||
|
|
||||||
|
Show group snapshot details
|
||||||
|
===========================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/group_snapshots/{group_snapshot_id}
|
||||||
|
|
||||||
|
Shows details for a group snapshot.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- group_snapshot_id: group_snapshot_id
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- status: status
|
||||||
|
- description: description
|
||||||
|
- created_at: created_at
|
||||||
|
- group_id: group_id
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-snapshots-show-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
List group snapshots with details
|
||||||
|
=================================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/group_snapshots/detail
|
||||||
|
|
||||||
|
Lists all group snapshots with details.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- status: status
|
||||||
|
- description: description
|
||||||
|
- created_at: created_at
|
||||||
|
- group_id: group_id
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-snapshots-list-detailed-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
List group snapshots
|
||||||
|
====================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/group_snapshots
|
||||||
|
|
||||||
|
Lists all group snapshots.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-snapshots-list-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Create group snapshot
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. rest_method:: POST /v3/{tenant_id}/group_snapshots
|
||||||
|
|
||||||
|
Creates a group snapshot.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- name: name
|
||||||
|
- description: description
|
||||||
|
- group_id: group_id
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-snapshots-create-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- status: status
|
||||||
|
- description: description
|
||||||
|
- created_at: created_at
|
||||||
|
- group_id: group_id
|
||||||
|
- id: id
|
||||||
|
- name: name
|
251
api-ref/source/v3/group-types.inc
Normal file
251
api-ref/source/v3/group-types.inc
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
.. -*- rst -*-
|
||||||
|
|
||||||
|
===========
|
||||||
|
Group types
|
||||||
|
===========
|
||||||
|
|
||||||
|
|
||||||
|
Update group type
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. rest_method:: PUT /v3/{tenant_id}/group_types/{group_type_id}
|
||||||
|
|
||||||
|
Updates a group type.
|
||||||
|
|
||||||
|
To create a generic volume group, you must specify a group type.
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes: badRequest(400), forbidden(403), itemNotFound(404),
|
||||||
|
conflict(409), computeFault(500)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_type: group_type
|
||||||
|
- group_type_id: group_type_id
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-update-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- is_public: is_public
|
||||||
|
- group_specs: group_specs
|
||||||
|
- description: description
|
||||||
|
- group_type: group_type
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-show-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Create group specs for a group type
|
||||||
|
===================================
|
||||||
|
|
||||||
|
.. rest_method:: POST /v3/{tenant_id}/group_types/{group_type_id}/group_specs
|
||||||
|
|
||||||
|
Create group specs for a group type.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), forbidden(403), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_specs: group_specs
|
||||||
|
- group_type: group_type
|
||||||
|
- group_type_id: group_type_id
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-specs-create-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- is_public: is_public
|
||||||
|
- group_specs: group_specs
|
||||||
|
- description: description
|
||||||
|
- group_type: group_type
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-show-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Show group type details
|
||||||
|
=======================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/group_types/{group_type_id}
|
||||||
|
|
||||||
|
Shows details for a group type.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes: itemNotFound(404)
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_type_id: group_type_id
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- is_public: is_public
|
||||||
|
- group_specs: group_specs
|
||||||
|
- description: description
|
||||||
|
- group_type: group_type
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-show-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Delete group type
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. rest_method:: DELETE /v3/{tenant_id}/group_types/{group_type_id}
|
||||||
|
|
||||||
|
Deletes a group type.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), forbidden(403), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_type_id: group_type_id
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
|
||||||
|
List group types
|
||||||
|
================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/group_types
|
||||||
|
|
||||||
|
Lists group types.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- sort_key: sort_key
|
||||||
|
- sort_dir: sort_dir
|
||||||
|
- limit: limit
|
||||||
|
- marker: marker
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_types: group_types
|
||||||
|
- group_specs: group_specs
|
||||||
|
- name: name
|
||||||
|
- group_type: group_type
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-types-list-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Create group type
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. rest_method:: POST /v2/{tenant_id}/group_types
|
||||||
|
|
||||||
|
Creates a group type.
|
||||||
|
|
||||||
|
To create a generic volume group, you must specify a group type.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), forbidden(403), itemNotFound(404),
|
||||||
|
conflict(409)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- group_type: group_type
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-create-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- is_public: is_public
|
||||||
|
- group_specs: group_specs
|
||||||
|
- description: description
|
||||||
|
- group_type: group_type
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-type-show-response.json
|
||||||
|
:language: javascript
|
257
api-ref/source/v3/groups.inc
Normal file
257
api-ref/source/v3/groups.inc
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
.. -*- 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 tenant
|
||||||
|
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/{tenant_id}/groups
|
||||||
|
|
||||||
|
Lists groups.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- sort_key: sort_key
|
||||||
|
- sort_dir: sort_dir
|
||||||
|
- limit: limit
|
||||||
|
- marker: marker
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/groups-list-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Create group
|
||||||
|
============
|
||||||
|
|
||||||
|
.. rest_method:: POST /v3/{tenant_id}/groups
|
||||||
|
|
||||||
|
Creates a group.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- description: description
|
||||||
|
- availability_zone: availability_zone
|
||||||
|
- group_type: group_type
|
||||||
|
- volume_types: volume_types
|
||||||
|
- name: name
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-create-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Show group details
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/groups/{group_id}
|
||||||
|
|
||||||
|
Shows details for a group.
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes: itemNotFound(404)
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- group_id: group_id
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- status: status
|
||||||
|
- description: description
|
||||||
|
- availability_zone: availability_zone
|
||||||
|
- created_at: created_at
|
||||||
|
- group_type: group_type
|
||||||
|
- volume_types: volume_types
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-show-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Create group from source
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. rest_method:: POST /v3/{tenant_id}/groups/action
|
||||||
|
|
||||||
|
Creates a group from source.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- description: description
|
||||||
|
- group_snapshot_id: group_snapshot_id
|
||||||
|
- source_group_id: source_group_id
|
||||||
|
- name: name
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-create-from-src-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Delete group
|
||||||
|
============
|
||||||
|
|
||||||
|
.. rest_method:: POST /v3/{tenant_id}/groups/{group_id}/action
|
||||||
|
|
||||||
|
Deletes a group.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- delete-volumes: delete-volumes
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- group_id: group_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-delete-request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
List groups with details
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. rest_method:: GET /v3/{tenant_id}/groups/detail
|
||||||
|
|
||||||
|
Lists groups with details.
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- sort_key: sort_key
|
||||||
|
- sort_dir: sort_dir
|
||||||
|
- limit: limit
|
||||||
|
- marker: marker
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- status: status
|
||||||
|
- description: description
|
||||||
|
- availability_zone: availability_zone
|
||||||
|
- created_at: created_at
|
||||||
|
- group_type: group_type
|
||||||
|
- volume_types: volume_types
|
||||||
|
- id: id
|
||||||
|
- name: name
|
||||||
|
|
||||||
|
Response Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/groups-list-detailed-response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
Update group
|
||||||
|
============
|
||||||
|
|
||||||
|
.. rest_method:: PUT /v3/{tenant_id}/groups/{group_id}
|
||||||
|
|
||||||
|
Updates a group.
|
||||||
|
|
||||||
|
Normal response codes: 202
|
||||||
|
Error response codes: badRequest(400), itemNotFound(404)
|
||||||
|
|
||||||
|
|
||||||
|
Request
|
||||||
|
-------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- remove_volumes: remove_volumes
|
||||||
|
- description: description
|
||||||
|
- add_volumes: add_volumes
|
||||||
|
- name: name
|
||||||
|
- tenant_id: tenant_id
|
||||||
|
- group_id: group_id
|
||||||
|
|
||||||
|
Request Example
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. literalinclude:: ./samples/group-update-request.json
|
||||||
|
:language: javascript
|
@ -12,6 +12,9 @@ Block Storage API V3 (CURRENT)
|
|||||||
.. include:: capabilities-v3.inc
|
.. include:: capabilities-v3.inc
|
||||||
.. include:: os-cgsnapshots-v3.inc
|
.. include:: os-cgsnapshots-v3.inc
|
||||||
.. include:: consistencygroups-v3.inc
|
.. include:: consistencygroups-v3.inc
|
||||||
|
.. include:: groups.inc
|
||||||
|
.. include:: group-snapshots.inc
|
||||||
|
.. include:: group-types.inc
|
||||||
.. include:: limits.inc
|
.. include:: limits.inc
|
||||||
.. include:: os-vol-image-meta-v3.inc
|
.. include:: os-vol-image-meta-v3.inc
|
||||||
.. include:: os-vol-pool-v3.inc
|
.. include:: os-vol-pool-v3.inc
|
||||||
|
@ -38,6 +38,24 @@ force_3:
|
|||||||
in: path
|
in: path
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
group_id:
|
||||||
|
description: |
|
||||||
|
The ID of the group.
|
||||||
|
in: path
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
group_snapshot_id:
|
||||||
|
description: |
|
||||||
|
The ID of the group snapshot.
|
||||||
|
in: path
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
group_type_id:
|
||||||
|
description: |
|
||||||
|
The UUID for an existing group type.
|
||||||
|
in: path
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
hostname:
|
hostname:
|
||||||
description: |
|
description: |
|
||||||
The name of the host that hosts the storage back
|
The name of the host that hosts the storage back
|
||||||
@ -227,7 +245,7 @@ absolute:
|
|||||||
add_volumes:
|
add_volumes:
|
||||||
description: |
|
description: |
|
||||||
One or more volume UUIDs, separated by commas, to
|
One or more volume UUIDs, separated by commas, to
|
||||||
add to the volume consistency group.
|
add to the volume group or consistency group.
|
||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -398,6 +416,13 @@ created_at_1:
|
|||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
delete-volumes:
|
||||||
|
description: |
|
||||||
|
If set to ``true``, allows deletion of a
|
||||||
|
group as well as all volumes in the group.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
description:
|
description:
|
||||||
description: |
|
description: |
|
||||||
The backup description or null.
|
The backup description or null.
|
||||||
@ -422,6 +447,24 @@ description_11:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
description_12:
|
||||||
|
description: |
|
||||||
|
The group type description.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
description_13:
|
||||||
|
description: |
|
||||||
|
The group description.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
description_14:
|
||||||
|
description: |
|
||||||
|
The group snapshot description.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
description_2:
|
description_2:
|
||||||
description: |
|
description: |
|
||||||
The description of the consistency group.
|
The description of the consistency group.
|
||||||
@ -550,6 +593,37 @@ free_capacity:
|
|||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
group_id_1:
|
||||||
|
description: |
|
||||||
|
The ID of the group.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
group_snapshot_id_1:
|
||||||
|
description: |
|
||||||
|
The ID of the group snapshot.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
group_specs:
|
||||||
|
description: |
|
||||||
|
A set of key and value pairs that contains the
|
||||||
|
specifications for a group type.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: object
|
||||||
|
group_type:
|
||||||
|
description: |
|
||||||
|
A ``group_type`` object.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: object
|
||||||
|
group_types:
|
||||||
|
description: |
|
||||||
|
The list of group types.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: array
|
||||||
has_dependent_backups:
|
has_dependent_backups:
|
||||||
description: |
|
description: |
|
||||||
If this value is ``true``, the backup depends on
|
If this value is ``true``, the backup depends on
|
||||||
@ -688,6 +762,12 @@ is_public:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
is_public_1:
|
||||||
|
description:
|
||||||
|
Group type which is accessible to the public.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
key:
|
key:
|
||||||
description: |
|
description: |
|
||||||
The metadata key name for the metadata that you
|
The metadata key name for the metadata that you
|
||||||
@ -928,6 +1008,24 @@ name_15:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
name_16:
|
||||||
|
description: |
|
||||||
|
The group type name.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
name_17:
|
||||||
|
description: |
|
||||||
|
The group name.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
name_18:
|
||||||
|
description: |
|
||||||
|
The group snapshot name.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
name_2:
|
name_2:
|
||||||
description: |
|
description: |
|
||||||
The consistency group snapshot name.
|
The consistency group snapshot name.
|
||||||
@ -1200,7 +1298,7 @@ ref_1:
|
|||||||
remove_volumes:
|
remove_volumes:
|
||||||
description: |
|
description: |
|
||||||
One or more volume UUIDs, separated by commas, to
|
One or more volume UUIDs, separated by commas, to
|
||||||
remove from the volume consistency group.
|
remove from the volume group or consistency group.
|
||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
@ -1297,6 +1395,12 @@ source_cgid:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
source_group_id:
|
||||||
|
description: |
|
||||||
|
The UUID of the source group.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
source_replica:
|
source_replica:
|
||||||
description: |
|
description: |
|
||||||
The UUID of the primary volume to clone.
|
The UUID of the primary volume to clone.
|
||||||
|
11
api-ref/source/v3/samples/group-create-from-src-request.json
Normal file
11
api-ref/source/v3/samples/group-create-from-src-request.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"create-from-src": {
|
||||||
|
"name": "first_group",
|
||||||
|
"description": "first group",
|
||||||
|
"group_snapshot_id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"source_group_id": None,
|
||||||
|
"user_id": "6f519a48-3183-46cf-a32f-41815f815555",
|
||||||
|
"project_id": "6f519a48-3183-46cf-a32f-41815f814444",
|
||||||
|
"status": "creating"
|
||||||
|
}
|
||||||
|
}
|
12
api-ref/source/v3/samples/group-create-request.json
Normal file
12
api-ref/source/v3/samples/group-create-request.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"group": {
|
||||||
|
"name": "first_group",
|
||||||
|
"description": "first group",
|
||||||
|
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
|
||||||
|
"volume_types": [
|
||||||
|
"4e9e6d23-eed0-426d-b90a-28f87a94b6fe",
|
||||||
|
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
|
||||||
|
],
|
||||||
|
"availability_zone": "az0",
|
||||||
|
}
|
||||||
|
}
|
6
api-ref/source/v3/samples/group-create-response.json
Normal file
6
api-ref/source/v3/samples/group-create-response.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"group": {
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f816666",
|
||||||
|
"name": "first_group"
|
||||||
|
}
|
||||||
|
}
|
5
api-ref/source/v3/samples/group-delete-request.json
Normal file
5
api-ref/source/v3/samples/group-delete-request.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"delete": {
|
||||||
|
"delete-volumes": False
|
||||||
|
}
|
||||||
|
}
|
16
api-ref/source/v3/samples/group-show-response.json
Normal file
16
api-ref/source/v3/samples/group-show-response.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"group": {
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"status": "available",
|
||||||
|
"availability_zone": "az1",
|
||||||
|
"created_at": "2015-09-16T09:28:52.000000",
|
||||||
|
"name": "first_group",
|
||||||
|
"description": "my first group",
|
||||||
|
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
|
||||||
|
"volume_types": [
|
||||||
|
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
|
||||||
|
],
|
||||||
|
"group_snapshot_id": None,
|
||||||
|
"source_group_id": None
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"group_snapshot": {
|
||||||
|
"group_id": "6f519a48-3183-46cf-a32f-41815f814546",
|
||||||
|
"name": "first_group_snapshot",
|
||||||
|
"description": "first group snapshot",
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"group_snapshot": {
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f816666",
|
||||||
|
"name": "first_group_snapshot"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"group_snapshots": [
|
||||||
|
{
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"group_id": "6f519a48-3183-46cf-a32f-41815f814444",
|
||||||
|
"status": "available",
|
||||||
|
"created_at": "2015-09-16T09:28:52.000000",
|
||||||
|
"name": "my_group_snapshot1",
|
||||||
|
"description": "my first group snapshot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
|
||||||
|
"group_id": "aed36625-a6d7-4681-ba59-c7ba3d18dddd",
|
||||||
|
"status": "error",
|
||||||
|
"created_at": "2015-09-16T09:31:15.000000",
|
||||||
|
"name": "my_group_snapshot2",
|
||||||
|
"description": "Edited description"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
12
api-ref/source/v3/samples/group-snapshots-list-response.json
Normal file
12
api-ref/source/v3/samples/group-snapshots-list-response.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"group_snapshots": [
|
||||||
|
{
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"name": "my_group_snapshot1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
|
||||||
|
"name": "my_group_snapshot2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
10
api-ref/source/v3/samples/group-snapshots-show-response.json
Normal file
10
api-ref/source/v3/samples/group-snapshots-show-response.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"group_snapshot": {
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"group_id": "6f519a48-3183-46cf-a32f-41815f814444",
|
||||||
|
"status": "available",
|
||||||
|
"created_at": "2015-09-16T09:28:52.000000",
|
||||||
|
"name": "my_group_snapshot1",
|
||||||
|
"description": "my first group snapshot"
|
||||||
|
}
|
||||||
|
}
|
10
api-ref/source/v3/samples/group-type-create-request.json
Normal file
10
api-ref/source/v3/samples/group-type-create-request.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"group_type": {
|
||||||
|
"name": "grp-type-001",
|
||||||
|
"description": "group type 0001",
|
||||||
|
"is_public": True,
|
||||||
|
"group_specs": {
|
||||||
|
"consistent_group_snapshot_enabled": "<is> False"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
api-ref/source/v3/samples/group-type-show-request.json
Normal file
9
api-ref/source/v3/samples/group-type-show-request.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"group_type": {
|
||||||
|
"id": "289da7f8-6440-407c-9fb4-7db01ec49164",
|
||||||
|
"name": "grp-type-001",
|
||||||
|
"group_specs": {
|
||||||
|
"consistent_group_snapshot_enabled": "<is> False"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
api-ref/source/v3/samples/group-type-show-response.json
Normal file
11
api-ref/source/v3/samples/group-type-show-response.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"group_type": {
|
||||||
|
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
|
||||||
|
"name": "grp-type-001",
|
||||||
|
"description": "group type 001",
|
||||||
|
"is_public": "true",
|
||||||
|
"group_specs": {
|
||||||
|
"consistent_group_snapshot_enabled": "<is> False"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"group_specs": {
|
||||||
|
"key1": "value1",
|
||||||
|
"key2": "value2",
|
||||||
|
}
|
||||||
|
}
|
7
api-ref/source/v3/samples/group-type-update-request.json
Normal file
7
api-ref/source/v3/samples/group-type-update-request.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"group_type": {
|
||||||
|
"name": "grp-type-001",
|
||||||
|
"description": "group type 0001",
|
||||||
|
"is_public": true,
|
||||||
|
}
|
||||||
|
}
|
16
api-ref/source/v3/samples/group-types-list-response.json
Normal file
16
api-ref/source/v3/samples/group-types-list-response.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"group_types": [
|
||||||
|
{
|
||||||
|
"group_specs": {
|
||||||
|
"consistent_group_snapshot_enabled": "<is> False"
|
||||||
|
},
|
||||||
|
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
|
||||||
|
"name": "group_type1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_specs": {},
|
||||||
|
"id": "8eb69a46-df97-4e41-9586-9a40a7533803",
|
||||||
|
"name": "group_type2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
8
api-ref/source/v3/samples/group-update-request.json
Normal file
8
api-ref/source/v3/samples/group-update-request.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"group": {
|
||||||
|
"name": "my_group",
|
||||||
|
"description": "My group",
|
||||||
|
"add_volumes": "volume-uuid-1,volume-uuid-2",
|
||||||
|
"remove_volumes": "volume-uuid-8,volume-uuid-9"
|
||||||
|
}
|
||||||
|
}
|
29
api-ref/source/v3/samples/groups-list-detailed-response.json
Normal file
29
api-ref/source/v3/samples/groups-list-detailed-response.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"status": "available",
|
||||||
|
"availability_zone": "az1",
|
||||||
|
"created_at": "2015-09-16T09:28:52.000000",
|
||||||
|
"name": "my_group1",
|
||||||
|
"description": "my first group",
|
||||||
|
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
|
||||||
|
"volume_types": [
|
||||||
|
"4e9e6d23-eed0-426d-b90a-28f87a94b6fe",
|
||||||
|
"a3d55d15-eeb1-4816-ada9-bf82decc09b3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
|
||||||
|
"status": "error",
|
||||||
|
"availability_zone": "az2",
|
||||||
|
"created_at": "2015-09-16T09:31:15.000000",
|
||||||
|
"name": "my_group2",
|
||||||
|
"description": "Edited description",
|
||||||
|
"group_type": "f8645498-1323-47a2-9442-5c57724d2e3c",
|
||||||
|
"volume_types": [
|
||||||
|
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
12
api-ref/source/v3/samples/groups-list-response.json
Normal file
12
api-ref/source/v3/samples/groups-list-response.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"id": "6f519a48-3183-46cf-a32f-41815f813986",
|
||||||
|
"name": "my_group1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
|
||||||
|
"name": "my_group2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
44
api-ref/source/v3/samples/version-v2-show-response.json
Normal file
44
api-ref/source/v3/samples/version-v2-show-response.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"choices": [
|
||||||
|
{
|
||||||
|
"status": "SUPPORTED",
|
||||||
|
"media-types": [
|
||||||
|
{
|
||||||
|
"base": "application/xml",
|
||||||
|
"type": "application/vnd.openstack.volume+xml;version=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"base": "application/json",
|
||||||
|
"type": "application/vnd.openstack.volume+json;version=1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "v1.0",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"href": "http://23.253.248.171:8776/v1/v2.json",
|
||||||
|
"rel": "self"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"status": "CURRENT",
|
||||||
|
"media-types": [
|
||||||
|
{
|
||||||
|
"base": "application/xml",
|
||||||
|
"type": "application/vnd.openstack.volume+xml;version=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"base": "application/json",
|
||||||
|
"type": "application/vnd.openstack.volume+json;version=1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "v2.0",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"href": "http://23.253.248.171:8776/v2/v2.json",
|
||||||
|
"rel": "self"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user