9f2f05ffc4
This patch adds a new API document for share group type. Partial-Bug: 1724716 Change-Id: I852d264eb120027aad32997dc64a6ca428ee55a4
359 lines
8.4 KiB
ReStructuredText
359 lines
8.4 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
===================================
|
|
Share group types (since API v2.31)
|
|
===================================
|
|
|
|
A share group type enables you to filter or choose back ends before you
|
|
create a share group.
|
|
|
|
You can set share group types as either public or private. By default a
|
|
share group type is created as publicly accessible. Set
|
|
``share_group_type_access:is_public`` to ``False`` to make the share group
|
|
type private.
|
|
|
|
You can manage the access to the private share group types for the
|
|
different projects. You can add access, remove access, and get
|
|
information about access for a private share group type.
|
|
|
|
Administrators can specifies which `share type(s)
|
|
<http://developer.openstack.org/api-ref/shared-file-systems/#experimental-apis>`_
|
|
a given group type may contain. If Administrators does not specify it, then
|
|
manila will use ``default`` share type. The scheduler then creates the group on
|
|
one of the back ends that match the specified share type(s) and share group type.
|
|
|
|
Administrators can also set additional group extra specifications for a
|
|
share group type for the following purposes:
|
|
|
|
- Filter back ends by group scheduler. Specify these group extras specifications
|
|
in this format: ``group_specs=value``. For example,
|
|
``consistent_snapshot_support=true``.
|
|
|
|
.. note::
|
|
|
|
Share Group Types APIs are part of the `experimental APIs
|
|
<http://developer.openstack.org/api-ref/shared-file-systems/#experimental-apis>`_.
|
|
|
|
List share group types
|
|
======================
|
|
|
|
.. rest_method:: GET /v2/{tenant_id}/share-group-types
|
|
|
|
Lists all share group types.
|
|
|
|
Normal response codes: 200
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- id: share_group_type_id_required
|
|
- is_public: share_group_type_is_public
|
|
- share_types: share_types_1
|
|
- name: share_group_type_name
|
|
- group_specs: group_specs_required
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-types-list-response.json
|
|
:language: javascript
|
|
|
|
|
|
List default share group types
|
|
==============================
|
|
|
|
.. rest_method:: GET /v2/{tenant_id}/share-group-types/default
|
|
|
|
Lists default share group types.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- id: share_group_type_id_required
|
|
- is_public: share_group_type_is_public
|
|
- share_types: share_types_1
|
|
- name: share_group_type_name
|
|
- group_specs: group_specs_required
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-types-default-list-response.json
|
|
:language: javascript
|
|
|
|
|
|
List share group types extra specs
|
|
==================================
|
|
|
|
.. rest_method:: GET /v2/{tenant_id}/share-group-types/{share_group_type_id}/group_specs
|
|
|
|
Lists the extra specifications for a share group type.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_required
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- group_specs: group_specs_required
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-types-group-specs-list-response.json
|
|
:language: javascript
|
|
|
|
|
|
Create share group type
|
|
=======================
|
|
|
|
.. rest_method:: POST /v2/{tenant_id}/share-group-types
|
|
|
|
Creates a share group type.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404), conflict(409)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_types: share_types_1
|
|
- name: share_group_type_name
|
|
- group_specs: group_specs
|
|
- is_public: share_group_type_is_public_request
|
|
|
|
Request example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/share-group-type-create-request.json
|
|
:language: javascript
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- id: share_group_type_id_required
|
|
- group_specs: group_specs_required
|
|
- name: share_group_type_name
|
|
- share_types: share_types_1
|
|
- is_public: share_group_type_is_public
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-type-create-response.json
|
|
:language: javascript
|
|
|
|
|
|
Show share group type access details
|
|
====================================
|
|
|
|
.. rest_method:: GET /v2/{tenant_id}/share-group-types/{share_group_type_id}/share_type_access
|
|
|
|
Shows access details for a share group type.
|
|
|
|
You can view access details for private share group types only.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_required
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- share_group_type_id: share_group_type_id_required
|
|
- project_id: project_id_9
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-types-list-access-response.json
|
|
:language: javascript
|
|
|
|
|
|
Set extra spec for share group type
|
|
===================================
|
|
|
|
.. rest_method:: POST /v2/{tenant_id}/share-group-types/{share_group_type_id}/group_specs
|
|
|
|
Sets an extra specification for the share group type.
|
|
|
|
Normal response codes: 200
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404), conflict(409)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_required
|
|
- group_specs: group_specs_required
|
|
|
|
Request example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/share-group-type-set-request.json
|
|
:language: javascript
|
|
|
|
Response parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- group_specs: group_specs_required
|
|
|
|
Response example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/share-group-type-set-response.json
|
|
:language: javascript
|
|
|
|
|
|
Unset an group spec
|
|
===================
|
|
|
|
.. rest_method:: DELETE /v2/{tenant_id}/share-group-types/{share_group_type_id}/group-specs/{group_spec_key}
|
|
|
|
Unsets an extra specification for the share type.
|
|
|
|
Normal response codes: 202
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_required
|
|
- group_spec_key: group_spec_key
|
|
|
|
|
|
Add share group type access
|
|
===========================
|
|
|
|
.. rest_method:: POST /v2/{tenant_id}/share-group-types/{share_group_type_id}/action
|
|
|
|
Adds share group type access for a project.
|
|
|
|
You can add access to private share group types only.
|
|
|
|
Normal response codes: 202
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404), conflict(409)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_path
|
|
- project: project
|
|
|
|
Request example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/share-group-type-grant-access-request.json
|
|
:language: javascript
|
|
|
|
|
|
Remove share group type access
|
|
==============================
|
|
|
|
.. rest_method:: POST /v2/{tenant_id}/share-group-types/{share_group_type_id}/action
|
|
|
|
Removes share group type access from a project.
|
|
|
|
You can remove access from private share group types only.
|
|
|
|
Normal response codes: 202
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_path
|
|
- project: project
|
|
|
|
Request example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/share-group-type-revoke-access-request.json
|
|
:language: javascript
|
|
|
|
|
|
Delete share group type
|
|
=======================
|
|
|
|
.. rest_method:: DELETE /v2/{tenant_id}/share-group-types/{share_group_type_id}
|
|
|
|
Deletes a share group type.
|
|
|
|
Normal response codes: 202
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: tenant_id_path
|
|
- share_group_type_id: share_group_type_id_path
|