Skip to content

Commit c5f9f6e

Browse files
authored
Merge pull request #322 from saad-ali/clarifyCreateVolumeError
Clarify `CreateVolume` idepotent recovery behavior
2 parents 7da5269 + dbcff8d commit c5f9f6e

File tree

3 files changed

+116
-95
lines changed

3 files changed

+116
-95
lines changed

csi.proto

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,21 @@ message CreateVolumeRequest {
173173
// The suggested name for the storage space. This field is REQUIRED.
174174
// It serves two purposes:
175175
// 1) Idempotency - This name is generated by the CO to achieve
176-
// idempotency. If `CreateVolume` fails, the volume may or may not
177-
// be provisioned. In this case, the CO may call `CreateVolume`
178-
// again, with the same name, to ensure the volume exists. The
179-
// Plugin should ensure that multiple `CreateVolume` calls for the
180-
// same name do not result in more than one piece of storage
181-
// provisioned corresponding to that name. If a Plugin is unable to
182-
// enforce idempotency, the CO's error recovery logic could result
183-
// in multiple (unused) volumes being provisioned.
176+
// idempotency. The Plugin should ensure that multiple
177+
// `CreateVolume` calls for the same name do not result in more
178+
// than one piece of storage provisioned corresponding to that
179+
// name. If a Plugin is unable to enforce idempotency, the CO's
180+
// error recovery logic could result in multiple (unused) volumes
181+
// being provisioned.
182+
// In the case of error, the CO MUST handle the gRPC error codes
183+
// per the recovery behavior defined in the "CreateVolume Errors"
184+
// section below.
185+
// The CO is responsible for cleaning up volumes it provisioned
186+
// that it no longer needs. If the CO is uncertain whether a volume
187+
// was provisioned or not when a `CreateVolume` call fails, the CO
188+
// MAY call `CreateVolume` again, with the same name, to ensure the
189+
// volume exists and to retrieve the volume's `volume_id` (unless
190+
// otherwise prohibited by "CreateVolume Errors").
184191
// 2) Suggested name - Some storage systems allow callers to specify
185192
// an identifier by which to refer to the newly provisioned
186193
// storage. If a storage system supports this, it can optionally

0 commit comments

Comments
 (0)