The Database Layer

The Database Layer

The manila.db.api Module

Defines interface for DB access.

The underlying driver is loaded as a LazyPluggable.

Functions in this module are imported into the manila.db namespace. Call these functions from manila.db namespace, not the manila.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

backend:string to lookup in the list of LazyPluggable backends. sqlalchemy is the only supported backend right now.
connection:string specifying the sqlalchemy connection to use, like: sqlite:///var/lib/manila/manila.sqlite.
enable_new_services:
 when adding a new service to the database, is it in the pool of available hardware (Default: True)
authorize_project_context(context, project_id)

Ensures a request has permission to access the given project.

authorize_quota_class_context(context, class_name)

Ensures a request has permission to access the given quota class.

availability_zone_get(context, id_or_name)

Get availability zone by name or id.

availability_zone_get_all(context)

Get all active availability zones.

backend_info_get(context, host)

Get hash info for given host.

backend_info_update(context, host, value=None, delete_existing=False)

Update hash info for host.

cleanup_expired_messages(context)

Soft delete expired messages

count_share_group_snapshot_members_in_share(context, share_id, session=None)

Returns the number of group snapshot members linked to the share.

count_share_group_snapshots_in_share_group(context, share_group_id)

Returns the number of sg snapshots with the specified share group.

count_share_groups_in_share_network(context, share_network_id, session=None)

Return the number of groups with the specified share network.

count_share_networks(context, project_id, user_id=None, share_type_id=None, session=None)
count_shares_in_share_group(context, share_group_id)

Returns the number of undeleted shares with the specified group.

driver_private_data_delete(context, entity_id, key=None)

Remove one, list or all key-value pairs for given entity_id.

driver_private_data_get(context, entity_id, key=None, default=None)

Get one, list or all key-value pairs for given entity_id.

driver_private_data_update(context, entity_id, details, delete_existing=False)

Update key-value pairs for given entity_id.

export_location_metadata_delete(context, export_location_uuid, keys, session=None)

Delete metadata of an export location.

export_location_metadata_get(context, export_location_uuid, session=None)

Get all metadata of an export location.

export_location_metadata_update(context, export_location_uuid, metadata, delete, session=None)

Update metadata of an export location.

get_all_shares_by_share_group(context, share_group_id)
message_create(context, values)

Creates a new message with the specified values.

message_destroy(context, message_id)

Deletes message with the specified ID.

message_get(context, message_id)

Return a message with the specified ID.

message_get_all(context, filters=None, sort_key=None, sort_dir=None)

Returns all messages with the project of the specified context.

network_allocation_create(context, values)

Create a network allocation DB record.

network_allocation_delete(context, id)

Delete a network allocation DB record.

network_allocation_get(context, id, session=None, read_deleted=None)

Get a network allocation DB record.

network_allocation_update(context, id, values, read_deleted=None)

Update a network allocation DB record.

network_allocations_get_by_ip_address(context, ip_address)

Get network allocations by IP address.

network_allocations_get_for_share_server(context, share_server_id, session=None, label=None)

Get network allocations for share server.

purge_deleted_records(context, age_in_days)

Purge deleted rows older than given age from all tables

Raises:InvalidParameterValue if age_in_days is incorrect.
quota_class_create(context, class_name, resource, limit)

Create a quota class for the given name and resource.

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, user_id=None, share_type_id=None)

Create a quota for the given project and resource.

quota_destroy_all_by_project(context, project_id)

Destroy all quotas associated with a given project.

quota_destroy_all_by_project_and_user(context, project_id, user_id)

Destroy all quotas associated with a given project and user.

quota_destroy_all_by_share_type(context, share_type_id, project_id=None)

Destroy all quotas associated with a given share type and project.

quota_get_all(context, project_id)

Retrieve all user quotas associated with a given project.

quota_get_all_by_project(context, project_id)

Retrieve all quotas associated with a given project.

quota_get_all_by_project_and_share_type(context, project_id, share_type_id)

Retrieve all quotas associated with a given project and user.

quota_get_all_by_project_and_user(context, project_id, user_id)

Retrieve all quotas associated with a given project and user.

quota_reserve(context, resources, quotas, user_quotas, share_type_quotas, deltas, expire, until_refresh, max_age, project_id=None, user_id=None, share_type_id=None)

Check quotas and create appropriate reservations.

quota_update(context, project_id, resource, limit, user_id=None, share_type_id=None)

Update a quota or raise if it does not exist.

quota_usage_create(context, project_id, user_id, resource, in_use, reserved=0, until_refresh=None, share_type_id=None)

Create a quota usage.

quota_usage_get(context, project_id, resource, user_id=None, share_type_id=None)

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.

quota_usage_get_all_by_project_and_share_type(context, project_id, share_type_id)

Retrieve all usage associated with a given resource.

quota_usage_get_all_by_project_and_user(context, project_id, user_id)

Retrieve all usage associated with a given resource.

quota_usage_update(context, project_id, user_id, resource, share_type_id=None, **kwargs)

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

reservation_commit(context, reservations, project_id=None, user_id=None, share_type_id=None)

Commit quota reservations.

reservation_expire(context)

Roll back any expired reservations.

reservation_rollback(context, reservations, project_id=None, user_id=None, share_type_id=None)

Roll back quota reservations.

security_service_create(context, values)

Create security service DB record.

security_service_delete(context, id)

Delete security service DB record.

security_service_get(context, id)

Get security service DB record.

security_service_get_all(context)

Get all security service DB records.

security_service_get_all_by_project(context, project_id)

Get all security service DB records for the given project.

security_service_update(context, id, values)

Update security service DB record.

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)

Get all services for a given topic.

service_get_all_share_sorted(context)

Get all share services sorted by share count.

Returns:a list of (Service, share_count) tuples.
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.

share_access_check_for_existing_access(context, share_id, access_type, access_to)

Returns True if rule corresponding to the type and client exists.

share_access_create(context, values)

Allow access to share.

share_access_get(context, access_id)

Get share access rule.

share_access_get_all_by_type_and_access(context, share_id, access_type, access)

Returns share access by given type and access.

share_access_get_all_for_instance(context, instance_id, filters=None, with_share_access_data=True)

Get all access rules related to a certain share instance.

share_access_get_all_for_share(context, share_id, filters=None)

Get all access rules for given share.

share_access_metadata_delete(context, access_id, key)

Delete metadata of share access rule.

share_access_metadata_update(context, access_id, metadata)

Update metadata of share access rule.

share_create(context, share_values, create_share_instance=True)

Create new share.

share_delete(context, share_id)

Delete share.

share_export_location_get_by_uuid(context, export_location_uuid, ignore_secondary_replicas=False)

Get specific export location of a share.

share_export_locations_get(context, share_id)

Get all export locations of a share.

share_export_locations_get_by_share_id(context, share_id, include_admin_only=True, ignore_migration_destination=False, ignore_secondary_replicas=False)

Get all export locations of a share by its ID.

share_export_locations_get_by_share_instance_id(context, share_instance_id, include_admin_only=True)

Get all export locations of a share instance by its ID.

share_export_locations_update(context, share_instance_id, export_locations, delete=True)

Update export locations of a share instance.

share_get(context, share_id)

Get share by id.

share_get_all(context, filters=None, sort_key=None, sort_dir=None)

Get all shares.

share_get_all_by_project(context, project_id, filters=None, is_public=False, sort_key=None, sort_dir=None)

Returns all shares with given project ID.

share_get_all_by_share_group_id(context, share_group_id, filters=None, sort_key=None, sort_dir=None)

Returns all shares with given project ID and share group id.

share_get_all_by_share_server(context, share_server_id, filters=None, sort_key=None, sort_dir=None)

Returns all shares with given share server ID.

share_group_create(context, values)

Create a share group from the values dictionary.

share_group_destroy(context, share_group_id)

Destroy the share group or raise if it does not exist.

share_group_get(context, share_group_id)

Get a share group or raise if it does not exist.

share_group_get_all(context, detailed=True, filters=None, sort_key=None, sort_dir=None)

Get all share groups.

share_group_get_all_by_host(context, host, detailed=True, filters=None, sort_key=None, sort_dir=None)

Get all share groups belonging to a host.

share_group_get_all_by_project(context, project_id, detailed=True, filters=None, sort_key=None, sort_dir=None)

Get all share groups belonging to a project.

share_group_get_all_by_share_server(context, share_server_id, filters=None, sort_key=None, sort_dir=None)

Get all share groups associated with a share server.

share_group_snapshot_create(context, values)

Create a share group snapshot from the values dictionary.

share_group_snapshot_destroy(context, share_group_snapshot_id)

Destroy the share_group_snapshot or raise if it does not exist.

share_group_snapshot_get(context, share_group_snapshot_id)

Get a share group snapshot.

share_group_snapshot_get_all(context, detailed=True, filters=None, sort_key=None, sort_dir=None)

Get all share group snapshots.

share_group_snapshot_get_all_by_project(context, project_id, detailed=True, filters=None, sort_key=None, sort_dir=None)

Get all share group snapshots belonging to a project.

share_group_snapshot_member_create(context, values)

Create a share group snapshot member from the values dictionary.

share_group_snapshot_member_update(context, member_id, values)

Set the given properties on a share group snapshot member and update it.

Raises NotFound if share_group_snapshot member does not exist.

share_group_snapshot_members_get_all(context, share_group_snapshot_id)

Return the members of a share group snapshot.

share_group_snapshot_update(context, share_group_snapshot_id, values)

Set the given properties on a share group snapshot and update it.

Raises NotFound if share group snapshot does not exist.

share_group_type_access_add(context, type_id, project_id)

Add share group type access for project.

share_group_type_access_get_all(context, type_id)

Get all share group type access of a share group type.

share_group_type_access_remove(context, type_id, project_id)

Remove share group type access for project.

share_group_type_create(context, values, projects=None)

Create a new share group type.

share_group_type_destroy(context, type_id)

Delete a share group type.

share_group_type_get(context, type_id, inactive=False, expected_fields=None)

Get share_group type by id.

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

share group type

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

Get all share group types.

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

    Filters for the query in the form of key/value. :is_public: Filter share group types based on visibility:

    • True: List public group types only
    • False: List private group types only
    • None: List both public and private group types
Returns:

list of matching share group types

share_group_type_get_by_name(context, name)

Get share group type by name.

share_group_type_specs_delete(context, type_id, key)

Delete the given group specs item.

share_group_type_specs_get(context, type_id)

Get all group specs for a share group type.

share_group_type_specs_update_or_create(context, type_id, group_specs)

Create or update share group type specs.

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

share_group_update(context, share_group_id, values)

Set the given properties on a share group and update it.

Raises NotFound if share group does not exist.

share_instance_access_copy(context, share_id, instance_id)

Maps the existing access rules for the share to the instance in the DB.

Adds the instance mapping to the share’s access rules and returns the share’s access rules.

share_instance_access_create(context, values, share_instance_id)

Allow access to share instance.

share_instance_access_delete(context, mapping_id)

Deny access to share instance.

share_instance_access_get(context, access_id, instance_id, with_share_access_data=True)

Get access rule mapping for share instance.

share_instance_access_update(context, access_id, instance_id, updates)

Update the access mapping row for a given share instance and access.

share_instance_create(context, share_id, values)

Create new share instance.

share_instance_delete(context, instance_id, session=None, need_to_update_usages=False)

Delete share instance.

share_instance_get(context, instance_id, with_share_data=False)

Get share instance by id.

share_instance_update(context, instance_id, values, with_share_data=False)

Update share instance fields.

share_instances_get_all(context, filters=None)

Returns all share instances.

share_instances_get_all_by_host(context, host, with_share_data=False)

Returns all share instances with given host.

share_instances_get_all_by_share(context, share_id)

Returns list of shares that belong to given share.

share_instances_get_all_by_share_group_id(context, share_group_id)

Returns list of share instances that belong to given share group.

share_instances_get_all_by_share_network(context, share_network_id)

Returns list of shares that belong to given share network.

share_instances_get_all_by_share_server(context, share_server_id)

Returns all share instances with given share_server_id.

share_instances_host_update(context, current_host, new_host)

Update the host attr of all share instances that are on current_host.

share_metadata_delete(context, share_id, key)

Delete the given metadata item.

share_metadata_get(context, share_id)

Get all metadata for a share.

share_metadata_update(context, share, metadata, delete)

Update metadata if it exists, otherwise create it.

share_network_add_security_service(context, id, security_service_id)
share_network_create(context, values)

Create a share network DB record.

share_network_delete(context, id)

Delete a share network DB record.

share_network_get(context, id)

Get requested share network DB record.

share_network_get_all(context)

Get all share network DB records.

share_network_get_all_by_project(context, project_id)

Get all share network DB records for the given project.

share_network_get_all_by_security_service(context, security_service_id)

Get all share network DB records for the given project.

share_network_remove_security_service(context, id, security_service_id)
share_network_update(context, id, values)

Update a share network DB record.

share_replica_delete(context, share_replica_id)

Deletes a share replica.

share_replica_get(context, replica_id, with_share_server=False, with_share_data=False)

Get share replica by id.

share_replica_update(context, share_replica_id, values, with_share_data=False)

Updates a share replica with given values.

share_replicas_get_all(context, with_share_server=False, with_share_data=False)

Returns all share replicas regardless of share.

share_replicas_get_all_by_share(context, share_id, with_share_server=False, with_share_data=False)

Returns all share replicas for a given share.

share_replicas_get_available_active_replica(context, share_id, with_share_server=False, with_share_data=False)

Returns an active replica for a given share.

share_server_backend_details_set(context, share_server_id, server_details)

Create DB record with backend details.

share_server_create(context, values)

Create share server DB record.

share_server_delete(context, id)

Delete share server DB record.

share_server_get(context, id, session=None)

Get share server DB record by ID.

share_server_get_all(context)

Get all share server DB records.

share_server_get_all_by_host(context, host)

Get all share servers related to particular host.

share_server_get_all_by_host_and_share_net_valid(context, host, share_net_id, session=None)

Get share server DB records by host and share net not error.

share_server_get_all_unused_deletable(context, host, updated_before)

Get all free share servers DB records.

share_server_search_by_identifier(context, identifier, session=None)

Search for share servers based on given identifier.

share_server_update(context, id, values)

Update share server DB record.

share_snapshot_access_create(context, values)

Create a share snapshot access from the values dictionary.

share_snapshot_access_get(context, access_id)

Get share snapshot access rule from given access_id.

share_snapshot_access_get_all_for_share_snapshot(context, share_snapshot_id, filters)

Get all access rules for a given share snapshot according to filters.

share_snapshot_access_get_all_for_snapshot_instance(context, snapshot_instance_id, session=None)

Get all access rules related to a certain snapshot instance.

share_snapshot_check_for_existing_access(context, share_snapshot_id, access_type, access_to)

Returns True if rule corresponding to the type and client exists.

share_snapshot_create(context, values)

Create a snapshot from the values dictionary.

share_snapshot_export_locations_get(context, snapshot_id)

Get all export locations for a given share snapshot.

share_snapshot_get(context, snapshot_id)

Get a snapshot or raise if it does not exist.

share_snapshot_get_all(context, filters=None, sort_key=None, sort_dir=None)

Get all snapshots.

share_snapshot_get_all_by_project(context, project_id, filters=None, sort_key=None, sort_dir=None)

Get all snapshots belonging to a project.

share_snapshot_get_all_for_share(context, share_id, filters=None, sort_key=None, sort_dir=None)

Get all snapshots for a share.

share_snapshot_get_latest_for_share(context, share_id)

Get the most recent snapshot for a share.

share_snapshot_instance_access_delete(context, access_id, snapshot_instance_id)

Delete share snapshot instance access given its id.

share_snapshot_instance_access_get(context, share_snapshot_instance_id, access_id)

Get the share snapshot instance access related to given ids.

share_snapshot_instance_access_update(context, access_id, instance_id, updates)

Update the state of the share snapshot instance access.

share_snapshot_instance_create(context, snapshot_id, values)

Create a share snapshot instance for an existing snapshot.

share_snapshot_instance_delete(context, snapshot_instance_id)

Delete a share snapshot instance.

share_snapshot_instance_export_location_create(context, values)

Create a share snapshot instance export location.

share_snapshot_instance_export_location_delete(context, el_id)

Delete share snapshot instance export location given its id.

share_snapshot_instance_export_location_get(context, el_id)

Get the share snapshot instance export location for given id.

share_snapshot_instance_export_locations_get_all(context, share_snapshot_instance_id)

Get the share snapshot instance export locations for given id.

share_snapshot_instance_get(context, instance_id, with_share_data=False)

Get a snapshot instance or raise a NotFound exception.

share_snapshot_instance_get_all_with_filters(context, filters, with_share_data=False)

Get all snapshot instances satisfying provided filters.

share_snapshot_instance_update(context, instance_id, values)

Set the given properties on a share snapshot instance and update it.

Raises NotFound if snapshot instance does not exist.

share_snapshot_update(context, snapshot_id, values)

Set the given properties on an snapshot and update it.

Raises NotFound if snapshot does not exist.

share_type_access_add(context, type_id, project_id)

Add share type access for project.

share_type_access_get_all(context, type_id)

Get all share type access of a share type.

share_type_access_remove(context, type_id, project_id)

Remove share type access for project.

share_type_create(context, values, projects=None)

Create a new share type.

share_type_destroy(context, id)

Delete a share type.

share_type_extra_specs_delete(context, share_type_id, key)

Delete the given extra specs item.

share_type_extra_specs_get(context, share_type_id)

Get all extra specs for a share type.

share_type_extra_specs_update_or_create(context, share_type_id, extra_specs)

Create or update share type extra specs.

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

share_type_get(context, type_id, inactive=False, expected_fields=None)

Get share type by id.

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

share type

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

Get all share types.

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

    Filters for the query in the form of key/value. :is_public: Filter share types based on visibility:

    • True: List public share types only
    • False: List private share types only
    • None: List both public and private share types
Returns:

list of matching share types

share_type_get_by_name(context, name)

Get share type by name.

share_type_get_by_name_or_id(context, name_or_id)

Get share type by name or ID and return None if not found.

share_update(context, share_id, values)

Update share fields.

The Sqlalchemy Driver

The manila.db.sqlalchemy.api Module

Implementation of SQLAlchemy backend.

The manila.db.sqlalchemy.models Module

SQLAlchemy models for Manila data.

class AvailabilityZone(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a private data as key-value pairs for a driver.

created_at
deleted
deleted_at
id
name
updated_at
class BackendInfo(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represent Backend Info.

created_at
deleted
deleted_at
host
info_hash
updated_at
class DriverPrivateData(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a private data as key-value pairs for a driver.

created_at
deleted
deleted_at
entity_uuid
key
updated_at
value
class ManilaBase

Bases: oslo_db.sqlalchemy.models.ModelBase, oslo_db.sqlalchemy.models.TimestampMixin, oslo_db.sqlalchemy.models.SoftDeleteMixin

Base class for Manila Models.

metadata = None
soft_delete(session, update_status=False, status_field_name='status')

Mark this object as deleted.

to_dict()
class ManilaNode(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a running manila service on a host.

created_at
deleted
deleted_at
id
service_id
updated_at
class Message(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a user message.

User messages show information about API operations to the API end-user.

action_id
created_at
deleted
deleted_at
detail_id
expires_at
id
message_level
project_id
request_id
resource_id
resource_type
updated_at
class NetworkAllocation(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents network allocation data.

cidr
created_at
deleted
deleted_at
gateway
id
ip_address
ip_version
label
mac_address
mtu
network_type
segmentation_id
share_server_id
updated_at
class ProjectShareTypeQuota(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a single quota override for a share type within a project.

created_at
deleted
deleted_at
hard_limit
id
project_id
resource
share_type_id
updated_at
class ProjectUserQuota(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a single quota override for a user with in a project.

created_at
deleted
deleted_at
hard_limit
id
project_id
resource
updated_at
user_id
class Quota(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a single quota override for a project.

If there is no row for a given project id and resource, then the default for the quota class is used. If there is no row for a given quota class and resource, then the default for the deployment is used. If the row is present but the hard limit is Null, then the resource is unlimited.

created_at
deleted
deleted_at
hard_limit
id
project_id
resource
updated_at
class QuotaClass(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a single quota override for a quota class.

If there is no row for a given quota class and resource, then the default for the deployment is used. If the row is present but the hard limit is Null, then the resource is unlimited.

class_name
created_at
deleted
deleted_at
hard_limit
id
resource
updated_at
class QuotaUsage(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents the current usage for a given resource.

created_at
deleted
deleted_at
id
in_use
project_id
reserved
resource
share_type_id
total
until_refresh
updated_at
user_id
class Reservation(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a resource reservation for quotas.

created_at
deleted
deleted_at
delta
expire
id
project_id
resource
share_type_id
updated_at
usage_id
user_id
uuid
class SecurityService(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Security service information for manila shares.

created_at
deleted
deleted_at
description
dns_ip
domain
id
name
ou
password
project_id
server
type
updated_at
user
class Service(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a running service on a host.

availability_zone
availability_zone_id
binary
created_at
deleted
deleted_at
disabled
host
id
report_count
topic
updated_at
class Share(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents an NFS and CIFS shares.

access_rules_status
create_share_from_snapshot_support
created_at
deleted
deleted_at
display_description
display_name
export_location
export_locations
has_replicas
id
instance
instances
is_busy
is_public
mount_snapshot_support
name
project_id
replication_type
revert_to_snapshot_support
share_group_id
share_proto
share_server_id
size
snapshot_id
snapshot_support
source_share_group_snapshot_member_id
task_state
updated_at
user_id
class ShareAccessMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents access to share.

access_key
access_level
access_to
access_type
created_at
deleted
deleted_at
id
instance_mappings
share_id
state

Get the aggregated ‘state’ from all the instance mapping states.

An access rule is supposed to be truly ‘active’ when it has been applied across all of the share instances of the parent share object.

updated_at
class ShareAccessRulesMetadata(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a metadata key/value pair for a share access rule.

access
access_id
created_at
deleted
deleted_at
id
key
updated_at
value
class ShareGroup(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a share group.

availability_zone
availability_zone_id
consistent_snapshot_support
created_at
deleted
deleted_at
description
host
id
name
project_id
share_group_type
share_group_type_id
share_network_id
share_server_id
source_share_group_snapshot_id
status
updated_at
user_id
class ShareGroupShareTypeMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents the share types in a share group.

created_at
deleted
deleted_at
id
share_group
share_group_id
share_type_id
updated_at
class ShareGroupSnapshot(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a share group snapshot.

created_at
deleted
deleted_at
description
id
name
project_id
share_group
share_group_id
status
updated_at
user_id
class ShareGroupTypeProjects(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represent projects associated share group types.

created_at
deleted
deleted_at
id
project_id
share_group_type
share_group_type_id
updated_at
class ShareGroupTypeShareTypeMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents the share types supported by a share group type.

created_at
deleted
deleted_at
id
share_group_type
share_group_type_id
share_type_id
updated_at
class ShareGroupTypeSpecs(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents additional specs for a share group type.

created_at
deleted
deleted_at
id
key
share_group_type
share_group_type_id
updated_at
value
class ShareGroupTypes(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represent possible share group types of shares offered.

created_at
deleted
deleted_at
id
is_public
name
updated_at
class ShareInstance(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

ACCESS_STATUS_PRIORITIES = {'active': 0, 'error': 2, 'syncing': 1}
access_rules_status
availability_zone
availability_zone_id
cast_rules_to_readonly
created_at
deleted
deleted_at
export_location
export_locations
host
id
launched_at
name
replica_state
scheduled_at
set_share_data(share)
share_id
share_network_id
share_server_id
share_type
share_type_id
status
terminated_at
updated_at
class ShareInstanceAccessMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents access to individual share instances.

access_id
created_at
deleted
deleted_at
id
instance
set_share_access_data(share_access)
share_instance_id
state
updated_at
class ShareInstanceExportLocations(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents export locations of share instances.

created_at
deleted
deleted_at
el_metadata
id
is_admin_only
path
replica_state
share_instance_id
updated_at
uuid
class ShareInstanceExportLocationsMetadata(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents export location metadata of share instances.

created_at
deleted
deleted_at
export_location
export_location_id
export_location_uuid
id
key
updated_at
value
class ShareMetadata(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a metadata key/value pair for a share.

created_at
deleted
deleted_at
id
key
share
share_id
updated_at
value
class ShareNetwork(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents network data used by share.

cidr
created_at
deleted
deleted_at
description
gateway
id
ip_version
mtu
name
network_type
neutron_net_id
neutron_subnet_id
project_id
security_services
segmentation_id
share_instances
share_servers
updated_at
user_id
class ShareNetworkSecurityServiceAssociation(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Association table between compute_zones and compute_nodes tables.

created_at
deleted
deleted_at
id
security_service_id
share_network_id
updated_at
class ShareServer(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents share server used by share.

backend_details
created_at
deleted
deleted_at
host
id
identifier
is_auto_deletable
network_allocations
share_groups
share_instances
share_network_id
status
updated_at
class ShareServerBackendDetails(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a metadata key/value pair for a share server.

created_at
deleted
deleted_at
id
key
share_server_id
updated_at
value
class ShareSnapshot(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a snapshot of a share.

aggregate_status

Get the aggregated ‘status’ of all instances.

A snapshot is supposed to be truly ‘available’ when it is available across all of the share instances of the parent share object. In case of replication, we only consider replicas (share instances) that are in ‘in_sync’ replica_state.

created_at
deleted
deleted_at
display_description
display_name
export_locations
id
instance
name
project_id
share
share_id
share_name
share_proto
share_size
size
updated_at
user_id
class ShareSnapshotAccessMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents access to share snapshot.

access_to
access_type
created_at
deleted
deleted_at
id
instance_mappings
share_snapshot_id
state

Get the aggregated ‘state’ from all the instance mapping states.

An access rule is supposed to be truly ‘active’ when it has been applied across all of the share snapshot instances of the parent share snapshot object.

updated_at
class ShareSnapshotInstance(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents a snapshot of a share.

created_at
deleted
deleted_at
export_locations
id
instance_size
name
progress
project_id
provider_location
share_group_snapshot
share_group_snapshot_id
share_id
share_instance
share_instance_id
share_name
share_proto
size
snapshot
snapshot_id
status
updated_at
user_id
class ShareSnapshotInstanceAccessMapping(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents access to individual share snapshot instances.

access_id
created_at
deleted
deleted_at
id
instance
set_snapshot_access_data(snapshot_access)
share_snapshot_instance_id
state
updated_at
class ShareSnapshotInstanceExportLocation(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents export locations of share snapshot instances.

created_at
deleted
deleted_at
id
is_admin_only
path
share_snapshot_instance_id
updated_at
class ShareTypeExtraSpecs(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represents additional specs as key/value pairs for a share_type.

created_at
deleted
deleted_at
id
key
share_type
share_type_id
updated_at
value
class ShareTypeProjects(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represent projects associated share_types.

created_at
deleted
deleted_at
id
project_id
share_type
share_type_id
updated_at
class ShareTypes(**kwargs)

Bases: sqlalchemy.ext.declarative.api.Base, manila.db.sqlalchemy.models.ManilaBase

Represent possible share_types of volumes offered.

created_at
deleted
deleted_at
description
id
is_public
name
updated_at
get_access_rules_status(instances)
get_aggregated_access_rules_state(instance_mappings)
register_models()

Register Models and create metadata.

Called from manila.db.sqlalchemy.__init__ as part of loading the driver, it will never need to be called explicitly elsewhere unless the connection is lost and needs to be reestablished.

Tests

Tests are lacking for the db api layer and for the sqlalchemy driver. Failures in the drivers would be detected in other test cases, though.

DB migration revisions

If a DB schema needs to be updated, a new DB migration file needs to be added in manila/db/migrations/alembic/versions. To create such a file it’s possible to use manila-manage db revision or the corresponding tox command:

tox -e dbrevision "change_foo_table"

In addition every migration script must be tested. See examples in manila/tests/db/migrations/alembic/migrations_data_checks.py.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.