api-ref: Add notes about volume attach and detach being async

This change adds some basic notes in the api-ref for a wrinkle in the
current os-volume_attachments API in that both attach and detach actions
are async, returning to the caller *before* the underlying action is
complete. As such callers need to make seperate calls to ensure these
actions complete successfully.

There are also currently two different ways of polling for completion
when attaching and detaching.

- When attaching callers should use the volume status and list of
  attachments as reported by the volume API.

- When detaching callers should instead use the list of volume attachments
  reported by the os-volume_attachments API.

This is due to the way in which Nova currently completes the attachment
via c-api last during attachment and deletes the bdm record last during
detachment.

It would be useful to one day centralise on just using the
os-volume_attachments API to poll both actions but to do that we would
need to start tracking our own state within the BDMs.

Change-Id: Id367ee53ef1458b6a90fc107ab14f5b3cbba7a86
This commit is contained in:
Lee Yarwood 2020-12-21 16:13:51 +00:00
parent 06c0a4e6bc
commit 606a5dfecc

View File

@ -70,6 +70,10 @@ Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNo
to actually support a multiattach volume depends on the volume type to actually support a multiattach volume depends on the volume type
and compute hosting the instance. and compute hosting the instance.
.. note:: This is an asynchronous API, callers should poll the status and list
of attachments of the volume within the volume API to determine when
the attachment has completed successfully.
Request Request
------- -------
@ -247,6 +251,11 @@ Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNo
.. note:: From v2.20 detach a volume from an instance in SHELVED or SHELVED_OFFLOADED .. note:: From v2.20 detach a volume from an instance in SHELVED or SHELVED_OFFLOADED
state is allowed. state is allowed.
.. note:: This is an asynchronous API, callers should poll the list
of volume attachments provided by ``GET
/servers/{server_id}/os-volume_attachments`` to determine when the
detachment of the volume has completed successfully.
Request Request
------- -------