cinder.volume.api module
Handles all requests relating to volumes.
-
class API(image_service=None)
Bases: cinder.db.base.Base
API for interacting with the volume manager.
-
AVAILABLE_MIGRATION_STATUS = (None, 'deleting', 'error', 'success')
-
accept_transfer(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, new_user: str, new_project: str, no_snapshots: bool = False) → dict
-
attach(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, instance_uuid: str, host_name: str, mountpoint: str, mode: str) → cinder.objects.volume_attachment.VolumeAttachment
-
attachment_create(ctxt: cinder.context.RequestContext, volume_ref: cinder.objects.volume.Volume, instance_uuid: str, connector: Optional[dict] = None, attach_mode: Optional[str] = 'null') → cinder.objects.volume_attachment.VolumeAttachment
Create an attachment record for the specified volume.
-
attachment_delete(ctxt: cinder.context.RequestContext, attachment) → cinder.objects.volume_attachment.VolumeAttachmentList
-
attachment_update(ctxt: cinder.context.RequestContext, attachment_ref: cinder.objects.volume_attachment.VolumeAttachment, connector) → cinder.objects.volume_attachment.VolumeAttachment
Update an existing attachment record.
-
begin_detaching(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → None
-
calculate_resource_count(context: cinder.context.RequestContext, resource_type: str, filters: Optional[dict]) → int
-
check_volume_filters(filters: dict, strict: bool = False) → None
Sets the user filter value to accepted format
-
copy_volume_to_image(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, metadata: dict[str, str], force: bool) → dict[str, Optional[str]]
Create a new image from the specified volume.
-
create(context: cinder.context.RequestContext, size: Union[str, int], name: Optional[str], description: Optional[str], snapshot: Optional[cinder.objects.snapshot.Snapshot] = None, image_id: Optional[str] = None, volume_type: Optional[cinder.objects.volume_type.VolumeType] = None, metadata: Optional[dict] = None, availability_zone: Optional[str] = None, source_volume: Optional[cinder.objects.volume.Volume] = None, scheduler_hints=None, source_replica=None, consistencygroup: Optional[cinder.objects.consistencygroup.ConsistencyGroup] = None, cgsnapshot: Optional[cinder.objects.cgsnapshot.CGSnapshot] = None, multiattach: Optional[bool] = False, source_cg=None, group: Optional[cinder.objects.group.Group] = None, group_snapshot=None, source_group=None, backup: Optional[cinder.objects.backup.Backup] = None)
-
create_snapshot(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, name: str, description: str, metadata: Optional[dict[str, Any]] = None, cgsnapshot_id: Optional[str] = None, group_snapshot_id: Optional[str] = None, allow_in_use: bool = False) → cinder.objects.snapshot.Snapshot
-
create_snapshot_force(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, name: str, description: str, metadata: Optional[dict[str, Any]] = None) → cinder.objects.snapshot.Snapshot
-
create_snapshot_in_db(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, name: Optional[str], description: Optional[str], force: bool, metadata: Optional[dict], cgsnapshot_id: Optional[str], commit_quota: bool = True, group_snapshot_id: Optional[str] = None, allow_in_use: bool = False) → cinder.objects.snapshot.Snapshot
-
create_snapshots_in_db(context: cinder.context.RequestContext, volume_list: list, name: str, description: str, cgsnapshot_id: str, group_snapshot_id: Optional[str] = None) → list
-
create_volume_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, metadata: dict[str, Any]) → dict
Creates volume metadata.
-
delete(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, force: bool = False, unmanage_only: bool = False, cascade: bool = False) → None
-
delete_snapshot(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot, force: bool = False, unmanage_only: bool = False) → None
-
delete_snapshot_metadata(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot, key: str) → None
Delete the given metadata item from a snapshot.
-
delete_volume_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, key: str, meta_type=METADATA_TYPES.user) → None
Delete the given metadata item from a volume.
-
detach(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, attachment_id: str) → None
-
extend(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, new_size: int) → None
-
extend_attached_volume(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, new_size: int) → None
-
failover(ctxt: cinder.context.RequestContext, host: str, cluster_name: str, secondary_id: Optional[str] = None) → None
-
freeze_host(ctxt: cinder.context.RequestContext, host: str, cluster_name: str) → None
-
get(context: cinder.context.RequestContext, volume_id: str, viewable_admin_meta: bool = False) → cinder.objects.volume.Volume
-
get_all(context: cinder.context.RequestContext, marker: Optional[str] = None, limit: Optional[int] = None, sort_keys: Optional[Iterable[str]] = None, sort_dirs: Optional[Iterable[str]] = None, filters: Optional[dict] = None, viewable_admin_meta: bool = False, offset: Optional[int] = None) → cinder.objects.volume.VolumeList
-
get_all_snapshots(context: cinder.context.RequestContext, search_opts: Optional[dict] = None, marker: Optional[str] = None, limit: Optional[int] = None, sort_keys: Optional[list[str]] = None, sort_dirs: Optional[list[str]] = None, offset: Optional[int] = None) → cinder.objects.snapshot.SnapshotList
-
get_list_volumes_image_metadata(context: cinder.context.RequestContext, volume_id_list: list[str]) → DefaultDict[str, str]
-
get_manageable_snapshots(context: cinder.context.RequestContext, host: str, cluster_name: Optional[str], marker: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None, sort_keys: Optional[list[str]] = None, sort_dirs: Optional[list[str]] = None) → list[dict]
-
get_manageable_volumes(context: cinder.context.RequestContext, host: str, cluster_name, marker: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None, sort_keys: Optional[list[str]] = None, sort_dirs: Optional[list[str]] = None)
-
get_snapshot(context: cinder.context.RequestContext, snapshot_id: str) → cinder.objects.snapshot.Snapshot
-
get_snapshot_metadata(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot) → dict
Get all metadata associated with a snapshot.
-
get_volume(context: cinder.context.RequestContext, volume_id: str) → cinder.objects.volume.Volume
-
get_volume_image_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → dict[str, str]
-
get_volume_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → dict
Get all metadata associated with a volume.
-
get_volume_summary(context: cinder.context.RequestContext, filters: Optional[dict] = None) → cinder.objects.volume.VolumeList
-
get_volumes_image_metadata(context: cinder.context.RequestContext) → collections.defaultdict
-
initialize_connection(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, connector: dict) → dict
-
list_availability_zones(enable_cache: bool = False, refresh_cache: bool = False) → tuple
Describe the known availability zones
- Parameters
-
- Returns
tuple of dicts, each with a ‘name’ and ‘available’ key
-
manage_existing(context: cinder.context.RequestContext, host: str, cluster_name: Optional[str], ref: dict, name: Optional[str] = None, description: Optional[str] = None, volume_type: Optional[cinder.objects.volume_type.VolumeType] = None, metadata: Optional[dict] = None, availability_zone: Optional[str] = None, bootable: Optional[bool] = False) → cinder.objects.volume.Volume
-
manage_existing_snapshot(context: cinder.context.RequestContext, ref: dict, volume: cinder.objects.volume.Volume, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[dict] = None) → cinder.objects.snapshot.Snapshot
-
migrate_volume(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, host: str, cluster_name: str, force_copy: bool, lock_volume: bool) → None
Migrate the volume to the specified host or cluster.
-
migrate_volume_completion(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, new_volume: cinder.objects.volume.Volume, error: bool) → str
-
reimage(context, volume, image_id, reimage_reserved=False)
-
reserve_volume(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → None
-
retype(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, new_type: Union[str, cinder.objects.volume_type.VolumeType], migration_policy: Optional[str] = None) → None
Attempt to modify the type associated with an existing volume.
-
revert_to_snapshot(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, snapshot: cinder.objects.snapshot.Snapshot) → None
revert a volume to a snapshot
-
roll_detaching(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → None
-
terminate_connection(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, connector: dict, force: bool = False) → None
-
thaw_host(ctxt: cinder.context.RequestContext, host: str, cluster_name: str) → Optional[str]
-
unreserve_volume(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume) → None
-
update(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, fields: dict) → None
-
update_readonly_flag(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, flag) → None
-
update_snapshot(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot, fields: dict[str, Any]) → None
-
update_snapshot_metadata(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot, metadata: dict[str, Any], delete: bool = False) → dict
Updates or creates snapshot metadata.
If delete is True, metadata items that are not specified in the
metadata argument will be deleted.
-
update_volume_admin_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, metadata: dict[str, Any], delete: Optional[bool] = False, add: Optional[bool] = True, update: Optional[bool] = True) → dict
Updates or creates volume administration metadata.
If delete is True, metadata items that are not specified in the
metadata argument will be deleted.
-
update_volume_metadata(context: cinder.context.RequestContext, volume: cinder.objects.volume.Volume, metadata: dict[str, Any], delete: bool = False, meta_type=METADATA_TYPES.user) → dict
Updates volume metadata.
If delete is True, metadata items that are not specified in the
metadata argument will be deleted.
-
class HostAPI
Bases: cinder.db.base.Base
Sub-set of the Volume Manager API for managing host operations.
-
set_host_enabled(context, host, enabled)
Sets the specified host’s ability to accept new volumes.