Handles all requests relating to volumes.
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, force: bool) → dict¶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] = 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] = 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) → 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: 1>) → 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] = None, sort_dirs: Optional[list] = None, offset: Optional[int] = None) → cinder.objects.snapshot.SnapshotList¶get_list_volumes_image_metadata(context: cinder.context.RequestContext, volume_id_list: list) → 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] = None, sort_dirs: Optional[list] = None) → list¶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] = None, sort_dirs: Optional[list] = 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¶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
enable_cache – Enable az cache
refresh_cache – Refresh cache immediately
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) → None¶update_snapshot_metadata(context: cinder.context.RequestContext, snapshot: cinder.objects.snapshot.Snapshot, metadata: dict, 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, 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, delete: bool = False, meta_type=<METADATA_TYPES.user: 1>) → dict¶Updates volume metadata.
If delete is True, metadata items that are not specified in the metadata argument will be deleted.
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.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.