@@ -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