cinder/api-ref/source/v3/attachments.inc
Rajat Dhasmana 560318c82e Fix: Schema validation for attachment create API
Currently the schema validation for attachment create assumes that
instance UUID will always be present in the request but that is
not the case when glance calls cinder for attachment.
Also there isn't any schema validation for MV3.54 which accepts
attachment mode in the request hence failing requests passing mode.
This patch removes the instance_uuid from required parameters and
adds schema validation for MV3.54.

Change-Id: I5108fd51effa4d72581654ed450d191a13e0e964
2021-06-16 11:26:21 -04:00

384 lines
8.0 KiB
ReStructuredText

.. -*- rst -*-
Attachments (attachments)
=========================
Lists all, lists all with details, shows details for, creates, and
deletes attachment.
.. note:: Everything except for `Complete attachment` is new as of the 3.27
microversion. `Complete attachment` is new as of the 3.44
microversion.
When you create, list, update, or delete attachment, the possible
status values are:
**VolumeAttachment statuses**
+------------------+--------------------------------------------------------+
| Status | Description |
+------------------+--------------------------------------------------------+
| attached | A volume is attached for the attachment. |
+------------------+--------------------------------------------------------+
| attaching | A volume is attaching for the attachment. |
+------------------+--------------------------------------------------------+
| detached | A volume is detached for the attachment. |
+------------------+--------------------------------------------------------+
| reserved | A volume is reserved for the attachment. |
+------------------+--------------------------------------------------------+
| error_attaching | A volume is error attaching for the attachment. |
+------------------+--------------------------------------------------------+
| error_detaching | A volume is error detaching for the attachment. |
+------------------+--------------------------------------------------------+
| deleted | The attachment is deleted. |
+------------------+--------------------------------------------------------+
Delete attachment
~~~~~~~~~~~~~~~~~
.. rest_method:: DELETE /v3/{project_id}/attachments/{attachment_id}
Deletes an attachment.
Available starting in the 3.27 microversion.
Response codes
--------------
.. rest_status_code:: success ../status.yaml
- 200
.. rest_status_code:: error ../status.yaml
- 400
- 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- attachment_id: attachment_id_path
Show attachment details
~~~~~~~~~~~~~~~~~~~~~~~
.. rest_method:: GET /v3/{project_id}/attachments/{attachment_id}
Shows details for an attachment.
Available starting in the 3.27 microversion.
Response codes
--------------
.. rest_status_code:: success ../status.yaml
- 200
.. rest_status_code:: error ../status.yaml
- 400
- 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- attachment_id: attachment_id_path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- status: status_attachment
- detached_at: detached_at
- connection_info: connection_info
- attached_at: attached_at
- attach_mode: attach_mode_required
- instance: instance_uuid_req
- volume_id: volume_id_attachment
- id: attachment_id_required
Response Example
----------------
.. literalinclude:: ./samples/attachment-show-response.json
:language: javascript
List attachments with details
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. rest_method:: GET /v3/{project_id}/attachments/detail
Lists all attachments with details. Since v3.31 if non-admin
users specify invalid filters in the url, API will return bad request.
Available starting in the 3.27 microversion.
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
- status: status_attachment
- detached_at: detached_at
- connection_info: connection_info
- attached_at: attached_at
- attach_mode: attach_mode_required
- instance: instance_uuid_req
- volume_id: volume_id_attachment
- id: attachment_id_required
Response Example
----------------
.. literalinclude:: ./samples/attachment-list-detailed-response.json
:language: javascript
List attachments
~~~~~~~~~~~~~~~~
.. rest_method:: GET /v3/{project_id}/attachments
Lists all attachments, since v3.31 if non-admin users
specify invalid filters in the url, API will return bad request.
Available starting in the 3.27 microversion.
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
- status: status_attachment
- instance: instance_uuid_req
- volume_id: volume_id_attachment
- id: attachment_id_required
Response Example
----------------
.. literalinclude:: ./samples/attachment-list-response.json
:language: javascript
Create attachment
~~~~~~~~~~~~~~~~~
.. rest_method:: POST /v3/{project_id}/attachments
Creates an attachment.
Available starting in the 3.27 microversion.
Response codes
--------------
.. rest_status_code:: success ../status.yaml
- 200
.. rest_status_code:: error ../status.yaml
- 400
- 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- attachment: attachment
- instance_uuid: instance_uuid
- connector: connector
- volume_uuid: volume_id_attachment
- mode: attach_mode
Request Example
---------------
.. literalinclude:: ./samples/attachment-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- attachment: attachment
- status: status_attachment
- detached_at: detached_at
- connection_info: connection_info
- attached_at: attached_at
- attach_mode: attach_mode_required
- instance: instance_uuid_req
- volume_id: volume_id_attachment
- id: attachment_id_required
Response Example
----------------
.. literalinclude:: ./samples/attachment-create-response.json
:language: javascript
Update an attachment
~~~~~~~~~~~~~~~~~~~~
.. rest_method:: PUT /v3/{project_id}/attachments/{attachment_id}
Update a reserved attachment record with connector information
and set up the appropriate connection_info from the driver.
Available starting in the 3.27 microversion.
Response codes
--------------
.. rest_status_code:: success ../status.yaml
- 200
.. rest_status_code:: error ../status.yaml
- 400
- 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- attachment_id: attachment_id_path
- attachement: attachment
- connector: connector_required
Request Example
---------------
.. literalinclude:: ./samples/attachment-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- attachment: attachment
- status: status_attachment
- detached_at: detached_at
- connection_info: connection_info
- attached_at: attached_at
- attach_mode: attach_mode_required
- instance: instance_uuid_req
- volume_id: volume_id_attachment
- id: attachment_id_required
Response Example
----------------
.. literalinclude:: ./samples/attachment-update-response.json
:language: javascript
Complete attachment
~~~~~~~~~~~~~~~~~~~
.. rest_method:: POST /v3/{project_id}/attachments/{attachment_id}/action
Complete an attachment for a cinder volume.
Available starting in the 3.44 microversion.
Response codes
--------------
.. rest_status_code:: success ../status.yaml
- 204
.. rest_status_code:: error ../status.yaml
- 400
- 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id_path
- attachment_id: attachment_id_path
Request Example
---------------
.. literalinclude:: ./samples/attachment-complete.json
:language: javascript