keystone.catalog.backends.base module

class keystone.catalog.backends.base.CatalogDriverBase[source]

Bases: ProviderAPIMixin

Interface description for the Catalog driver.

abstract add_endpoint_group_to_project(endpoint_group_id, project_id)[source]

Add an endpoint group to project association.

Parameters:
  • endpoint_group_id (string) – identity of endpoint to associate

  • project_id (string) – identity of project to associate

Raises:

keystone.exception.Conflict – If the endpoint group was already added to the project.

Returns:

None.

abstract add_endpoint_to_project(endpoint_id, project_id)[source]

Create an endpoint to project association.

Parameters:
  • endpoint_id (string) – identity of endpoint to associate

  • project_id (string) – identity of the project to be associated with

Raises:

keystone.exception.Conflict: If the endpoint was already added to project.

Returns:

None.

abstract check_endpoint_in_project(endpoint_id, project_id)[source]

Check if an endpoint is associated with a project.

Parameters:
  • endpoint_id (string) – identity of endpoint to check

  • project_id (string) – identity of the project associated with

Raises:

keystone.exception.NotFound – If the endpoint was not found in the project.

Returns:

None.

abstract create_endpoint(endpoint_id, endpoint_ref)[source]

Create a new endpoint for a service.

Raises:
abstract create_endpoint_group(endpoint_group)[source]

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.

abstract create_region(region_ref)[source]

Create a new region.

Raises:
abstract create_service(service_id, service_ref)[source]

Create a new service.

Raises:

keystone.exception.Conflict – If a duplicate service exists.

abstract delete_association_by_endpoint(endpoint_id)[source]

Remove all the endpoints to project association with endpoint.

Parameters:

endpoint_id (string) – identity of endpoint to check

Returns:

None

abstract delete_association_by_project(project_id)[source]

Remove all the endpoints to project association with project.

Parameters:

project_id (string) – identity of the project to check

Returns:

None

abstract delete_endpoint(endpoint_id)[source]

Delete an endpoint for a service.

Raises:

keystone.exception.EndpointNotFound – If the endpoint doesn’t exist.

abstract delete_endpoint_group(endpoint_group_id)[source]

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.

abstract delete_endpoint_group_association_by_project(project_id)[source]

Remove endpoint group to project associations.

Parameters:

project_id (string) – identity of the project to check

Returns:

None

abstract delete_region(region_id)[source]

Delete an existing region.

Raises:

keystone.exception.RegionNotFound – If the region doesn’t exist.

abstract delete_service(service_id)[source]

Delete an existing service.

Raises:

keystone.exception.ServiceNotFound – If the service doesn’t exist.

abstract get_catalog(user_id, project_id)[source]

Retrieve and format the current service catalog.

Example:

{ 'RegionOne':
    {'compute': {
        'adminURL': u'http://host:8774/v1.1/project_id',
        'internalURL': u'http://host:8774/v1.1/project_id',
        'name': 'Compute Service',
        'publicURL': u'http://host:8774/v1.1/project_id'},
     '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.

abstract get_endpoint(endpoint_id)[source]

Get endpoint by id.

Returns:

endpoint_ref dict

Raises:

keystone.exception.EndpointNotFound – If the endpoint doesn’t exist.

abstract get_endpoint_group(endpoint_group_id)[source]

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.

abstract get_endpoint_group_in_project(endpoint_group_id, project_id)[source]

Get endpoint group to project association.

Parameters:
  • endpoint_group_id (string) – identity of endpoint group to retrieve

  • project_id (string) – identity of project to associate

Raises:

keystone.exception.NotFound – If the endpoint group to the project association was not found.

Returns:

a project endpoint group representation.

abstract get_region(region_id)[source]

Get region by id.

Returns:

region_ref dict

Raises:

keystone.exception.RegionNotFound – If the region doesn’t exist.

abstract get_service(service_id)[source]

Get service by id.

Returns:

service_ref dict

Raises:

keystone.exception.ServiceNotFound – If the service doesn’t exist.

get_v3_catalog(user_id, project_id)[source]

Retrieve and format the current V3 service 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.

abstract list_endpoint_groups(hints)[source]

List all endpoint groups.

Returns:

None.

abstract list_endpoint_groups_for_project(project_id)[source]

List all endpoint group to project associations for a project.

Parameters:

project_id (string) – identity of project to associate

Returns:

None.

abstract list_endpoints(hints)[source]

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.

abstract list_endpoints_for_project(project_id)[source]

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.

abstract list_projects_associated_with_endpoint_group(endpoint_group_id)[source]

List all projects associated with endpoint group.

Parameters:

endpoint_group_id (string) – identity of endpoint to associate

Returns:

None.

abstract list_projects_for_endpoint(endpoint_id)[source]

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.

abstract list_regions(hints)[source]

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.

abstract list_services(hints)[source]

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.

abstract remove_endpoint_from_project(endpoint_id, project_id)[source]

Remove an endpoint to project association.

Parameters:
  • endpoint_id (string) – identity of endpoint to remove

  • project_id (string) – identity of the project associated with

Raises:

keystone.exception.NotFound – If the endpoint was not found in the project.

Returns:

None.

abstract remove_endpoint_group_from_project(endpoint_group_id, project_id)[source]

Remove an endpoint to project association.

Parameters:
  • endpoint_group_id (string) – identity of endpoint to associate

  • project_id (string) – identity of project to associate

Raises:

keystone.exception.NotFound – If endpoint group project association was not found.

Returns:

None.

abstract update_endpoint(endpoint_id, endpoint_ref)[source]

Get endpoint by id.

Returns:

endpoint_ref dict

Raises:
abstract update_endpoint_group(endpoint_group_id, endpoint_group)[source]

Update an endpoint group.

Parameters:
  • endpoint_group_id (string) – identity of endpoint group to retrieve

  • endpoint_group (dictionary) – A full or partial endpoint_group

Raises:

keystone.exception.NotFound – If the endpoint group was not found.

Returns:

an endpoint group representation.

abstract update_region(region_id, region_ref)[source]

Update region by id.

Returns:

region_ref dict

Raises:

keystone.exception.RegionNotFound – If the region doesn’t exist.

abstract update_service(service_id, service_ref)[source]

Update service by id.

Returns:

service_ref dict

Raises:

keystone.exception.ServiceNotFound – If the service doesn’t exist.