Bases: keystone.common.controller.V3Controller
Establishes an association between an endpoint and a project.
Verifies endpoint is currently associated with given project.
List all endpoints currently associated with a given project.
Bases: keystone.common.controller.V3Controller
Construct a path and pass it to V3Controller.base_url method.
Creates an Endpoint Group with the associated filters.
Retrieve the endpoint group associated with the id if exists.
List all endpoint groups associated with a given project.
List all the endpoints filtered by a specific endpoint group.
List all projects associated with endpoint group.
Bases: keystone.common.controller.V3Controller
Bases: keystone.common.controller.V3Controller
Creates an association between an endpoint group and project.
Retrieve the endpoint group associated with the id if exists.
Bases: keystone.common.controller.V3Controller
Create a region with a user-specified ID.
This method is unprotected because it depends on self.create_region to enforce policy.
Bases: keystone.common.controller.V3Controller
Main entry point into the Catalog service.
Bases: object
Interface description for the Catalog driver.
Adds an endpoint group to project association.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.Conflict: | |
If the endpoint group was already added to the project.  | 
|
| Returns: | None.  | 
Create an endpoint to project association.
| Parameters: | 
  | 
|---|---|
| Raises: | keystone.exception.Conflict: If the endpoint was already added to project.  | 
| Returns: | None.  | 
Checks if an endpoint is associated with a project.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.NotFound: | |
If the endpoint was not found in the project.  | 
|
| Returns: | None.  | 
Creates a new endpoint for a service.
| Raises: | 
  | 
|---|
Create an endpoint group.
| Parameters: | endpoint_group (dictionary) – endpoint group to create | 
|---|---|
| Raises: | keystone.exception.Conflict: If a duplicate endpoint group already exists. | 
| Returns: | an endpoint group representation. | 
Creates a new region.
| Raises: | 
  | 
|---|
Creates a new service.
| Raises keystone.exception.Conflict: | |
|---|---|
| If a duplicate service exists. | |
Removes all the endpoints to project association with endpoint.
| Parameters: | endpoint_id (string) – identity of endpoint to check | 
|---|---|
| Returns: | None | 
Removes all the endpoints to project association with project.
| Parameters: | project_id (string) – identity of the project to check | 
|---|---|
| Returns: | None | 
Deletes an endpoint for a service.
| Raises keystone.exception.EndpointNotFound: | |
|---|---|
| If the endpoint doesn’t exist. | |
Delete an endpoint group.
| Parameters: | endpoint_group_id (string) – identity of endpoint group to delete | 
|---|---|
| Raises keystone.exception.NotFound: | |
| If the endpoint group was not found. | |
| Returns: | None. | 
Remove endpoint group to project associations.
| Parameters: | project_id (string) – identity of the project to check | 
|---|---|
| Returns: | None | 
Deletes an existing region.
| Raises keystone.exception.RegionNotFound: | |
|---|---|
| If the region doesn’t exist. | |
Deletes an existing service.
| Raises keystone.exception.ServiceNotFound: | |
|---|---|
| If the service doesn’t exist. | |
Retrieve and format the current service catalog.
Example:
{ 'RegionOne':
    {'compute': {
        'adminURL': u'http://host:8774/v1.1/tenantid',
        'internalURL': u'http://host:8774/v1.1/tenant_id',
        'name': 'Compute Service',
        'publicURL': u'http://host:8774/v1.1/tenantid'},
     'ec2': {
        'adminURL': 'http://host:8773/services/Admin',
        'internalURL': 'http://host:8773/services/Cloud',
        'name': 'EC2 Service',
        'publicURL': 'http://host:8773/services/Cloud'}}
| Returns: | A nested dict representing the service catalog or an empty dict. | 
|---|---|
| Raises keystone.exception.NotFound: | |
| If the endpoint doesn’t exist. | |
Get endpoint by id.
| Returns: | endpoint_ref dict | 
|---|---|
| Raises keystone.exception.EndpointNotFound: | |
| If the endpoint doesn’t exist. | |
Get an endpoint group.
| Parameters: | endpoint_group_id (string) – identity of endpoint group to retrieve | 
|---|---|
| Raises keystone.exception.NotFound: | |
| If the endpoint group was not found. | |
| Returns: | an endpoint group representation. | 
Get endpoint group to project association.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.NotFound: | |
If the endpoint group to the project association was not found.  | 
|
| Returns: | a project endpoint group representation.  | 
Get region by id.
| Returns: | region_ref dict | 
|---|---|
| Raises keystone.exception.RegionNotFound: | |
| If the region doesn’t exist. | |
Get service by id.
| Returns: | service_ref dict | 
|---|---|
| Raises keystone.exception.ServiceNotFound: | |
| If the service doesn’t exist. | |
Retrieve and format the current V3 service catalog.
The default implementation builds the V3 catalog from the V2 catalog.
Example:
[
    {
        "endpoints": [
        {
            "interface": "public",
            "id": "--endpoint-id--",
            "region": "RegionOne",
            "url": "http://external:8776/v1/--project-id--"
        },
        {
            "interface": "internal",
            "id": "--endpoint-id--",
            "region": "RegionOne",
            "url": "http://internal:8776/v1/--project-id--"
        }],
    "id": "--service-id--",
    "type": "volume"
}]
| Returns: | A list representing the service catalog or an empty list | 
|---|---|
| Raises keystone.exception.NotFound: | |
| If the endpoint doesn’t exist. | |
List all endpoint group to project associations for a project.
| Parameters: | project_id (string) – identity of project to associate | 
|---|---|
| Returns: | None. | 
List all endpoints.
| Parameters: | hints – contains the list of filters yet to be satisfied. Any filters satisfied here will be removed so that the caller will know if any filters remain. | 
|---|---|
| Returns: | list of endpoint_refs or an empty list. | 
List all endpoints associated with a project.
| Parameters: | project_id (string) – identity of the project to check | 
|---|---|
| Returns: | a list of identity endpoint ids or an empty list. | 
List all projects associated with endpoint group.
| Parameters: | endpoint_group_id (string) – identity of endpoint to associate | 
|---|---|
| Returns: | None. | 
List all projects associated with an endpoint.
| Parameters: | endpoint_id (string) – identity of endpoint to check | 
|---|---|
| Returns: | a list of projects or an empty list. | 
List all regions.
| Parameters: | hints – contains the list of filters yet to be satisfied. Any filters satisfied here will be removed so that the caller will know if any filters remain. | 
|---|---|
| Returns: | list of region_refs or an empty list. | 
List all services.
| Parameters: | hints – contains the list of filters yet to be satisfied. Any filters satisfied here will be removed so that the caller will know if any filters remain. | 
|---|---|
| Returns: | list of service_refs or an empty list. | 
Removes an endpoint to project association.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.NotFound: | |
If the endpoint was not found in the project.  | 
|
| Returns: | None.  | 
Remove an endpoint to project association.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.NotFound: | |
If endpoint group project association was not found.  | 
|
| Returns: | None.  | 
Get endpoint by id.
| Returns: | endpoint_ref dict  | 
|---|---|
| Raises: | 
  | 
Update an endpoint group.
| Parameters: | 
  | 
|---|---|
| Raises keystone.exception.NotFound: | |
If the endpoint group was not found.  | 
|
| Returns: | an endpoint group representation.  | 
Update region by id.
| Returns: | region_ref dict | 
|---|---|
| Raises keystone.exception.RegionNotFound: | |
| If the region doesn’t exist. | |
Update service by id.
| Returns: | service_ref dict | 
|---|---|
| Raises keystone.exception.ServiceNotFound: | |
| If the service doesn’t exist. | |
Bases: keystone.common.manager.Manager
Default pivot point for the Catalog backend.
See keystone.common.manager.Manager for more details on how this dynamically calls the backend.
Check substitution of url.
The invalid urls are as follows: urls with substitutions that is not in the whitelist
Check the substitutions in the URL to make sure they are valid and on the whitelist.
| Parameters: | url (str) – the URL to validate | 
|---|---|
| Return type: | None | 
| Raises keystone.exception.URLValidationError: | |
| if the URL is invalid | |
Formats a user-defined URL with the given substitutions.
| Parameters: | 
  | 
|---|---|
| Returns: | a formatted URL  | 
Bases: keystone.common.wsgi.RoutersBase
API for the keystone catalog.
The API Endpoint Filter looks like:
PUT /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}
GET /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}
HEAD /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}
DELETE /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}
GET /OS-EP-FILTER/endpoints/{endpoint_id}/projects
GET /OS-EP-FILTER/projects/{project_id}/endpoints
GET /OS-EP-FILTER/projects/{project_id}/endpoint_groups
GET /OS-EP-FILTER/endpoint_groups
POST /OS-EP-FILTER/endpoint_groups
GET /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}
HEAD /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}
PATCH /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}
DELETE /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}
GET /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}/projects
GET /OS-EP-FILTER/endpoint_groups/{endpoint_group_id}/endpoints
PUT /OS-EP-FILTER/endpoint_groups/{endpoint_group}/projects/
    {project_id}
GET /OS-EP-FILTER/endpoint_groups/{endpoint_group}/projects/
    {project_id}
HEAD /OS-EP-FILTER/endpoint_groups/{endpoint_group}/projects/
    {project_id}
DELETE /OS-EP-FILTER/endpoint_groups/{endpoint_group}/projects/
    {project_id}