The cinder.db.api Module

Defines interface for DB access.

Functions in this module are imported into the cinder.db namespace. Call these functions from cinder.db namespace, not the cinder.db.api namespace.

All functions in this module return objects that implement a dictionary-like interface. Currently, many of these objects are sqlalchemy objects that implement a dictionary interface. However, a future goal is to have all of these objects be simple dictionaries.

Related Flags

connection:string specifying the sqlalchemy connection to use, like: sqlite:///var/lib/cinder/cinder.sqlite.
enable_new_services:
 when adding a new service to the database, is it in the pool of available hardware (Default: True)
backup_create(context, values)

Create a backup from the values dictionary.

backup_destroy(context, backup_id)

Destroy the backup or raise if it does not exist.

backup_get(context, backup_id, read_deleted=None, project_only=True)

Get a backup or raise if it does not exist.

backup_get_all(context, filters=None, marker=None, limit=None, offset=None, sort_keys=None, sort_dirs=None)

Get all backups.

backup_get_all_by_host(context, host)

Get all backups belonging to a host.

backup_get_all_by_project(context, project_id, filters=None, marker=None, limit=None, offset=None, sort_keys=None, sort_dirs=None)

Get all backups belonging to a project.

backup_get_all_by_volume(context, volume_id, filters=None)

Get all backups belonging to a volume.

backup_update(context, backup_id, values)

Set the given properties on a backup and update it.

Raises NotFound if backup does not exist.

cgsnapshot_create(context, values)

Create a cgsnapshot from the values dictionary.

cgsnapshot_destroy(context, cgsnapshot_id)

Destroy the cgsnapshot or raise if it does not exist.

cgsnapshot_get(context, cgsnapshot_id)

Get a cgsnapshot or raise if it does not exist.

cgsnapshot_get_all(context, filters=None)

Get all cgsnapshots.

cgsnapshot_get_all_by_group(context, group_id, filters=None)

Get all cgsnapshots belonging to a consistency group.

cgsnapshot_get_all_by_project(context, project_id, filters=None)

Get all cgsnapshots belonging to a project.

cgsnapshot_update(context, cgsnapshot_id, values)

Set the given properties on a cgsnapshot and update it.

Raises NotFound if cgsnapshot does not exist.

consistencygroup_create(context, values)

Create a consistencygroup from the values dictionary.

consistencygroup_destroy(context, consistencygroup_id)

Destroy the consistencygroup or raise if it does not exist.

consistencygroup_get(context, consistencygroup_id)

Get a consistencygroup or raise if it does not exist.

consistencygroup_get_all(context)

Get all consistencygroups.

consistencygroup_get_all_by_project(context, project_id)

Get all consistencygroups belonging to a project.

consistencygroup_update(context, consistencygroup_id, values)

Set the given properties on a consistencygroup and update it.

Raises NotFound if consistencygroup does not exist.

dispose_engine()

Force the engine to establish new connections.

driver_initiator_data_get(context, initiator, namespace)

Query for an DriverPrivateData that has the specified key

driver_initiator_data_update(context, initiator, namespace, updates)

Create DriverPrivateData from the values dictionary.

finish_volume_migration(context, src_vol_id, dest_vol_id)

Perform database updates upon completion of volume migration.

get_booleans_for_table(table_name)
image_volume_cache_create(context, host, image_id, image_updated_at, volume_id, size)

Create a new image volume cache entry.

image_volume_cache_delete(context, volume_id)

Delete an image volume cache entry specified by volume id.

image_volume_cache_get_all_for_host(context, host)

Query for all image volume cache entry for a host.

image_volume_cache_get_and_update_last_used(context, image_id, host)

Query for an image volume cache entry.

image_volume_cache_get_by_volume_id(context, volume_id)

Query to see if a volume id is an image-volume contained in the cache

iscsi_target_count_by_host(context, host)

Return count of export devices.

iscsi_target_create_safe(context, values)

Create an iscsi_target from the values dictionary.

The device is not returned. If the create violates the unique constraints because the iscsi_target and host already exist, no exception is raised.

purge_deleted_rows(context, age_in_days)

Purge deleted rows older than given age from cinder tables

Raises InvalidParameterValue if age_in_days is incorrect. :returns: number of deleted rows

qos_specs_associate(context, qos_specs_id, type_id)

Associate qos_specs from volume type.

qos_specs_associations_get(context, qos_specs_id)

Get all associated volume types for a given qos_specs.

qos_specs_create(context, values)

Create a qos_specs.

qos_specs_delete(context, qos_specs_id)

Delete the qos_specs.

qos_specs_disassociate(context, qos_specs_id, type_id)

Disassociate qos_specs from volume type.

qos_specs_disassociate_all(context, qos_specs_id)

Disassociate qos_specs from all entities.

qos_specs_get(context, qos_specs_id)

Get all specification for a given qos_specs.

qos_specs_get_all(context, inactive=False, filters=None)

Get all qos_specs.

qos_specs_get_by_name(context, name)

Get all specification for a given qos_specs.

qos_specs_item_delete(context, qos_specs_id, key)

Delete specified key in the qos_specs.

qos_specs_update(context, qos_specs_id, specs)

Update qos specs.

This adds or modifies the key/value pairs specified in the specs dict argument for a given qos_specs.

quota_allocated_get_all_by_project(context, project_id)

Retrieve all allocated quotas associated with a given project.

quota_allocated_update(context, project_id, resource, allocated)

Update allocated quota to subprojects or raise if it does not exist.

Raises:cinder.exception.ProjectQuotaNotFound
quota_class_create(context, class_name, resource, limit)

Create a quota class for the given name and resource.

quota_class_destroy(context, class_name, resource)

Destroy the quota class or raise if it does not exist.

quota_class_destroy_all_by_name(context, class_name)

Destroy all quotas associated with a given quota class.

quota_class_get(context, class_name, resource)

Retrieve a quota class or raise if it does not exist.

quota_class_get_all_by_name(context, class_name)

Retrieve all quotas associated with a given quota class.

quota_class_get_default(context)

Retrieve all default quotas.

quota_class_update(context, class_name, resource, limit)

Update a quota class or raise if it does not exist.

quota_create(context, project_id, resource, limit, allocated=0)

Create a quota for the given project and resource.

quota_destroy(context, project_id, resource)

Destroy the quota or raise if it does not exist.

quota_destroy_by_project(context, project_id)

Destroy all quotas associated with a given project.

quota_get(context, project_id, resource)

Retrieve a quota or raise if it does not exist.

quota_get_all_by_project(context, project_id)

Retrieve all quotas associated with a given project.

quota_reserve(context, resources, quotas, deltas, expire, until_refresh, max_age, project_id=None)

Check quotas and create appropriate reservations.

quota_update(context, project_id, resource, limit)

Update a quota or raise if it does not exist.

quota_usage_get(context, project_id, resource)

Retrieve a quota usage or raise if it does not exist.

quota_usage_get_all_by_project(context, project_id)

Retrieve all usage associated with a given resource.

reservation_commit(context, reservations, project_id=None)

Commit quota reservations.

reservation_expire(context)

Roll back any expired reservations.

reservation_rollback(context, reservations, project_id=None)

Roll back quota reservations.

service_create(context, values)

Create a service from the values dictionary.

service_destroy(context, service_id)

Destroy the service or raise if it does not exist.

service_get(context, service_id)

Get a service or raise if it does not exist.

service_get_all(context, disabled=None)

Get all services.

service_get_all_by_topic(context, topic, disabled=None)

Get all services for a given topic.

service_get_by_args(context, host, binary)

Get the state of an service by node name and binary.

service_get_by_host_and_topic(context, host, topic)

Get a service by host it’s on and topic it listens to.

service_update(context, service_id, values)

Set the given properties on an service and update it.

Raises NotFound if service does not exist.

snapshot_create(context, values)

Create a snapshot from the values dictionary.

snapshot_data_get_for_project(context, project_id, volume_type_id=None)

Get count and gigabytes used for snapshots for specified project.

snapshot_destroy(context, snapshot_id)

Destroy the snapshot or raise if it does not exist.

snapshot_get(context, snapshot_id)

Get a snapshot or raise if it does not exist.

snapshot_get_active_by_window(context, begin, end=None, project_id=None)

Get all the snapshots inside the window.

Specifying a project_id will filter for a certain project.

snapshot_get_all(context, filters=None, marker=None, limit=None, sort_keys=None, sort_dirs=None, offset=None)

Get all snapshots.

snapshot_get_all_by_project(context, project_id, filters=None, marker=None, limit=None, sort_keys=None, sort_dirs=None, offset=None)

Get all snapshots belonging to a project.

snapshot_get_all_for_cgsnapshot(context, project_id)

Get all snapshots belonging to a cgsnapshot.

snapshot_get_all_for_volume(context, volume_id)

Get all snapshots for a volume.

snapshot_get_by_host(context, host, filters=None)

Get all snapshots belonging to a host.

Parameters:
  • host – Include include snapshots only for specified host.
  • filters – Filters for the query in the form of key/value.
snapshot_metadata_delete(context, snapshot_id, key)

Delete the given metadata item.

snapshot_metadata_get(context, snapshot_id)

Get all metadata for a snapshot.

snapshot_metadata_update(context, snapshot_id, metadata, delete)

Update metadata if it exists, otherwise create it.

snapshot_update(context, snapshot_id, values)

Set the given properties on an snapshot and update it.

Raises NotFound if snapshot does not exist.

transfer_accept(context, transfer_id, user_id, project_id)

Accept a volume transfer.

transfer_create(context, values)

Create an entry in the transfers table.

transfer_destroy(context, transfer_id)

Destroy a record in the volume transfer table.

transfer_get(context, transfer_id)

Get a volume transfer record or raise if it does not exist.

transfer_get_all(context)

Get all volume transfer records.

transfer_get_all_by_project(context, project_id)

Get all volume transfer records for specified project.

volume_admin_metadata_delete(context, volume_id, key)

Delete the given metadata item.

volume_admin_metadata_get(context, volume_id)

Get all administration metadata for a volume.

volume_admin_metadata_update(context, volume_id, metadata, delete)

Update metadata if it exists, otherwise create it.

volume_attach(context, values)

Attach a volume.

volume_attached(context, volume_id, instance_id, host_name, mountpoint, attach_mode='rw')

Ensure that a volume is set as attached.

volume_attachment_get(context, attachment_id, session=None)
volume_attachment_get_by_host(context, volume_id, host)
volume_attachment_get_by_instance_uuid(context, volume_id, instance_uuid)
volume_attachment_get_used_by_volume_id(context, volume_id)
volume_attachment_update(context, attachment_id, values)
volume_create(context, values)

Create a volume from the values dictionary.

volume_data_get_for_host(context, host, count_only=False)

Get (volume_count, gigabytes) for project.

volume_data_get_for_project(context, project_id)

Get (volume_count, gigabytes) for project.

volume_destroy(context, volume_id)

Destroy the volume or raise if it does not exist.

volume_detached(context, volume_id, attachment_id)

Ensure that a volume is set as detached.

volume_encryption_metadata_get(context, volume_id, session=None)
volume_get(context, volume_id)

Get a volume or raise if it does not exist.

volume_get_active_by_window(context, begin, end=None, project_id=None)

Get all the volumes inside the window.

Specifying a project_id will filter for a certain project.

volume_get_all(context, marker, limit, sort_keys=None, sort_dirs=None, filters=None, offset=None)

Get all volumes.

volume_get_all_by_group(context, group_id, filters=None)

Get all volumes belonging to a consistency group.

volume_get_all_by_host(context, host, filters=None)

Get all volumes belonging to a host.

volume_get_all_by_project(context, project_id, marker, limit, sort_keys=None, sort_dirs=None, filters=None, offset=None)

Get all volumes belonging to a project.

volume_get_iscsi_target_num(context, volume_id)

Get the target num (tid) allocated to the volume.

volume_glance_metadata_bulk_create(context, volume_id, metadata)

Add Glance metadata for specified volume (multiple pairs).

volume_glance_metadata_copy_from_volume_to_volume(context, src_volume_id, volume_id)

Update the Glance metadata for a volume.

Update the Glance metadata for a volume by copying all of the key:value pairs from the originating volume.

This is so that a volume created from the volume (clone) will retain the original metadata.

volume_glance_metadata_copy_to_snapshot(context, snapshot_id, volume_id)

Update the Glance metadata for a snapshot.

This will copy all of the key:value pairs from the originating volume, to ensure that a volume created from the snapshot will retain the original metadata.

volume_glance_metadata_copy_to_volume(context, volume_id, snapshot_id)

Update the Glance metadata from a volume (created from a snapshot).

This will copy all of the key:value pairs from the originating snapshot, to ensure that the Glance metadata from the original volume is retained.

volume_glance_metadata_create(context, volume_id, key, value)

Update the Glance metadata for the specified volume.

volume_glance_metadata_delete_by_snapshot(context, snapshot_id)

Delete the glance metadata for a snapshot.

volume_glance_metadata_delete_by_volume(context, volume_id)

Delete the glance metadata for a volume.

volume_glance_metadata_get(context, volume_id)

Return the glance metadata for a volume.

volume_glance_metadata_get_all(context)

Return the glance metadata for all volumes.

volume_glance_metadata_list_get(context, volume_id_list)

Return the glance metadata for a volume list.

volume_metadata_delete(context, volume_id, key, meta_type=<METADATA_TYPES.user: 1>)

Delete the given metadata item.

volume_metadata_get(context, volume_id)

Get all metadata for a volume.

volume_metadata_update(context, volume_id, metadata, delete, meta_type=<METADATA_TYPES.user: 1>)

Update metadata if it exists, otherwise create it.

volume_snapshot_glance_metadata_get(context, snapshot_id)

Return the Glance metadata for the specified snapshot.

volume_type_access_add(context, type_id, project_id)

Add volume type access for project.

volume_type_access_get_all(context, type_id)

Get all volume type access of a volume type.

volume_type_access_remove(context, type_id, project_id)

Remove volume type access for project.

volume_type_create(context, values, projects=None)

Create a new volume type.

volume_type_destroy(context, id)

Delete a volume type.

volume_type_encryption_create(context, volume_type_id, encryption_specs)
volume_type_encryption_delete(context, volume_type_id)
volume_type_encryption_get(context, volume_type_id, session=None)
volume_type_encryption_update(context, volume_type_id, encryption_specs)
volume_type_encryption_volume_get(context, volume_type_id, session=None)
volume_type_extra_specs_delete(context, volume_type_id, key)

Delete the given extra specs item.

volume_type_extra_specs_get(context, volume_type_id)

Get all extra specs for a volume type.

volume_type_extra_specs_update_or_create(context, volume_type_id, extra_specs)

Create or update volume type extra specs.

This adds or modifies the key/value pairs specified in the extra specs dict argument.

volume_type_get(context, id, inactive=False, expected_fields=None)

Get volume type by id.

Parameters:
  • context – context to query under
  • id – Volume type id to get.
  • inactive – Consider inactive volume types when searching
  • expected_fields – Return those additional fields. Supported fields are: projects.
Returns:

volume type

volume_type_get_all(context, inactive=False, filters=None)

Get all volume types.

Parameters:
  • context – context to query under
  • inactive – Include inactive volume types to the result set
  • filters

    Filters for the query in the form of key/value.

    is_public:Filter volume types based on visibility:
    • True: List public volume types only
    • False: List private volume types only
    • None: List both public and private volume types
Returns:

list of matching volume types

volume_type_get_by_name(context, name)

Get volume type by name.

volume_type_qos_associate(context, type_id, qos_specs_id)

Associate a volume type with specific qos specs.

volume_type_qos_associations_get(context, qos_specs_id, inactive=False)

Get volume types that are associated with specific qos specs.

volume_type_qos_disassociate(context, qos_specs_id, type_id)

Disassociate a volume type from specific qos specs.

volume_type_qos_disassociate_all(context, qos_specs_id)

Disassociate all volume types from specific qos specs.

volume_type_qos_specs_get(context, type_id)

Get all qos specs for given volume type.

volume_type_update(context, volume_type_id, values)
volume_types_get_by_name_or_id(context, volume_type_list)

Get volume types by name or id.

volume_update(context, volume_id, values)

Set the given properties on an volume and update it.

Raises NotFound if volume does not exist.

volume_update_status_based_on_attachment(context, volume_id)

Update volume status according to attached instance id

Previous topic

The cinder.context Module

Next topic

The cinder.db.base Module

Project Source

This Page