Workflow Logic the Resource service.
Bases: keystone.common.controller.V3Controller
Bases: keystone.common.controller.V3Controller
Bases: keystone.common.controller.V3Controller
Main entry point into the Resource service.
Bases: keystone.resource.config_backends.base.DomainConfigDriverV8
Bases: keystone.common.manager.Manager
Default pivot point for the Domain Config backend.
Create config for a domain.
Parameters: |
|
---|
Creates a new config, overwriting any previous config (no Conflict error will be generated).
Returns: | a dict of group dicts containing the options, with any that are sensitive removed |
---|---|
Raises keystone.exception.InvalidDomainConfig: | |
when the config contains options we do not support |
Delete config, or partial config, for the domain.
Parameters: |
|
---|
If group and option are None, then the entire config for the domain is deleted. If group is not None, then just that group of options will be deleted. If group and option are both specified, then just that option is deleted.
Raises keystone.exception.InvalidDomainConfig: | |
---|---|
when group/option parameters specify an option we do not support or one that does not exist in the original config. |
Get config, or partial config, for a domain.
Parameters: |
|
---|---|
Returns: | a dict of group dicts containing the whitelisted options, filtered by group and option specified |
Raises: |
|
An example response:
{
'ldap': {
'url': 'myurl'
'user_tree_dn': 'OU=myou'},
'identity': {
'driver': 'ldap'}
}
Get default config, or partial default config.
Parameters: |
|
---|---|
Returns: | a dict of group dicts containing the default options, filtered by group and option if specified |
Raises keystone.exception.InvalidDomainConfig: | |
when the config and group/option parameters specify an option we do not support (or one that is not whitelisted). |
An example response:
{
'ldap': {
'url': 'myurl',
'user_tree_dn': 'OU=myou',
....},
'identity': {
'driver': 'ldap'}
}
Get config for a domain with sensitive info included.
This method is not exposed via the public API, but is used by the identity manager to initialize a domain with the fully formed config options.
Update config, or partial config, for a domain.
Parameters: |
|
---|
The contents of the supplied config will be merged with the existing config for this domain, updating or creating new options if these did not previously exist. If group or option is specified, then the update will be limited to those specified items and the inclusion of other options in the supplied config will raise an exception, as will the situation when those options do not already exist in the current config.
Returns: | a dict of groups containing all whitelisted options |
---|---|
Raises keystone.exception.InvalidDomainConfig: | |
when the config and group/option parameters specify an option we do not support or one that does not exist in the original config |
Bases: keystone.common.manager.Manager
Default pivot point for the Resource backend.
See keystone.common.manager.Manager for more details on how this dynamically calls the backend.
Assert the Domain is enabled.
Raises AssertionError: | |
---|---|
if domain is disabled. |
Assert the Domain’s name and id do not match the reserved keyword.
Note that the reserved keyword is defined in the configuration file, by default, it is ‘Federated’, it is also case insensitive. If config’s option is empty the default hardcoded value ‘Federated’ will be used.
Raises AssertionError: | |
---|---|
if domain named match the value in the config. |
Assert the project is enabled and its associated domain is enabled.
Raises AssertionError: | |
---|---|
if the project or domain is disabled. |
Delete one project or a subtree.
Parameters: | cascade (boolean) – If true, the specified project and all its sub-projects are deleted. Otherwise, only the specified project is deleted. |
---|---|
Raises: |
|
Create the default domain if it doesn’t exist.
This is only used for the v2 API and can go away when V2 does.
Get the IDs from the parents from a given project.
The project IDs are returned as a structured dictionary traversing up the hierarchy to the top level project. For example, considering the following project hierarchy:
A
|
+-B-+
| |
C D
If we query for project C parents, the expected return is the following dictionary:
'parents': {
B['id']: {
A['id']: None
}
}
Get the IDs from the projects in the subtree from a given project.
The project IDs are returned as a structured dictionary representing their hierarchy. For example, considering the following project hierarchy:
A
|
+-B-+
| |
C D
If we query for project A subtree, the expected return is the following dictionary:
'subtree': {
B['id']: {
C['id']: None,
D['id']: None
}
}
Bases: keystone.resource.backends.base.V9ResourceWrapperForV8Driver
WSGI Routers for the Resource service.