keystone.resource.backends package¶
Submodules¶
keystone.resource.backends.base module¶
-
class
keystone.resource.backends.base.
ResourceDriverBase
[source]¶ Bases:
object
-
create_project
(project_id, project)[source]¶ Create a new project.
Parameters: - project_id – This parameter can be ignored.
- project (dict) – The new project
Project schema:
type: object properties: id: type: string name: type: string domain_id: type: [string, null] description: type: string enabled: type: boolean parent_id: type: string is_domain: type: boolean required: [id, name, domain_id] additionalProperties: true
If the project doesn’t match the schema the behavior is undefined.
The driver can impose requirements such as the maximum length of a field. If these requirements are not met the behavior is undefined.
Raises: keystone.exception.Conflict – if the project id already exists or the name already exists for the domain_id.
-
delete_project
(project_id)[source]¶ Delete an existing project.
Raises: keystone.exception.ProjectNotFound – if project_id does not exist
-
delete_projects_from_ids
(project_ids)[source]¶ Delete a given list of projects.
Deletes a list of projects. Ensures no project on the list exists after it is successfully called. If an empty list is provided, the it is silently ignored. In addition, if a project ID in the list of project_ids is not found in the backend, no exception is raised, but a message is logged.
-
get_project
(project_id)[source]¶ Get a project by ID.
Returns: project_ref Raises: keystone.exception.ProjectNotFound – if project_id does not exist
-
get_project_by_name
(project_name, domain_id)[source]¶ Get a project by name.
Returns: project_ref Raises: keystone.exception.ProjectNotFound – if a project with the project_name does not exist within the domain
-
is_leaf_project
(project_id)[source]¶ Check if a project is a leaf in the hierarchy.
Parameters: project_id – the driver will check if this project is a leaf in the hierarchy. Raises: keystone.exception.ProjectNotFound – if project_id does not exist
-
list_project_ids_from_domain_ids
(domain_ids)[source]¶ List project ids for the provided list of domain ids.
Parameters: domain_ids – list of domain ids Returns: a list of project ids owned by the specified domain ids. This method is used internally by the assignment manager to bulk read a set of project ids given a list of domain ids.
-
list_project_parents
(project_id)[source]¶ List all parents from a project by its ID.
Parameters: project_id – the driver will list the parents of this project. Returns: a list of project_refs or an empty list. Raises: keystone.exception.ProjectNotFound – if project_id does not exist
-
list_projects
(hints)[source]¶ List projects in the system.
Parameters: hints – filter hints which the driver should implement if at all possible. Returns: a list of project_refs or an empty list.
-
list_projects_acting_as_domain
(hints)[source]¶ List all projects acting as domains.
Parameters: hints – filter hints which the driver should implement if at all possible. Returns: a list of project_refs or an empty list.
-
list_projects_from_ids
(project_ids)[source]¶ List projects for the provided list of ids.
Parameters: project_ids – list of ids Returns: a list of project_refs. This method is used internally by the assignment manager to bulk read a set of projects given their ids.
-
list_projects_in_domain
(domain_id)[source]¶ List projects in the domain.
Parameters: domain_id – the driver MUST only return projects within this domain. Returns: a list of project_refs or an empty list.
-
list_projects_in_subtree
(project_id)[source]¶ List all projects in the subtree of a given project.
Parameters: project_id – the driver will get the subtree under this project. Returns: a list of project_refs or an empty list Raises: keystone.exception.ProjectNotFound – if project_id does not exist
-
update_project
(project_id, project)[source]¶ Update an existing project.
Raises: - keystone.exception.ProjectNotFound – if project_id does not exist
- keystone.exception.Conflict – if project name already exists
-
keystone.resource.backends.sql module¶
-
class
keystone.resource.backends.sql.
Project
(*args, **kwargs)[source]¶ Bases:
sqlalchemy.ext.declarative.api.Base
,keystone.common.sql.core.DictBase
-
attributes
= ['id', 'name', 'domain_id', 'description', 'enabled', 'parent_id', 'is_domain']¶
-
description
¶
-
domain_id
¶
-
enabled
¶
-
extra
¶
-
id
¶
-
is_domain
¶
-
name
¶
-
parent_id
¶
-