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.

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.

cgsnapshot_get_all(context, detailed=True)

Get all cgsnapshots.

cgsnapshot_get_all_by_project(context, project_id, detailed=True)

Get all cgsnapshots belonging to a project.

cgsnapshot_member_create(context, values)

Create a cgsnapshot member from the values dictionary.

cgsnapshot_member_update(context, member_id, values)

Set the given properties on a cgsnapshot member and update it.

Raises NotFound if cgsnapshot member does not exist.

cgsnapshot_members_get_all(context, cgsnapshot_id)

Return the members of a cgsnapshot.

cgsnapshot_update(context, cgsnapshot_id, values)

Set the given properties on a cgsnapshot and update it.

Raises NotFound if cgsnapshot does not exist.

consistency_group_create(context, values)

Create a consistency group from the values dictionary.

consistency_group_destroy(context, consistency_group_id)

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

consistency_group_get(context, consistency_group_id)

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

consistency_group_get_all(context, detailed=True)

Get all consistency groups.

consistency_group_get_all_by_host(context, host, detailed=True)

Get all consistency groups belonging to a host.

consistency_group_get_all_by_project(context, project_id, detailed=True)

Get all consistency groups belonging to a project.

consistency_group_get_all_by_share_server(context, share_server_id)

Get all consistency groups associated with a share server.

consistency_group_update(context, consistency_group_id, values)

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

Raises NotFound if consistency group does not exist.

count_cgsnapshot_members_in_share(context, share_id, session=None)

Returns the number of cgsnapshot members linked to the share.

count_cgsnapshots_in_consistency_group(context, consistency_group_id)

Returns the number of undeleted cgsnapshots with the specified cg.

count_consistency_groups_in_share_network(context, share_network_id, session=None)

Returns the number of undeleted cgs with the specified share network.

count_shares_in_consistency_group(context, consistency_group_id)

Returns the number of undeleted shares with the specified cg.

driver_private_data_delete(context, host, entity_id, key=None)

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

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

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

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

Update key-value pairs for given host and 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.

network_allocation_create(context, values)

Create a network allocation DB record.

network_allocation_delete(context, id)

Delete a network allocation DB record.

network_allocation_update(context, id, values)

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.

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)

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_get(context, project_id, resource, user_id=None)

Retrieve a quota or raise if it does not exist.

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_user(context, project_id, user_id)

Retrieve all quotas associated with a given project and user.

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

Check quotas and create appropriate reservations.

quota_update(context, project_id, resource, limit, user_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)

Create a quota usage.

quota_usage_get(context, project_id, resource, user_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_user(context, project_id, user_id)

Retrieve all usage associated with a given resource.

quota_usage_update(context, project_id, user_id, resource, **kwargs)

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

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

Commit quota reservations.

reservation_create(context, uuid, usage, project_id, user_id, resource, delta, expire)

Create a reservation for the given project and resource.

reservation_expire(context)

Roll back any expired reservations.

reservation_get(context, uuid)

Retrieve a reservation or raise if it does not exist.

reservation_rollback(context, reservations, project_id=None, user_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_host(context, host)

Get all services for a given host.

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_create(context, values)

Allow access to share.

share_access_delete(context, access_id)

Deny 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, session=None)

Get all access rules related to a certain share instance.

share_access_get_all_for_share(context, share_id)

Get all access rules for given share.

share_create(context, share_values, create_share_instance=True)

Create new share.

share_data_get_for_project(context, project_id, session=None)

Get (share_count, gigabytes) for project.

share_delete(context, share_id)

Delete share.

share_export_location_get_by_uuid(context, export_location_uuid)

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)

Get all export locations of a share by its ID.

share_export_locations_get_by_share_instance_id(context, share_instance_id)

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_consistency_group_id(context, cg_id, filters=None, sort_key=None, sort_dir=None)

Returns all shares with given project ID and CG id.

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_server(context, share_server_id, filters=None, sort_key=None, sort_dir=None)

Returns all shares with given share server ID.

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_delete(context, mapping_id)

Deny access to share instance.

share_instance_access_get(context, access_id, instance_id)

Get access rule mapping for share instance.

share_instance_access_get_all(context, access_id, session=None)

Get access rules to all share instances.

share_instance_create(context, share_id, values)

Create new share instance.

share_instance_delete(context, instance_id)

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_instance_update_access_status(context, share_instance_id, status)

Update access rules status of share instance.

share_instances_get_all(context)

Returns all share instances.

share_instances_get_all_by_consistency_group_id(context, cg_id)

Returns list of share instances that belong to given cg.

share_instances_get_all_by_host(context, host)

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_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_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_active_replicas_by_share(context, share_id, with_share_server=False, with_share_data=False)

Returns all active replicas for a given share.

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_update(context, id, values)

Update share server DB record.

share_snapshot_create(context, values)

Create a snapshot from the values dictionary.

share_snapshot_data_get_for_project(context, project_id, session=None)

Get count and gigabytes used for snapshots for specified project.

share_snapshot_destroy(context, snapshot_id)

Destroy the snapshot or raise if it does not exist.

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_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_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_update(context, share_id, values)

Update share fields.

snapshot_data_get_for_project(context, project_id, session=None)

Get (snapshot_count, gigabytes) for project.

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.

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.

AvailabilityZone.created_at None
AvailabilityZone.deleted None
AvailabilityZone.deleted_at None
AvailabilityZone.id None
AvailabilityZone.name None
AvailabilityZone.updated_at None
class CGSnapshot(**kwargs)

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

Represents a cgsnapshot.

CGSnapshot.consistency_group None
CGSnapshot.consistency_group_id None
CGSnapshot.created_at None
CGSnapshot.deleted None
CGSnapshot.deleted_at None
CGSnapshot.description None
CGSnapshot.id None
CGSnapshot.name None
CGSnapshot.project_id None
CGSnapshot.status None
CGSnapshot.updated_at None
CGSnapshot.user_id None
class CGSnapshotMember(**kwargs)

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

Represents the share snapshots in a consistency group snapshot.

CGSnapshotMember.cgsnapshot None
CGSnapshotMember.cgsnapshot_id None
CGSnapshotMember.created_at None
CGSnapshotMember.deleted None
CGSnapshotMember.deleted_at None
CGSnapshotMember.id None
CGSnapshotMember.project_id None
CGSnapshotMember.share_id None
CGSnapshotMember.share_instance_id None
CGSnapshotMember.share_proto None
CGSnapshotMember.share_type_id None
CGSnapshotMember.size None
CGSnapshotMember.status None
CGSnapshotMember.updated_at None
CGSnapshotMember.user_id None
class ConsistencyGroup(**kwargs)

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

Represents a consistency group.

ConsistencyGroup.created_at None
ConsistencyGroup.deleted None
ConsistencyGroup.deleted_at None
ConsistencyGroup.description None
ConsistencyGroup.host None
ConsistencyGroup.id None
ConsistencyGroup.name None
ConsistencyGroup.project_id None
ConsistencyGroup.share_network_id None
ConsistencyGroup.share_server_id None
ConsistencyGroup.source_cgsnapshot_id None
ConsistencyGroup.status None
ConsistencyGroup.updated_at None
ConsistencyGroup.user_id None
class ConsistencyGroupShareTypeMapping(**kwargs)

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

Represents the share types in a consistency group.

ConsistencyGroupShareTypeMapping.consistency_group None
ConsistencyGroupShareTypeMapping.consistency_group_id None
ConsistencyGroupShareTypeMapping.created_at None
ConsistencyGroupShareTypeMapping.deleted None
ConsistencyGroupShareTypeMapping.deleted_at None
ConsistencyGroupShareTypeMapping.id None
ConsistencyGroupShareTypeMapping.share_type_id None
ConsistencyGroupShareTypeMapping.updated_at None
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.

DriverPrivateData.created_at None
DriverPrivateData.deleted None
DriverPrivateData.deleted_at None
DriverPrivateData.entity_uuid None
DriverPrivateData.host None
DriverPrivateData.key None
DriverPrivateData.updated_at None
DriverPrivateData.value None
class ManilaBase

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

Base class for Manila Models.

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

Mark this object as deleted.

ManilaBase.to_dict()
class ManilaNode(**kwargs)

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

Represents a running manila service on a host.

ManilaNode.created_at None
ManilaNode.deleted None
ManilaNode.deleted_at None
ManilaNode.id None
ManilaNode.service_id None
ManilaNode.updated_at None
class NetworkAllocation(**kwargs)

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

Represents network allocation data.

NetworkAllocation.cidr None
NetworkAllocation.created_at None
NetworkAllocation.deleted None
NetworkAllocation.deleted_at None
NetworkAllocation.id None
NetworkAllocation.ip_address None
NetworkAllocation.ip_version None
NetworkAllocation.label None
NetworkAllocation.mac_address None
NetworkAllocation.network_type None
NetworkAllocation.segmentation_id None
NetworkAllocation.share_server_id None
NetworkAllocation.updated_at None
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.

ProjectUserQuota.created_at None
ProjectUserQuota.deleted None
ProjectUserQuota.deleted_at None
ProjectUserQuota.hard_limit None
ProjectUserQuota.id None
ProjectUserQuota.project_id None
ProjectUserQuota.resource None
ProjectUserQuota.updated_at None
ProjectUserQuota.user_id None
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.

Quota.created_at None
Quota.deleted None
Quota.deleted_at None
Quota.hard_limit None
Quota.id None
Quota.project_id None
Quota.resource None
Quota.updated_at None
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.

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

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

Represents the current usage for a given resource.

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

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

Represents a resource reservation for quotas.

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

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

Security service information for manila shares.

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

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

Represents a running service on a host.

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

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

Represents an NFS and CIFS shares.

Share.access_rules_status None
Share.consistency_group_id None
Share.created_at None
Share.deleted None
Share.deleted_at None
Share.display_description None
Share.display_name None
Share.export_location None
Share.export_locations None
Share.has_replicas None
Share.id None
Share.instance None
Share.instances None
Share.is_busy None
Share.is_public None
Share.name None
Share.project_id None
Share.replication_type None
Share.share_proto None
Share.share_server_id None
Share.share_type None
Share.share_type_id None
Share.size None
Share.snapshot_id None
Share.snapshot_support None
Share.source_cgsnapshot_member_id None
Share.task_state None
Share.updated_at None
Share.user_id None
class ShareAccessMapping(**kwargs)

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

Represents access to share.

ShareAccessMapping.access_level None
ShareAccessMapping.access_to None
ShareAccessMapping.access_type None
ShareAccessMapping.created_at None
ShareAccessMapping.deleted None
ShareAccessMapping.deleted_at None
ShareAccessMapping.id None
ShareAccessMapping.instance_mappings None
ShareAccessMapping.share_id None
ShareAccessMapping.state None
ShareAccessMapping.updated_at None
class ShareInstance(**kwargs)

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

ShareInstance.ACCESS_STATUS_PRIORITIES = {'active': 0, 'out_of_sync': 1, 'updating_multiple': 3, 'updating': 2, 'error': 4}
ShareInstance.access_rules_status None
ShareInstance.availability_zone None
ShareInstance.availability_zone_id None
ShareInstance.created_at None
ShareInstance.deleted None
ShareInstance.deleted_at None
ShareInstance.export_location None
ShareInstance.export_locations None
ShareInstance.host None
ShareInstance.id None
ShareInstance.launched_at None
ShareInstance.name None
ShareInstance.replica_state None
ShareInstance.scheduled_at None
ShareInstance.set_share_data(share)
ShareInstance.share_id None
ShareInstance.share_network_id None
ShareInstance.share_server_id None
ShareInstance.status None
ShareInstance.terminated_at None
ShareInstance.updated_at None
class ShareInstanceAccessMapping(**kwargs)

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

Represents access to individual share instances.

ShareInstanceAccessMapping.access_id None
ShareInstanceAccessMapping.created_at None
ShareInstanceAccessMapping.deleted None
ShareInstanceAccessMapping.deleted_at None
ShareInstanceAccessMapping.id None
ShareInstanceAccessMapping.instance None
ShareInstanceAccessMapping.share_instance_id None
ShareInstanceAccessMapping.updated_at None
class ShareInstanceExportLocations(**kwargs)

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

Represents export locations of share instances.

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

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

Represents export location metadata of share instances.

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

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

Represents a metadata key/value pair for a share.

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

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

Represents network data used by share.

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

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

Association table between compute_zones and compute_nodes tables.

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

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

Represents share server used by share.

ShareServer.backend_details None
ShareServer.consistency_groups None
ShareServer.created_at None
ShareServer.deleted None
ShareServer.deleted_at None
ShareServer.host None
ShareServer.id None
ShareServer.network_allocations None
ShareServer.share_instances None
ShareServer.share_network_id None
ShareServer.status None
ShareServer.updated_at None
class ShareServerBackendDetails(**kwargs)

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

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

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

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

Represents a snapshot of a share.

ShareSnapshot.aggregate_status None

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.

ShareSnapshot.created_at None
ShareSnapshot.deleted None
ShareSnapshot.deleted_at None
ShareSnapshot.display_description None
ShareSnapshot.display_name None
ShareSnapshot.id None
ShareSnapshot.instance None
ShareSnapshot.instances None
ShareSnapshot.name None
ShareSnapshot.project_id None
ShareSnapshot.share None
ShareSnapshot.share_id None
ShareSnapshot.share_name None
ShareSnapshot.share_proto None
ShareSnapshot.share_size None
ShareSnapshot.size None
ShareSnapshot.updated_at None
ShareSnapshot.user_id None
class ShareSnapshotInstance(**kwargs)

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

Represents a snapshot of a share.

ShareSnapshotInstance.created_at None
ShareSnapshotInstance.deleted None
ShareSnapshotInstance.deleted_at None
ShareSnapshotInstance.id None
ShareSnapshotInstance.name None
ShareSnapshotInstance.progress None
ShareSnapshotInstance.provider_location None
ShareSnapshotInstance.share_id None
ShareSnapshotInstance.share_instance None
ShareSnapshotInstance.share_instance_id None
ShareSnapshotInstance.share_name None
ShareSnapshotInstance.snapshot_id None
ShareSnapshotInstance.status None
ShareSnapshotInstance.updated_at None
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.

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

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

Represent projects associated share_types.

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

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

Represent possible share_types of volumes offered.

ShareTypes.created_at None
ShareTypes.deleted None
ShareTypes.deleted_at None
ShareTypes.id None
ShareTypes.is_public None
ShareTypes.name None
ShareTypes.updated_at None
get_access_rules_status(instances)
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.