cinder/cinder/api/v3
Alan Bishop d59e41fb3c Add support for transferring encrypted volumes
A new microversion 3.70 adds the ability to transfer a volume's
encryption key when transferring a volume to another project.

When the volume transfer is initiated, the volume's encryption
secret is essentially transferred to the cinder service.
- The cinder service creates a new encryption_key_id that contains
  a copy of the volume's encryption secret.
- The volume (and its snapshots) is updated with the new
  encryption_key_id (the one owned by the cinder service).
- The volume's original encryption_key_id (owned by the volume's
  owner) is deleted.

When the transfer is accepted, the secret is transferred to the
user accepting the transfer.
- A new encryption_key_id is generated on behalf of the new user
  that contains a copy of the volume's encryption secret.
- The volume (and its snapshots) is updated with the new
  encryption_key_id (the one owned by the user).
- The intermediate encryption_key_id owned by the cinder service
  is deleted.

When a transfer is cancelled (deleted), the same process is used
to transfer ownship back to the user that cancelled the transfer.

Implements: blueprint transfer-encrypted-volume
Change-Id: I459f06504e90025c9c0b539981d3d56a2a9394c7
2022-08-26 06:32:41 -07:00
..
views Report tri-state shared_targets for NVMe volumes 2022-05-24 15:13:23 +02:00
__init__.py cinder-api-microversions code 2016-02-24 06:50:54 -07:00
attachments.py Fix: Schema validation for attachment create API 2021-06-16 11:26:21 -04:00
backups.py Add user_id in backup list and show API 2018-12-12 00:52:05 -05:00
clusters.py V3 jsonschema validation: Clusters 2018-03-23 13:17:56 +05:30
consistencygroups.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
default_types.py Modify/Move project validation methods to api_utils 2021-04-05 08:00:40 -04:00
group_snapshots.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
group_specs.py Implement project personas group_types 2021-09-10 12:58:48 -04:00
group_types.py Implement project personas group_types 2021-09-10 12:58:48 -04:00
groups.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
limits.py Use mv.LIMITS_ADMIN_FILTER in the code 2021-06-22 01:09:55 +00:00
messages.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
resource_common_manage.py Use constants for microversion values 2017-09-22 08:15:56 -05:00
resource_filters.py Use constants for microversion values 2017-09-22 08:15:56 -05:00
router.py Remove the need for project_id from API endpoints 2022-02-08 08:32:23 -08:00
snapshot_manage.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
snapshot_metadata.py Remove Block Storage API v2 2021-06-04 17:21:28 -04:00
snapshots.py Remove extraneous space from error message 2021-09-01 11:41:05 -04:00
types.py Implement user visible extra specs 2021-09-02 09:16:13 -07:00
volume_manage.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00
volume_metadata.py Replace md5 with oslo version 2020-11-13 16:01:14 -05:00
volume_transfer.py Add support for transferring encrypted volumes 2022-08-26 06:32:41 -07:00
volumes.py Merge "Make extension manager parameter optional" 2022-04-29 19:45:46 +00:00
workers.py Import HTTPStatus instead of http_client 2020-10-08 13:16:18 -04:00