cinder.volume.rpcapi module

class VolumeAPI


Client side of the volume rpc API.

API version history:

1.0 - Initial version.
1.1 - Adds clone volume option to create_volume.
1.2 - Add publish_service_capabilities() method.
1.3 - Pass all image metadata (not just ID) in copy_volume_to_image.
1.4 - Add request_spec, filter_properties and
      allow_reschedule arguments to create_volume().
1.5 - Add accept_transfer.
1.6 - Add extend_volume.
1.7 - Adds host_name parameter to attach_volume()
      to allow attaching to host rather than instance.
1.8 - Add migrate_volume, rename_volume.
1.9 - Add new_user and new_project to accept_transfer.
1.10 - Add migrate_volume_completion, remove rename_volume.
1.11 - Adds mode parameter to attach_volume()
       to support volume read-only attaching.
1.12 - Adds retype.
1.13 - Adds create_export.
1.14 - Adds reservation parameter to extend_volume().
1.15 - Adds manage_existing and unmanage_only flag to delete_volume.
1.16 - Removes create_export.
1.17 - Add replica option to create_volume, promote_replica and
1.18 - Adds create_consistencygroup, delete_consistencygroup,
       create_cgsnapshot, and delete_cgsnapshot. Also adds
       the consistencygroup_id parameter in create_volume.
1.19 - Adds update_migrated_volume
1.20 - Adds support for sending objects over RPC in create_snapshot()
       and delete_snapshot()
1.21 - Adds update_consistencygroup.
1.22 - Adds create_consistencygroup_from_src.
1.23 - Adds attachment_id to detach_volume.
1.24 - Removed duplicated parameters: snapshot_id, image_id,
       source_volid, source_replicaid, consistencygroup_id and
       cgsnapshot_id from create_volume. All off them are already
       passed either in request_spec or available in the DB.
1.25 - Add source_cg to create_consistencygroup_from_src.
1.26 - Adds support for sending objects over RPC in
       create_consistencygroup(), create_consistencygroup_from_src(),
       update_consistencygroup() and delete_consistencygroup().
1.27 - Adds support for replication V2
1.28 - Adds manage_existing_snapshot
1.29 - Adds get_capabilities.
1.30 - Adds remove_export
1.31 - Updated: create_consistencygroup_from_src(), create_cgsnapshot()
       and delete_cgsnapshot() to cast method only with necessary
       args. Forwarding CGSnapshot object instead of CGSnapshot_id.
1.32 - Adds support for sending objects over RPC in create_volume().
1.33 - Adds support for sending objects over RPC in delete_volume().
1.34 - Adds support for sending objects over RPC in retype().
1.35 - Adds support for sending objects over RPC in extend_volume().
1.36 - Adds support for sending objects over RPC in migrate_volume(),
       migrate_volume_completion(), and update_migrated_volume().
1.37 - Adds old_reservations parameter to retype to support quota
       checks in the API.
1.38 - Scaling backup service, add get_backup_device() and
1.39 - Update replication methods to reflect new backend rep strategy
1.40 - Add cascade option to delete_volume().

... Mitaka supports messaging version 1.40. Any changes to existing
methods in 1.x after that point should be done so that they can handle
the version_cap being set to 1.40.

2.0  - Remove 1.x compatibility
2.1  - Add get_manageable_volumes() and get_manageable_snapshots().
2.2  - Adds support for sending objects over RPC in manage_existing().
2.3  - Adds support for sending objects over RPC in
2.4  - Sends request_spec as object in create_volume().
2.5  - Adds create_group, delete_group, and update_group
2.6  - Adds create_group_snapshot, delete_group_snapshot, and

... Newton supports messaging version 2.6. Any changes to existing
methods in 2.x after that point should be done so that they can handle
the version_cap being set to 2.6.

3.0  - Drop 2.x compatibility
3.1  - Remove promote_replica and reenable_replication. This is
       non-backward compatible, but the user-facing API was removed
       back in Mitaka when introducing cheesecake replication.
3.2  - Adds support for sending objects over RPC in
3.3  - Adds support for sending objects over RPC in attach_volume().
3.4  - Adds support for sending objects over RPC in detach_volume().
3.5  - Adds support for cluster in retype and migrate_volume
3.6  - Switch to use oslo.messaging topics to indicate backends instead
       of @backend suffixes in server names.
3.7  - Adds do_cleanup method to do volume cleanups from other nodes
       that we were doing in init_host.
3.8  - Make failover_host cluster aware and add failover_completed.
3.9  - Adds new attach/detach methods
3.10 - Returning objects instead of raw dictionaries in
       get_manageable_volumes & get_manageable_snapshots
3.11 - Removes create_consistencygroup, delete_consistencygroup,
       create_cgsnapshot, delete_cgsnapshot, update_consistencygroup,
       and create_consistencygroup_from_src.
3.12 - Adds set_log_levels and get_log_levels
3.13 - Add initialize_connection_snapshot,
       terminate_connection_snapshot, and remove_export_snapshot.
3.14 - Adds enable_replication, disable_replication,
       failover_replication, and list_replication_targets.
3.15 - Add revert_to_snapshot method
3.16 - Add no_snapshots to accept_transfer method
3.17 - Make get_backup_device a cast (async)
3.18 - Add reimage method
3.19 - Add extend_volume_completion method
BINARY = 'cinder-volume'
TOPIC = 'cinder-volume'
accept_transfer(ctxt, volume, new_user, new_project, no_snapshots=False)
attach_volume(ctxt, volume, instance_uuid, host_name, mountpoint, mode)
attachment_delete(ctxt, attachment_id, vref)
attachment_update(ctxt, vref, connector, attachment_id)
copy_volume_to_image(ctxt, volume, image_meta)
create_group(ctxt: RequestContext, group: Group) None
create_group_from_src(ctxt, group, group_snapshot=None, source_group=None)
create_group_snapshot(ctxt, group_snapshot)
create_snapshot(ctxt: RequestContext, volume: Volume, snapshot: Snapshot) None
create_volume(ctxt: RequestContext, volume: Volume, request_spec: dict | None, filter_properties: dict | None, allow_reschedule: bool = True) None
delete_group(ctxt, group)
delete_group_snapshot(ctxt, group_snapshot)
delete_snapshot(ctxt, snapshot, unmanage_only=False)
delete_volume(ctxt: RequestContext, volume: Volume, unmanage_only: bool = False, cascade: bool = False) None
detach_volume(ctxt, volume, attachment_id)
disable_replication(ctxt, group)
do_cleanup(ctxt, cleanup_request)

Perform this service/cluster resource cleanup as requested.

enable_replication(ctxt, group)
extend_volume(ctxt, volume, new_size, reservations)
extend_volume_completion(ctxt, volume, new_size, reservations, error)
failover(ctxt, service, secondary_backend_id=None)

Failover host to the specified backend_id (secondary).

failover_completed(ctxt, service, updates)

Complete failover on all services of the cluster.

failover_replication(ctxt, group, allow_attached_volume=False, secondary_backend_id=None)
freeze_host(ctxt, service)

Set backend host to frozen.

get_backup_device(ctxt, backup, volume)
get_capabilities(ctxt, backend_id, discover)
get_log_levels(context, service, log_request)
get_manageable_snapshots(ctxt, service, marker, limit, offset, sort_keys, sort_dirs)
get_manageable_volumes(ctxt, service, marker, limit, offset, sort_keys, sort_dirs)
initialize_connection(ctxt, volume, connector)
initialize_connection_snapshot(ctxt, snapshot, connector)
list_replication_targets(ctxt, group)
manage_existing(ctxt, volume, ref)
manage_existing_snapshot(ctxt, snapshot, ref, backend)
migrate_volume(ctxt, volume, dest_backend, force_host_copy)
migrate_volume_completion(ctxt, volume, new_volume, error)
reimage(ctxt, volume, image_meta)
remove_export(ctxt, volume, sync=False)
remove_export_snapshot(ctxt, snapshot, sync=False)
retype(ctxt, volume, new_type_id, dest_backend, migration_policy='never', reservations=None, old_reservations=None)
revert_to_snapshot(ctxt, volume, snapshot)
secure_file_operations_enabled(ctxt, volume)
set_log_levels(context, service, log_request)
terminate_connection(ctxt, volume, connector, force=False)
terminate_connection_snapshot(ctxt, snapshot, connector, force=False)
thaw_host(ctxt, service)

Clear the frozen setting on a backend host.

update_group(ctxt, group, add_volumes=None, remove_volumes=None)
update_migrated_volume(ctxt, volume, new_volume, original_volume_status)